http://d.puremagic.com/issues/show_bug.cgi?id=3231
--- Comment #8 from Cristi Vlasceanu <crist...@zerobugs.org> 2009-08-07 21:28:56 PDT --- @BCS That case is indeed illegal, AND handled correctly by my fix. You can try it out either by downloading the dnet compiler, or by applying the change to DMD, here's the full code: Type *TypeIdentifier::semantic(Loc loc, Scope *sc) { Type *t; Expression *e; Dsymbol *s; //printf("TypeIdentifier::semantic(%s)\n", toChars()); resolve(loc, sc, &e, &t, &s); if (t) { //printf("\tit's a type %d, %s, %s\n", t->ty, t->toChars(), t->deco); if (t->ty == Ttypedef) { TypeTypedef *tt = (TypeTypedef *)t; if (tt->sym->sem == 1) error(loc, "circular reference of typedef %s", tt->toChars()); } t = t->addMod(mod); } else { #ifdef DEBUG if (!global.gag) printf("1: "); #endif if (s) { #if TARGET_NET //http://d.puremagic.com/issues/show_bug.cgi?id=3231 if (sc->enclosing) return semantic(loc, sc->enclosing); #endif s->error(loc, "is used as a type"); //halt(); } else error(loc, "%s is used as a type", toChars()); t = tvoid; } //t->print(); return t; } -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------