Resolve all base classes, including interfaces (!) before resolving the class itself.

This commit is contained in:
Tomas Lindquist Olsen 2009-04-17 03:01:43 +02:00
parent ea2279b11a
commit f5ce8eda1d

View file

@ -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<BaseClass> 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;