Mercurial > projects > ldc
changeset 147:0636f6269dfd trunk
[svn r152] Relates to ticket #34. Always emit class definition if it is a template instance. Linkage still needs to be fixed.
author | ChristianK |
---|---|
date | Thu, 13 Mar 2008 18:37:52 +0100 |
parents | ddfdae91281a |
children | 86d3bb8ca33e |
files | gen/classes.cpp |
diffstat | 1 files changed, 2 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- 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())