Fix for delegates.

The following code works correctly now:
auto dg = &super.virtualFunc();
This commit is contained in:
Alexey Prokhin
2010-12-15 21:47:22 +03:00
parent c47bfbcc32
commit bb644d5c91

View File

@@ -2105,7 +2105,8 @@ DValue* DelegateExp::toElem(IRState* p)
Logger::println("func: '%s'", func->toPrettyChars());
LLValue* castfptr;
if (func->isVirtual() && !func->isFinal())
if (e1->op != TOKsuper && func->isVirtual() && !func->isFinal())
castfptr = DtoVirtualFunctionPointer(u, func, toChars());
else if (func->isAbstract())
assert(0 && "TODO delegate to abstract method");