summaryrefslogtreecommitdiff
path: root/test/files
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2013-12-02 17:14:41 +0100
committerJason Zaugg <jzaugg@gmail.com>2013-12-02 20:47:47 +0100
commita89000be9f5b6506bcd891bd076700a9d1e79d01 (patch)
tree09e0b70eba2c07d0ab00eb3704ad6d0533c2f315 /test/files
parent073ebbd20ce9775260b83a78ecf9ed6a3e6d3d9e (diff)
downloadscala-a89000be9f5b6506bcd891bd076700a9d1e79d01.tar.gz
scala-a89000be9f5b6506bcd891bd076700a9d1e79d01.tar.bz2
scala-a89000be9f5b6506bcd891bd076700a9d1e79d01.zip
SI-8023 Fix symbol-completion-order type var pattern bug
Removing the `isComplete` check altogether leads to cycles in, for instatnce, F-bound type parameters: trait LSO[+A, +Repr <: LSO[A, Repr]] // error: illegal cyclic reference involving type Repr But, I believe that we can (and must) eagerly initialize the type parameter symbols if we are typechecking a pattern. While this appeared to regress in 2.11.x, but the problem was in fact dormant and was merely uncovered in the fix for SI-7756, 3df1d77fc.
Diffstat (limited to 'test/files')
-rw-r--r--test/files/pos/t8023.scala22
1 files changed, 22 insertions, 0 deletions
diff --git a/test/files/pos/t8023.scala b/test/files/pos/t8023.scala
new file mode 100644
index 0000000000..86824084ed
--- /dev/null
+++ b/test/files/pos/t8023.scala
@@ -0,0 +1,22 @@
+import language._
+
+
+object Test {
+ def foo = (null: Any) match {
+ case a: A[k] =>
+ // error: kinds of the type arguments (k) do not conform to the
+ // expected kinds of the type parameters (type K) in class B.
+ new B[k]()
+ }
+}
+
+class A[K[L[_]]]
+
+class B[K[M[_]]]
+
+
+object Test2 {
+ def foo = (null: Any) match {
+ case a: A[k] => new B[k]() // this one worked before as the info of `A` was complete
+ }
+}