Dsymbol *ScopeDsymbol::nameCollision(Dsymbol *s) { Dsymbol *sprev; // Look to see if we are defining a forward referenced symbol sprev = symtab->lookup(s->ident); assert(sprev); if (s->equals(sprev)) // if the same symbol { if (s->isforwardRef()) // if second declaration is a forward reference return sprev; if (sprev->isforwardRef()) { sprev->defineRef(s); // copy data from s into sprev return sprev; } } multiplyDefined(0, s, sprev); return sprev; }