dmd trunk r727. Forward reference error happens if a member pure function of struct S has a parameter of the type S: -------------------- struct S { bool fun(S s) pure { return true; } } -------------------- % dmd -o- -c test.d test.d(2): Error: struct test.S no size yet for forward reference -------------------- The error happens in TypeStruct::hasPointers() called from TypeFunction::semantic() around line 5011 of mtype.c: -------------------- } } Type *t = fparam->type->toBasetype(); >> if (!t->hasPointers()) continue; if (t->mod & (MODimmutable | MODwild)) continue; --------------------
Fixed DMD2.050