[#381] | project: compiler | priority: medium | category: bug | |
---|---|---|---|---|
submitter | assigned to | status | date submitted | |
Philippe | _ | fixed | 2004-12-01 12:51:50.0 | |
subject | Expansion of mixins inheriting a same method from two direct superclasses is erroneous | |||
code |
&otclass A { override def toString() : String = "a"; } class B extends A { override def toString() : String = super.toString() + ;, b"; } class C extends A { override def toString() : String = super.toString() + ", c"; } class D extends A { override def toString() : String = super.toString() + ", d"; } class BC extends B with C; class BD extends B with D; class CB extends C with B; class CD extends C with D; class DB extends D with B; class DC extends D with C; object Test { def main( args:Array[String] ): Unit = { System.out.println("BC " + (new BC)); System.out.println("BD " + (new BD)); System.out.println("CB " + (new CB)); System.out.println("CD " + (new CD)); System.out.println("DB " + (new DB)); System.out.println("DC " + (new DC)); } } |
|||
what happened | The program prints this:BC a, b BD a, b CB a, c, b CD a, c DB a, d, b DC a, d, c |
|||
what expected | It should print this:
BC a, b, c BD a, b, d CB a, c, b CD a, c, d DB a, d, b DC a, d, c |
|||
[back to overview] |
Lex edited on 2006-03-28 14:19:34.0 |
This does not currently compile because now only traits are allowed to be mixed in. Philippe, could you look again and see if the problem you found is still there?? |
Gilles edited on 2007-08-29 10:51:11.0 |