# HG changeset patch # User ChristianK # Date 1205429872 -3600 # Node ID 0636f6269dfd5142e217cb0c6214470619e2412c # Parent ddfdae91281afe356180a8a46368e10c7e30e5e5 [svn r152] Relates to ticket #34. Always emit class definition if it is a template instance. Linkage still needs to be fixed. diff -r ddfdae91281a -r 0636f6269dfd gen/classes.cpp --- a/gen/classes.cpp Mon Mar 10 19:29:39 2008 +0100 +++ b/gen/classes.cpp Thu Mar 13 18:37:52 2008 +0100 @@ -346,7 +346,7 @@ gIR->classes.push_back(cd); bool needs_definition = false; - if (cd->getModule() == gIR->dmodule) { + if (cd->getModule() == gIR->dmodule || DtoIsTemplateInstance(cd)) { needs_definition = true; } @@ -708,7 +708,7 @@ assert(cd->type->ty == Tclass); TypeClass* ts = (TypeClass*)cd->type; - if (cd->getModule() == gIR->dmodule) { + if (cd->getModule() == gIR->dmodule || DtoIsTemplateInstance(cd)) { // interfaces don't have initializers // neither do abstract classes if (!cd->isInterfaceDeclaration() && !cd->isAbstract())