Closed
Description
A.java
public class A {
public B b() { return null; }
}
B.java
public abstract class B {
public abstract int m();
}
Test.scala
class T {
def f(a: A) = g(a.b)
def g(b: => B) = null
}
Compiling:
$ javac A.java B.java
$ scalac -Xexperimental A.scala -Xprint:typer
A.scala:2: error: type mismatch;
found : B
required: Int
def f(a: A) = g(a.b)
^
[[syntax trees at end of typer]] // A.scala
package <empty> {
class T extends scala.AnyRef {
def <init>(): T = {
T.super.<init>();
()
};
def <f: error>(a: A): <error> = T.this.g(a.b);
def g(b: => B): Null = null
}
}
one error found