UFCS on forward reference

Timon Gehr timon.gehr at gmx.ch
Mon May 14 22:02:20 PDT 2012


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/


More information about the Digitalmars-d mailing list