Closed
Description
Minimized code
trait A {
val s = "same val in A"
def f: String = s
}
class B extends A {
class C {
def call_f_in_A: String = B.super[A].f
}
}
val b = new B
val c = new b.C
c.call_f_in_A // AbstractMethodError
Output
java.lang.AbstractMethodError:
Receiver class rs$line$3$B$C does not define or inherit an implementation of the
resolved method 'abstract java.lang.String rs$line$3$A$$s()' of interface rs$line$3$A.
// defined trait A
// defined class B
java.lang.AbstractMethodError: Receiver class rs$line$3$B$C does not define or inherit an implementation of the resolved method 'abstract java.lang.String rs$line$3$A$$s()' of interface rs$line$3$A.
at rs$line$3$A.f(rs$line$3:3)
at rs$line$3$B$C.call_f_in_A(rs$line$3:8)
at rs$line$3$.<init>(rs$line$3:13)
at rs$line$3$.<clinit>(rs$line$3)
at rs$line$3.b(rs$line$3)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at dotty.tools.repl.Rendering.$anonfun$3(Rendering.scala:84)
at scala.Option.map(Option.scala:242)
at dotty.tools.repl.Rendering.valueOf(Rendering.scala:84)
at dotty.tools.repl.Rendering.renderVal(Rendering.scala:121)
at dotty.tools.repl.ReplDriver.$anonfun$13(ReplDriver.scala:306)
at scala.collection.immutable.List.flatMap(List.scala:293)
at scala.collection.immutable.List.flatMap(List.scala:79)
at dotty.tools.repl.ReplDriver.extractAndFormatMembers$2(ReplDriver.scala:306)
at dotty.tools.repl.ReplDriver.renderDefinitions$$anonfun$2(ReplDriver.scala:327)
at scala.Option.map(Option.scala:242)
at dotty.tools.repl.ReplDriver.renderDefinitions(ReplDriver.scala:330)
at dotty.tools.repl.ReplDriver.compile$$anonfun$2(ReplDriver.scala:250)
at scala.util.Either.fold(Either.scala:189)
at dotty.tools.repl.ReplDriver.compile(ReplDriver.scala:265)
at dotty.tools.repl.ReplDriver.interpret(ReplDriver.scala:195)
at dotty.tools.repl.ReplDriver.loop$1(ReplDriver.scala:128)
at dotty.tools.repl.ReplDriver.runUntilQuit$$anonfun$1(ReplDriver.scala:131)
at dotty.tools.repl.ReplDriver.withRedirectedOutput(ReplDriver.scala:150)
at dotty.tools.repl.ReplDriver.runUntilQuit(ReplDriver.scala:131)
at dotty.tools.repl.Main$.main(Main.scala:6)
at dotty.tools.repl.Main.main(Main.scala)
java.lang.NoClassDefFoundError: Could not initialize class rs$line$3$
at rs$line$3.c(rs$line$3)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at dotty.tools.repl.Rendering.$anonfun$3(Rendering.scala:84)
at scala.Option.map(Option.scala:242)
at dotty.tools.repl.Rendering.valueOf(Rendering.scala:84)
at dotty.tools.repl.Rendering.renderVal(Rendering.scala:121)
at dotty.tools.repl.ReplDriver.$anonfun$13(ReplDriver.scala:306)
at scala.collection.immutable.List.flatMap(List.scala:293)
at scala.collection.immutable.List.flatMap(List.scala:79)
at dotty.tools.repl.ReplDriver.extractAndFormatMembers$2(ReplDriver.scala:306)
at dotty.tools.repl.ReplDriver.renderDefinitions$$anonfun$2(ReplDriver.scala:327)
at scala.Option.map(Option.scala:242)
at dotty.tools.repl.ReplDriver.renderDefinitions(ReplDriver.scala:330)
at dotty.tools.repl.ReplDriver.compile$$anonfun$2(ReplDriver.scala:250)
at scala.util.Either.fold(Either.scala:189)
at dotty.tools.repl.ReplDriver.compile(ReplDriver.scala:265)
at dotty.tools.repl.ReplDriver.interpret(ReplDriver.scala:195)
at dotty.tools.repl.ReplDriver.loop$1(ReplDriver.scala:128)
at dotty.tools.repl.ReplDriver.runUntilQuit$$anonfun$1(ReplDriver.scala:131)
at dotty.tools.repl.ReplDriver.withRedirectedOutput(ReplDriver.scala:150)
at dotty.tools.repl.ReplDriver.runUntilQuit(ReplDriver.scala:131)
at dotty.tools.repl.Main$.main(Main.scala:6)
at dotty.tools.repl.Main.main(Main.scala)
java.lang.NoClassDefFoundError: Could not initialize class rs$line$3$
at rs$line$3.res1(rs$line$3)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at dotty.tools.repl.Rendering.$anonfun$3(Rendering.scala:84)
at scala.Option.map(Option.scala:242)
at dotty.tools.repl.Rendering.valueOf(Rendering.scala:84)
at dotty.tools.repl.Rendering.renderVal(Rendering.scala:121)
at dotty.tools.repl.ReplDriver.$anonfun$13(ReplDriver.scala:306)
at scala.collection.immutable.List.flatMap(List.scala:293)
at scala.collection.immutable.List.flatMap(List.scala:79)
at dotty.tools.repl.ReplDriver.extractAndFormatMembers$2(ReplDriver.scala:306)
at dotty.tools.repl.ReplDriver.renderDefinitions$$anonfun$2(ReplDriver.scala:327)
at scala.Option.map(Option.scala:242)
at dotty.tools.repl.ReplDriver.renderDefinitions(ReplDriver.scala:330)
at dotty.tools.repl.ReplDriver.compile$$anonfun$2(ReplDriver.scala:250)
at scala.util.Either.fold(Either.scala:189)
at dotty.tools.repl.ReplDriver.compile(ReplDriver.scala:265)
at dotty.tools.repl.ReplDriver.interpret(ReplDriver.scala:195)
at dotty.tools.repl.ReplDriver.loop$1(ReplDriver.scala:128)
at dotty.tools.repl.ReplDriver.runUntilQuit$$anonfun$1(ReplDriver.scala:131)
at dotty.tools.repl.ReplDriver.withRedirectedOutput(ReplDriver.scala:150)
at dotty.tools.repl.ReplDriver.runUntilQuit(ReplDriver.scala:131)
at dotty.tools.repl.Main$.main(Main.scala:6)
at dotty.tools.repl.Main.main(Main.scala)
Expectation
It should compile.
I had the impression this was working one week ago. Maybe it was long ago or I'm just mistaken.