Clash between functions that shouldn't be in the same partial ordering set
TommiT
tommitissari at hotmail.com
Fri Jun 14 22:39:02 PDT 2013
On Saturday, 15 June 2013 at 02:39:31 UTC, Jonathan M Davis wrote:
> 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
Bug report there:
http://d.puremagic.com/issues/show_bug.cgi?id=10361
More information about the Digitalmars-d-learn
mailing list