diff options
Diffstat (limited to 'tests/run/t8177f.scala')
-rw-r--r-- | tests/run/t8177f.scala | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/run/t8177f.scala b/tests/run/t8177f.scala new file mode 100644 index 000000000..6f9a68c11 --- /dev/null +++ b/tests/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 dotty.runtime.LegacyApp { + val methods = classOf[B].getDeclaredMethods.sortBy(_.getName) + assert(methods.forall(_.toGenericString.startsWith("public int"))) +} |