From f5ce8eda1da492267deffee8e435abca22a8d107 Mon Sep 17 00:00:00 2001 From: Tomas Lindquist Olsen Date: Fri, 17 Apr 2009 03:01:43 +0200 Subject: [PATCH] Resolve all base classes, including interfaces (!) before resolving the class itself. --- gen/classes.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/gen/classes.cpp b/gen/classes.cpp index 886b9205..156d82ff 100644 --- a/gen/classes.cpp +++ b/gen/classes.cpp @@ -28,8 +28,16 @@ void DtoResolveClass(ClassDeclaration* cd) { // make sure the base classes are processed first - if (cd->baseClass) - cd->baseClass->codegen(Type::sir); + ArrayIter base_iter(cd->baseclasses); + while (base_iter.more()) + { + BaseClass* bc = base_iter.get(); + if (bc) + { + bc->base->codegen(Type::sir); + } + base_iter.next(); + } if (cd->ir.resolved) return; cd->ir.resolved = true;