http://d.puremagic.com/issues/show_bug.cgi?id=4371
Don <clugd...@yahoo.com.au> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |patch --- Comment #1 from Don <clugd...@yahoo.com.au> 2010-11-26 00:44:26 PST --- There are two issues: (1) deduceType() can return a tuple. This causes the segfault, because it isn't a type. Fixing that stops the crash, but the code still doesn't work, because... (2) Same as bug 5164: it shouldn't try to add the symbol twice. Exactly the same fix works here. PATCH: expression.c, line 5185, IsExp::semantic(). ---------- Lyes: if (id) { - Dsymbol *s = new AliasDeclaration(loc, id, tded); + Dsymbol *s; + if (isTuple(tded)) + s = new TupleDeclaration(loc, id, &(isTuple(tded)->objects)); + else + s = new AliasDeclaration(loc, id, tded); s->semantic(sc); - if (!sc->insert(s)) - error("declaration %s is already defined", s->toChars()); if (sc->sd) s->addMember(sc, sc->sd, 1); + else if (!sc->insert(s)) + error("declaration %s is already defined", s->toChars()); } //printf("Lyes\n"); return new IntegerExp(loc, 1, Type::tbool); Lno: //printf("Lno\n"); return new IntegerExp(loc, 0, Type::tbool); -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------