On Wed, May 16, 2012 at 4:59 AM, John Belmonte
<john@neggie.net> wrote:
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.