Skip to content

Sammy gets confused with Java classes #9489

Closed
@scabug

Description

@scabug

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

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions