diff options
author | Adriaan Moors <adriaan.moors@typesafe.com> | 2014-02-12 17:47:54 -0800 |
---|---|---|
committer | Adriaan Moors <adriaan.moors@typesafe.com> | 2014-02-12 17:47:54 -0800 |
commit | 9c4a6e3ed7624892f46948c1c0fb57d7d5b3346e (patch) | |
tree | b4b6d8fcedd45a8304d44c0dca3fe39a07fae065 /test/files/run | |
parent | 2240464dea5b13a487938f66878e3e84b180376a (diff) | |
parent | 427b82648422e4118c68f34e81c94deca3755deb (diff) | |
download | scala-9c4a6e3ed7624892f46948c1c0fb57d7d5b3346e.tar.gz scala-9c4a6e3ed7624892f46948c1c0fb57d7d5b3346e.tar.bz2 scala-9c4a6e3ed7624892f46948c1c0fb57d7d5b3346e.zip |
Merge pull request #3516 from adriaanm/t8177
SI-8177 co-evolve more than just RefinedTypes
Diffstat (limited to 'test/files/run')
-rw-r--r-- | test/files/run/t8177f.scala | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/test/files/run/t8177f.scala b/test/files/run/t8177f.scala new file mode 100644 index 0000000000..f50a5d98d6 --- /dev/null +++ b/test/files/run/t8177f.scala @@ -0,0 +1,20 @@ +trait Thing { type A; var p: A = _ } +class A[T](final val x: Thing { type A = T }) { + type Q = T + + def x1: T = x.p + def x2: Q = x.p + def x3: x.A = x.p +} +// all result types should be inferred as Int +class B extends A[Int](null) { + def y1 = x1 + def y2 = x2 + val y3 = x3 // before SI-8177, this lead to a signature that erased to java.lang.Object +} + + +object Test extends App { + val methods = classOf[B].getDeclaredMethods.sortBy(_.getName) + assert(methods.forall(_.toGenericString.startsWith("public int"))) +} |