# HG changeset patch # User Tomas Lindquist Olsen # Date 1239930103 -7200 # Node ID e1b0c5c74c58433cad2821e9721ad76bafa6f172 # Parent 9c2dbbdd34f82ef9710f0cf6d2e0488c09945069 Resolve all base classes, including interfaces (!) before resolving the class itself. diff -r 9c2dbbdd34f8 -r e1b0c5c74c58 gen/classes.cpp --- a/gen/classes.cpp Fri Apr 17 02:54:16 2009 +0200 +++ b/gen/classes.cpp Fri Apr 17 03:01:43 2009 +0200 @@ -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;