aboutsummaryrefslogtreecommitdiff
path: root/tests/run/t8177f.scala
diff options
context:
space:
mode:
Diffstat (limited to 'tests/run/t8177f.scala')
-rw-r--r--tests/run/t8177f.scala20
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")))
+}