http://d.puremagic.com/issues/show_bug.cgi?id=8074
--- Comment #6 from Kenji Hara <k.hara...@gmail.com> 2013-02-14 09:01:34 PST --- I think there is no ambiguity for current behavior. I can explain it based on the 'overload set resolution rule'. Please regard these mixin declarations as two import statements. mixin Foo; mixin Bar; void main() { func(); } Can be considered to: import foo; import bar; void main() { func(); } And each module contains following declarations. module foo; // --- int x = 5; void func(int x) { writeln("Foo.func(), x = ", x); } module bar; // --- int x = 4; void func() { writeln("Bar.func(), x = ", x); } Finally, the 'func()' is resolved to the call of bar.func. "compiler will resolve an ambiguous mixin-ed symbol by regarding it as overload set.." - This is much reasonable and consistent rule. If 'foo' is called with some arguments but cannot eliminate the ambiguity, it will be error. Otherwise simply will succeed to call. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------