diff options
author | Adriaan Moors <adriaan.moors@epfl.ch> | 2009-11-20 19:25:32 +0000 |
---|---|---|
committer | Adriaan Moors <adriaan.moors@epfl.ch> | 2009-11-20 19:25:32 +0000 |
commit | 3a75338448cede959800b57c52fd57033162b498 (patch) | |
tree | 380366640406b342745a462db5afe4be782bca12 /test | |
parent | e10d77e1ab3df39dc4a3e36399cb8f477ca5a90c (diff) | |
download | scala-3a75338448cede959800b57c52fd57033162b498.tar.gz scala-3a75338448cede959800b57c52fd57033162b498.tar.bz2 scala-3a75338448cede959800b57c52fd57033162b498.zip |
closes #2585: generate more precise Java generi...
closes #2585: generate more precise Java generic signatures for classes
nested in parametric outer classes fix based on review by Martin
baseType is your friend
Diffstat (limited to 'test')
-rw-r--r-- | test/files/jvm/t2585.check | 0 | ||||
-rw-r--r-- | test/files/jvm/t2585/Test.java | 16 | ||||
-rw-r--r-- | test/files/jvm/t2585/genericouter.scala | 25 |
3 files changed, 41 insertions, 0 deletions
diff --git a/test/files/jvm/t2585.check b/test/files/jvm/t2585.check new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/test/files/jvm/t2585.check diff --git a/test/files/jvm/t2585/Test.java b/test/files/jvm/t2585/Test.java new file mode 100644 index 0000000000..51fe20d81e --- /dev/null +++ b/test/files/jvm/t2585/Test.java @@ -0,0 +1,16 @@ +class J { S s ; } + +public class Test { + public static void main(String[] args) { + final X x = new X(); + final OuterImpl o = new OuterImpl(x); + + final OuterImpl.Inner i1 = o.newInner(); + i1.getT().getI().getT().getI(); // <--- Error: "The method getI() is undefined for the type Object" + + final Outer<X>.Inner i2 = o.newInner(); + i2.getT().getI().getT().getI(); // <--- Error: "The method getI() is undefined for the type Object" + + HashMap<String, String> map = new HashMap<String, String>(); + } +}
\ No newline at end of file diff --git a/test/files/jvm/t2585/genericouter.scala b/test/files/jvm/t2585/genericouter.scala new file mode 100644 index 0000000000..e06aa8101e --- /dev/null +++ b/test/files/jvm/t2585/genericouter.scala @@ -0,0 +1,25 @@ +case class S(n:Int) + +trait TraversableLike[+A, +Repr] { + class WithFilter(p: A => Boolean) + def withFilter(p: A => Boolean): WithFilter = new WithFilter(p) +} + +class HashMap[K, +V] extends TraversableLike[(K, V), HashMap[K, V]] + +class Outer[T](val t: T) { + class Inner { + def getT : T = t + } +} + +class OuterImpl(x: X) extends Outer[X](x) { + def newInner = new Inner +} + +class X { + def getI : Outer[X]#Inner = { + val oImpl = new OuterImpl(this) + new oImpl.Inner + } +}
\ No newline at end of file |