http://d.puremagic.com/issues/show_bug.cgi?id=4435
Summary: Multiple-inheritance of Interfaces results in final/static method/function hijacking Product: D Version: D2 Platform: All OS/Version: Windows Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: sandf...@jhu.edu --- Comment #0 from Rob Jacques <sandf...@jhu.edu> 2010-07-07 07:34:47 PDT --- Essentially, the first matching final/static function is chosen when a class implements two interfaces with final/static methods: interface Alive { final bool isDead() { return false; } } interface Dead { final bool isDead() { return true; } } class Cat1 : Alive, Dead {} class Cat2 : Dead , Alive{} void main(string[] args) { Cat1 c1 = new Cat1; Cat2 c2 = new Cat2; assert(!c1.isDead); assert( c2.isDead); } This seems to be another case of function hijacking. It may be similar in root cause to bug 3706: delegates of interfaces with multiple inheritance fail -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------