[#337] | project: compiler | priority: low | category: bug | |
---|---|---|---|---|
submitter | assigned to | status | date submitted | |
Philippe | Philippe | fixed | 2004-06-04 13:19:47.0 | |
subject | Erasure creates unexpected overrides | |||
code |
class A { def foo[X](x: X): Int = 1; } object Test extends A { def foo(x: Any): Int = 2; def main(args: Array[String]): Unit = { val a: A = this; System.out.println(a.foo(0)); } } |
|||
what happened | Prints 2 at runtime. |
|||
what expected | The program should either print 1 or there should be an error because the two methods foo have different signatures but are erased to the same signature.
|
|||
[back to overview] |
Philippe edited on 2004-06-04 13:20:19.0 |
See also bug 336. |
Martin edited on 2004-07-02 18:48:03.0 |
My fix for bug 336 also solves this problem. |