Open
Description
Reproduction steps
➜ ~ skala -Xsource:3
Welcome to Scala 2.13.9-20220720-072233-0771b75 (OpenJDK 64-Bit Server VM, Java 18.0.1.1).
Type in expressions for evaluation. Or try :help.
scala> class C { def f(sb: StringBuilder): sb.type = sb }
class C
scala> class D extends C { override def f(sb: StringBuilder) = sb }
^
error: incompatible type in overriding
def f(sb: StringBuilder): sb.type (defined in class C);
found : (sb: StringBuilder): StringBuilder
required: (sb: StringBuilder): sb.type
Problem
Under -Xsource:3
, infer the result type from the overridden method.
Welcome to Scala 3.1.3 (18.0.1.1, Java OpenJDK 64-Bit Server VM).
Type in expressions for evaluation. Or try :help.
scala> class C { def f(sb: StringBuilder): sb.type = sb }
// defined class C
scala> class D extends C { override def f(sb: StringBuilder) = sb }
// defined class D
scala>