Aladdin - Scala Bugtracking
[#380] project: compiler priority: medium category: bug
submitter assigned to status date submitted
Burak Martin fixed 2004-11-25 14:53:32.0
subject inheriting overridden methods + interfaces from Java
code
// file foo/Aint.java
package foo;

public interface Aint {
    void a(int i);
    void a(int i, int j);
    void a(int i, int j, int k);
}

// file foo/Aclass.java
package foo;

public abstract class Aclass implements Aint {
    final public void a(int i) {
        System.out.println(i);
    }
    public abstract void a(int i, int k);
}
// file Bclass.scala
package foo;

class Bclass extends Aclass {
    def a(i:Int, j:Int, k:Int): Unit = {
        a(i,j);
        a(j,k);
    }
    def a(i:Int, j:Int): Unit = {
        super.a(i);
        super.a(j);
    }
}
what happened
/tmp> scalac -classpath . Bclass.scala 
Bclass.scala:3: class Bclass needs to be abstract, since method a in trait Aint is not defined
class Bclass extends Aclass {
      ^
one error found
what expected proper compilation of Bclass.scala, given that a(int) is inherited from Aclass.
[back to overview]
Changes of this bug report
Lex  edited on  2006-03-28 14:23:37.0
This compiles fine in 2.1.0