Merged DMD commit 504349171f38b724990bf3ee91ec02d4fc56874f:

bugzilla 5117 [CTFE] Member function call with rather complex this: side effects ignored
This commit is contained in:
David Nadlinger
2011-04-22 18:29:31 +02:00
parent f3ebce5cd6
commit 1379b4b8d3

View File

@@ -226,6 +226,8 @@ Expression *FuncDeclaration::interpret(InterState *istate, Expressions *argument
if (needThis() && istate)
{
VarDeclaration *thisvar = findParentVar(thisarg, istate->localThis);
if (!thisvar) // it's a reference. Find which variable it refers to.
thisvar = findParentVar(thisarg->interpret(istate), istate->localThis);
for (size_t i = 0; i < istate->vars.dim; i++)
{ VarDeclaration *v = (VarDeclaration *)istate->vars.data[i];
if (v == thisvar)