comparison dmd/struct.c @ 1358:78038e540342

Fix overload resolution issue in dmd bug 313/314 fix.
author Christian Kamm <kamm incasoftware de>
date Sat, 16 May 2009 12:17:33 +0200
parents e961851fb8be
children 8026319762be
comparison
equal deleted inserted replaced
1357:48747003a5de 1358:78038e540342
344 for (int i = 0; i < 2; i++) 344 for (int i = 0; i < 2; i++)
345 { 345 {
346 Dsymbol *s = search_function(this, id); 346 Dsymbol *s = search_function(this, id);
347 FuncDeclaration *fdx = s ? s->isFuncDeclaration() : NULL; 347 FuncDeclaration *fdx = s ? s->isFuncDeclaration() : NULL;
348 if (fdx) 348 if (fdx)
349 { FuncDeclaration *fd = fdx->overloadExactMatch(tfeqptr); 349 { FuncDeclaration *fd = fdx->overloadExactMatch(tfeqptr, getModule());
350 if (!fd) 350 if (!fd)
351 { fd = fdx->overloadExactMatch(tfeq); 351 { fd = fdx->overloadExactMatch(tfeq, getModule());
352 if (fd) 352 if (fd)
353 { // Create the thunk, fdptr 353 { // Create the thunk, fdptr
354 FuncDeclaration *fdptr = new FuncDeclaration(loc, loc, fdx->ident, STCundefined, tfeqptr); 354 FuncDeclaration *fdptr = new FuncDeclaration(loc, loc, fdx->ident, STCundefined, tfeqptr);
355 Expression *e = new IdentifierExp(loc, Id::p); 355 Expression *e = new IdentifierExp(loc, Id::p);
356 e = new PtrExp(loc, e); 356 e = new PtrExp(loc, e);