Mercurial > projects > ldc
diff dmd/cast.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 |
line wrap: on
line diff
--- a/dmd/cast.c Fri May 15 17:17:20 2009 +0200 +++ b/dmd/cast.c Sat May 16 12:17:33 2009 +0200 @@ -523,7 +523,7 @@ { ve = (VarExp *)e1; f = ve->var->isFuncDeclaration(); - if (f && f->overloadExactMatch(t->next)) + if (f && f->overloadExactMatch(t->next, m)) result = MATCHexact; } } @@ -552,7 +552,7 @@ t->ty == Tpointer && t->next->ty == Tfunction) { f = var->isFuncDeclaration(); - if (f && f->overloadExactMatch(t->next)) + if (f && f->overloadExactMatch(t->next, m)) result = MATCHexact; } } @@ -579,7 +579,7 @@ if (type->ty == Tdelegate && type->nextOf()->ty == Tfunction && t->ty == Tdelegate && t->nextOf()->ty == Tfunction) { - if (func && func->overloadExactMatch(t->nextOf())) + if (func && func->overloadExactMatch(t->nextOf(), m)) result = MATCHexact; } } @@ -975,7 +975,7 @@ f = ve->var->isFuncDeclaration(); if (f) { - f = f->overloadExactMatch(tb->next); + f = f->overloadExactMatch(tb->next, m); if (f) { e = new VarExp(loc, f); @@ -1099,7 +1099,7 @@ f = var->isFuncDeclaration(); if (f) { - f = f->overloadExactMatch(tb->next); + f = f->overloadExactMatch(tb->next, m); if (f) { e = new SymOffExp(loc, f, 0); @@ -1136,7 +1136,7 @@ { if (func) { - f = func->overloadExactMatch(tb->next); + f = func->overloadExactMatch(tb->next, m); if (f) { int offset; if (f->tintro && f->tintro->next->isBaseOf(f->type->next, &offset) && offset)