aboutsummaryrefslogtreecommitdiff
path: root/tests/pos/t2094.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2014-05-06 10:34:40 +0200
committerSamuel Gruetter <samuel.gruetter@epfl.ch>2014-05-20 13:38:48 +0200
commit2d3c79f7cf3e79b592c7e479d262e8d3f9b04959 (patch)
tree34fe9918f20f17f2426a1dc47c6678a863f20f33 /tests/pos/t2094.scala
parent093774e181e878308551226f6a0b990bf7de8077 (diff)
downloaddotty-2d3c79f7cf3e79b592c7e479d262e8d3f9b04959.tar.gz
dotty-2d3c79f7cf3e79b592c7e479d262e8d3f9b04959.tar.bz2
dotty-2d3c79f7cf3e79b592c7e479d262e8d3f9b04959.zip
Tests pos 20xx 21xx
Diffstat (limited to 'tests/pos/t2094.scala')
-rw-r--r--tests/pos/t2094.scala31
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/pos/t2094.scala b/tests/pos/t2094.scala
new file mode 100644
index 000000000..6b6c4f077
--- /dev/null
+++ b/tests/pos/t2094.scala
@@ -0,0 +1,31 @@
+object Test extends App {
+ // compiles:
+ Map[Int, Value](
+ 0 -> KnownType(classOf[Object]),
+ 1 -> UnknownValue())
+
+ // does not compile:
+ Map(
+ 0 -> KnownType(classOf[Object]),
+ 1 -> UnknownValue())
+
+ // Experiment.scala:10: error: type mismatch;
+ // found : (Int, KnownType)
+ // required: (Int, Product with Value{def getType: Option[java.lang.Class[_$$2]]}) where type _$$2
+ // 0 -> KnownType(classOf[Object]),
+ // ^
+ // one error found
+}
+sealed trait Value {
+ def getType: Option[Class[_]]
+}
+
+case class UnknownValue() extends Value {
+ def getType = None
+ // compiles if changed to:
+ // def getType: Option[Class[_]] = None
+}
+
+case class KnownType(typ: Class[_]) extends Value {
+ def getType = Some(typ)
+}