On Saturday, June 15, 2013 01:09:28 TommiT wrote: > I'm pretty sure the following is a compiler bug, right? (using > DMD 2.063) > > --------- > module a; > > void foo(char) > { > } > > --------- > module b; > > enum MyEnum : int { _ } > > void foo(MyEnum) > { > } > > --------- > module main; > > import a; > import b; > > void main() > { > foo(char.init); > foo(MyEnum.init); // [1] > } > > // 1) Error: b.foo at b.d(5) conflicts with a.foo at a.d(3) > > There shouldn't be a problem with this cross-module overloading, > because MyEnum isn't implicitly convertible to char and vice > versa, and thus the partial ordering of functions should consider > a.foo and b.foo unordered.
It certainly looks like a bug to me. - Jonathan M Davis