aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/core/TypeErasure.scala
diff options
context:
space:
mode:
authorDmitry Petrashko <dmitry.petrashko@gmail.com>2015-09-15 18:11:35 +0200
committerMartin Odersky <odersky@gmail.com>2015-09-17 12:41:15 +0200
commit4966589b7d09f1650bf2df461ba3c6461552a0e3 (patch)
treec2defaa973db7f4e4538f763cfa0faa5fb80dd99 /src/dotty/tools/dotc/core/TypeErasure.scala
parent50e3a7d92f4b7cc4cd922eb92c7ed8bf793b159c (diff)
downloaddotty-4966589b7d09f1650bf2df461ba3c6461552a0e3.tar.gz
dotty-4966589b7d09f1650bf2df461ba3c6461552a0e3.tar.bz2
dotty-4966589b7d09f1650bf2df461ba3c6461552a0e3.zip
Fix #791 erasedLub of two AnyVals is Object.
Diffstat (limited to 'src/dotty/tools/dotc/core/TypeErasure.scala')
-rw-r--r--src/dotty/tools/dotc/core/TypeErasure.scala6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/dotty/tools/dotc/core/TypeErasure.scala b/src/dotty/tools/dotc/core/TypeErasure.scala
index 0ef31015c..f27b2fd1e 100644
--- a/src/dotty/tools/dotc/core/TypeErasure.scala
+++ b/src/dotty/tools/dotc/core/TypeErasure.scala
@@ -234,7 +234,11 @@ object TypeErasure {
case nil =>
bestSoFar
}
- loop(tp1.baseClasses, defn.ObjectClass).typeRef
+ val t = loop(tp1.baseClasses, defn.ObjectClass)
+ if (t eq defn.AnyValClass)
+ // while AnyVal is a valid common super class for primitives it does not exist after erasure
+ defn.ObjectType
+ else t.typeRef
}
}