Mercurial > projects > ldc
diff dmd/expression.c @ 471:e19e20103119
Changed DMD to make a copy of the TypeFunction in DelegateExp.
author | Tomas Lindquist Olsen <tomas.l.olsen@gmail.com> |
---|---|
date | Mon, 04 Aug 2008 17:32:13 +0200 |
parents | 45a67b6f1310 |
children | a34078905d01 |
line wrap: on
line diff
--- a/dmd/expression.c Mon Aug 04 03:40:08 2008 +0200 +++ b/dmd/expression.c Mon Aug 04 17:32:13 2008 +0200 @@ -5373,7 +5373,8 @@ if (!type) { e1 = e1->semantic(sc); - type = new TypeDelegate(func->type); + // LLVMDC we need a copy as we store the LLVM tpye in TypeFunction, and delegate/members have different types for 'this' + type = new TypeDelegate(func->type->syntaxCopy()); type = type->semantic(loc, sc); AggregateDeclaration *ad = func->toParent()->isAggregateDeclaration(); if (func->needThis())