summaryrefslogtreecommitdiff
path: root/test/files/pos
diff options
context:
space:
mode:
Diffstat (limited to 'test/files/pos')
-rw-r--r--test/files/pos/bug2094.scala31
-rw-r--r--test/files/pos/bug3528.scala8
-rw-r--r--test/files/pos/bug4501.scala14
-rwxr-xr-xtest/files/pos/t2179.scala3
-rw-r--r--test/files/pos/t3774.scala5
5 files changed, 61 insertions, 0 deletions
diff --git a/test/files/pos/bug2094.scala b/test/files/pos/bug2094.scala
new file mode 100644
index 0000000000..ff142117b2
--- /dev/null
+++ b/test/files/pos/bug2094.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)
+} \ No newline at end of file
diff --git a/test/files/pos/bug3528.scala b/test/files/pos/bug3528.scala
new file mode 100644
index 0000000000..ff49b3e929
--- /dev/null
+++ b/test/files/pos/bug3528.scala
@@ -0,0 +1,8 @@
+class A {
+ // 3528 - not fixed
+ // def f1 = List(List(1), Stream(1))
+ // 3528 comments
+ def f2 = List(Set(1,2,3), List(1,2,3))
+ // 2322
+ def f3 = List(null: Range, null: List[Int])
+}
diff --git a/test/files/pos/bug4501.scala b/test/files/pos/bug4501.scala
new file mode 100644
index 0000000000..40628f1a4b
--- /dev/null
+++ b/test/files/pos/bug4501.scala
@@ -0,0 +1,14 @@
+// After lub modification
+import scala.collection.mutable.ListBuffer
+
+class A {
+ def foo[T](a:T, b:T):T = a
+ def f1 = foo(ListBuffer(), List())
+ def f2 = foo(ListBuffer(), ListBuffer())
+ def f3 = foo(List(), List())
+
+ // scalap
+ // def f1 : scala.collection.Seq[scala.Nothing] = { /* compiled code */ }
+ // def f2 : scala.collection.mutable.ListBuffer[scala.Nothing] = { /* compiled code */ }
+ // def f3 : scala.collection.immutable.List[scala.Nothing] = { /* compiled code */ }
+} \ No newline at end of file
diff --git a/test/files/pos/t2179.scala b/test/files/pos/t2179.scala
new file mode 100755
index 0000000000..89e22b6e2a
--- /dev/null
+++ b/test/files/pos/t2179.scala
@@ -0,0 +1,3 @@
+object Test {
+ (Nil:List[List[Double]]).reduceLeft((_: Any, _: Any) => Nil.indices.map(_ => 0d))
+}
diff --git a/test/files/pos/t3774.scala b/test/files/pos/t3774.scala
new file mode 100644
index 0000000000..2869925b01
--- /dev/null
+++ b/test/files/pos/t3774.scala
@@ -0,0 +1,5 @@
+// This used to hang the lub process. Now it rejects the file. This is still not correct,
+// but we can solve this only after a redesign of lub a la dot.
+object Hang {
+ Map[(Int,Int),List[Int]]() ++ (for(x <- 0 to 1 ; y <- 0 to 1) yield {(x,y)-> (0 to 1)})
+}