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())