summaryrefslogtreecommitdiff
path: root/test/files/neg/t8244b.check
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2014-02-07 11:52:55 +0100
committerAdriaan Moors <adriaan.moors@typesafe.com>2014-02-12 18:05:00 -0800
commitf62e280825422c1e64c2427bc5958869662701ca (patch)
treef61e5c455851ee50f2210a898c15d6437724a3d6 /test/files/neg/t8244b.check
parent9c4a6e3ed7624892f46948c1c0fb57d7d5b3346e (diff)
downloadscala-f62e280825422c1e64c2427bc5958869662701ca.tar.gz
scala-f62e280825422c1e64c2427bc5958869662701ca.tar.bz2
scala-f62e280825422c1e64c2427bc5958869662701ca.zip
SI-8244 Fix raw type regression under separate compilation
In #1901, handling of raw types encountered in signatures during class file parsing was changed to work in the same manner as `classExistentialType`, by using `existentialAbstraction(cls.tparms, cls.tpe_*)` But this never creates fresh existential symbols, and just sticks the class type parameters it `quantified`: scala> trait T[A <: String] defined trait T scala> val cls = typeOf[T[_]].typeSymbol cls = trait T#101864 scala> cls.typeParams res0 = List(type A#101865) scala> cls.tpe_* res1 = T#101864[A#101865] scala> classExistentialType(cls) res3 = T#101864[_ <: String#7209] scala> val ExistentialType(quantified, result) = res3 List(type A#101865) In the enclosed test case, this class type parameter was substituted during `typeOf[X] memberType sym`, which led us unsoundly thinking that `Raw[_]` was `Raw[X]`. I've added a TODO comment to review the other usages of `classExistentialType`. Test variations include joint and separate compilation, and the corresponding Scala-only code. All fail with type errors now, as we expect. I've also added a distillation of a bootstrap error that failed when I forgot to wrap the `existentialType`.
Diffstat (limited to 'test/files/neg/t8244b.check')
-rw-r--r--test/files/neg/t8244b.check4
1 files changed, 4 insertions, 0 deletions
diff --git a/test/files/neg/t8244b.check b/test/files/neg/t8244b.check
new file mode 100644
index 0000000000..f6cbf99eb5
--- /dev/null
+++ b/test/files/neg/t8244b.check
@@ -0,0 +1,4 @@
+t8244b.scala:15: error: value exxx is not a member of _$1
+ raw.t.exxx
+ ^
+one error found