Mercurial > projects > ldc
diff dmd/declaration.h @ 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 | 0c03ba6f7c24 |
children | 8026319762be |
line wrap: on
line diff
--- a/dmd/declaration.h Fri May 15 17:17:20 2009 +0200 +++ b/dmd/declaration.h Sat May 16 12:17:33 2009 +0200 @@ -87,8 +87,8 @@ FuncDeclaration *anyf; // pick a func, any func, to use for error recovery }; -void overloadResolveX(Match *m, FuncDeclaration *f, Expressions *arguments); -int overloadApply(FuncDeclaration *fstart, +void overloadResolveX(Match *m, FuncDeclaration *f, Expressions *arguments, Module* from); +int overloadApply(Module* from, FuncDeclaration *fstart, int (*fp)(void *, FuncDeclaration *), void *param); @@ -220,6 +220,7 @@ Dsymbol *aliassym; Dsymbol *overnext; // next in overload list int inSemantic; + PROT importprot; // if generated by import, store its protection AliasDeclaration(Loc loc, Identifier *ident, Type *type); AliasDeclaration(Loc loc, Identifier *ident, Dsymbol *s); @@ -670,8 +671,8 @@ int overrides(FuncDeclaration *fd); int findVtblIndex(Array *vtbl, int dim); int overloadInsert(Dsymbol *s); - FuncDeclaration *overloadExactMatch(Type *t); - FuncDeclaration *overloadResolve(Loc loc, Expressions *arguments); + FuncDeclaration *overloadExactMatch(Type *t, Module* from); + FuncDeclaration *overloadResolve(Loc loc, Expressions *arguments, Module* from); LabelDsymbol *searchLabel(Identifier *ident); AggregateDeclaration *isThis(); AggregateDeclaration *isMember2(); @@ -744,7 +745,8 @@ struct FuncAliasDeclaration : FuncDeclaration { FuncDeclaration *funcalias; - + PROT importprot; // if generated by import, store its protection + FuncAliasDeclaration(FuncDeclaration *funcalias); FuncAliasDeclaration *isFuncAliasDeclaration() { return this; }