aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorReto Hablützel <rh@nezasa.com>2016-12-04 16:48:22 +0100
committerReto Hablützel <rh@nezasa.com>2016-12-04 16:52:00 +0100
commit4835d0455f6f4777d168901e8719b55bbd389baa (patch)
tree3e7b5e8ecd9ac7a6f8b94ce9e66da56598877b76
parent9ceed9213497597de8895c83bdf0cc4d5597b150 (diff)
downloaddotty-4835d0455f6f4777d168901e8719b55bbd389baa.tar.gz
dotty-4835d0455f6f4777d168901e8719b55bbd389baa.tar.bz2
dotty-4835d0455f6f4777d168901e8719b55bbd389baa.zip
handle ConstantType in TypeComparer
-rw-r--r--compiler/src/dotty/tools/dotc/core/TypeComparer.scala5
-rw-r--r--tests/repl/def.check4
2 files changed, 9 insertions, 0 deletions
diff --git a/compiler/src/dotty/tools/dotc/core/TypeComparer.scala b/compiler/src/dotty/tools/dotc/core/TypeComparer.scala
index fd954c688..f8c0cdac9 100644
--- a/compiler/src/dotty/tools/dotc/core/TypeComparer.scala
+++ b/compiler/src/dotty/tools/dotc/core/TypeComparer.scala
@@ -260,6 +260,11 @@ class TypeComparer(initctx: Context) extends DotClass with ConstraintHandling {
secondTry(tp1, tp2)
}
compareErasedValueType
+ case ConstantType(v2) =>
+ tp1 match {
+ case ConstantType(v1) => v1.value == v2.value
+ case _ => secondTry(tp1, tp2)
+ }
case ErrorType =>
true
case _ =>
diff --git a/tests/repl/def.check b/tests/repl/def.check
index 498ecb282..9d6538354 100644
--- a/tests/repl/def.check
+++ b/tests/repl/def.check
@@ -6,4 +6,8 @@ scala> def baz() = 2
def baz(): Int
scala> def qux(): Int = 2
def qux(): Int
+scala> def id(x: 4): 4 = x
+def id(x: 4.type): Int(4)
+scala> id(4)
+val res0: Int = 4
scala> :quit