From f82ca73c760780e52cc366b336a5ead82c73ed1f Mon Sep 17 00:00:00 2001 From: Christian Kamm Date: Sun, 25 Jan 2009 12:35:11 +0100 Subject: [PATCH] Casts from interface to class generally need to be dynamic. Fixes #189. --- gen/classes.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gen/classes.cpp b/gen/classes.cpp index f9ae157c..043bcd03 100644 --- a/gen/classes.cpp +++ b/gen/classes.cpp @@ -1090,11 +1090,11 @@ DValue* DtoCastClass(DValue* val, Type* _to) // interface -> class if (fc->sym->isInterfaceDeclaration()) { Logger::println("interface cast"); - return DtoCastInterfaceToObject(val, _to); + return DtoDynamicCastInterface(val, _to); } // class -> class - static down cast else if (tc->sym->isBaseOf(fc->sym,NULL)) { - Logger::println("static down cast)"); + Logger::println("static down cast"); const LLType* tolltype = DtoType(_to); LLValue* rval = DtoBitCast(val->getRVal(), tolltype); return new DImValue(_to, rval);