[Issue 2050] interfaces should allow final methods with body

d-bugmail at puremagic.com d-bugmail at puremagic.com
Sat Apr 4 07:53:05 PDT 2009


http://d.puremagic.com/issues/show_bug.cgi?id=2050





------- Comment #9 from sandford at jhu.edu  2009-04-04 09:53 -------
(In reply to comment #0)
This seems to break composability:

interface I1 { final int foo() {return 1;} }
interface I2 { final int foo() {return 2;} }

class A: I1, I2 {}

Whose foo does A choose? And how is it resolved? (given you can't drop one of
the interfaces). And consider

class B: I1, I2 { final int foo() {return 3;} }
B b = new B();
I1 i1 = b;
I2 i2 = b;
assert( i1.foo == 1 );
assert( i2.foo == 2 );
assert(  b.foo == 3 );


-- 



More information about the Digitalmars-d-bugs mailing list