Closed
Description
In Java,
class J {
String foo() { return "foo"; }
}
In Scala,
class S extends J {
override def foo(): Int = 42
}
Expected (scalac
):
S.scala:6: error: overriding method foo in class J of type ()String;
method foo has incompatible type
override def foo(): Int = ???
^
Actual (dotc
):
Compilation succeeds
The problem is in https://github.com/lampepfl/dotty/blob/master/compiler/src/dotty/tools/dotc/core/Types.scala#L871
Specifically, this1.overrides(this1, matchLoosely = false)
should be this1.overrides(that1, matchLoosely = false)
.