UFCS on forward reference

John Belmonte john at neggie.net
Tue May 15 17:59:22 PDT 2012


On Tuesday, 15 May 2012 at 05:02:20 UTC, Timon Gehr wrote:
> On 05/15/2012 04:28 AM, John Belmonte wrote:
>> C API's often use a opaque struct pointer as a handle. Mapping 
>> such a
>> struct to D using a forward declaration, I noticed that UFCS 
>> doesn't work:
>>
>> struct State;
>> ...
>> State* s = new_state();
>> foo(s); // ok
>> s.foo(); // compile error
>>
>> Error detail:
>>
>> Error: struct State is forward referenced when looking for 
>> 'foo'
>> Error: struct State is forward referenced when looking for 
>> 'opDot'
>> Error: struct State is forward referenced when looking for 
>> 'opDispatch'
>>
>> I'm wondering if anything would be harmed by removing this 
>> restriction.
>>
>> As a workaround I can use "struct State {}", but that feels 
>> wrong.
>>
>
> This is a compiler bug. You can report it here: 
> http://d.puremagic.com/issues/

Thanks-- filed http://d.puremagic.com/issues/show_bug.cgi?id=8104.



More information about the Digitalmars-d mailing list