aboutsummaryrefslogtreecommitdiff
path: root/tests/run/tcpoly_overriding.scala
diff options
context:
space:
mode:
Diffstat (limited to 'tests/run/tcpoly_overriding.scala')
-rw-r--r--tests/run/tcpoly_overriding.scala19
1 files changed, 19 insertions, 0 deletions
diff --git a/tests/run/tcpoly_overriding.scala b/tests/run/tcpoly_overriding.scala
new file mode 100644
index 000000000..01b9c29ac
--- /dev/null
+++ b/tests/run/tcpoly_overriding.scala
@@ -0,0 +1,19 @@
+
+import scala.language.{ higherKinds }
+
+abstract class A[t[x]] {
+ def b: t[Int]
+}
+
+class B extends A[List] {
+ // underlying functionality being tested is overriding, but bugs manifest itself during erasure
+ // erasure should generate two methods: one that returns an Object (to implement the method in A)
+ // one that is as close as possible to the original method and thus returns a List
+ // the problem only manifests itself here -- but it's really a problem with overriding
+ // the link between this method and the method in A isn't seen
+ def b: List[Int] = List(1)
+}
+
+object Test extends dotty.runtime.LegacyApp {
+ Console.println((new B).b(0))
+}