char *TemplateInstance::mangle() { OutBuffer buf; #if 0 printf("TemplateInstance::mangle() %p %s", this, toChars()); if (parent) printf(" parent = %s %s", parent->kind(), parent->toChars()); printf("\n"); #endif char *id = ident ? ident->toChars() : toChars(); if (!tempdecl) error("is not defined"); else { Dsymbol *par = isnested || isTemplateMixin() ? parent : tempdecl->parent; if (par) { char *p = par->mangle(); if (p[0] == '_' && p[1] == 'D') p += 2; buf.writestring(p); } } buf.printf("%zu%s", strlen(id), id); id = buf.toChars(); buf.data = NULL; //printf("TemplateInstance::mangle() %s = %s\n", toChars(), id); return id; }