Mercurial > projects > ldc
comparison dmd/expression.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 | e961851fb8be |
children | 8026319762be |
comparison
equal
deleted
inserted
replaced
1357:48747003a5de | 1358:78038e540342 |
---|---|
71 void initPrecedence(); | 71 void initPrecedence(); |
72 | 72 |
73 Expression *resolveProperties(Scope *sc, Expression *e); | 73 Expression *resolveProperties(Scope *sc, Expression *e); |
74 void accessCheck(Loc loc, Scope *sc, Expression *e, Declaration *d); | 74 void accessCheck(Loc loc, Scope *sc, Expression *e, Declaration *d); |
75 Dsymbol *search_function(AggregateDeclaration *ad, Identifier *funcid); | 75 Dsymbol *search_function(AggregateDeclaration *ad, Identifier *funcid); |
76 void inferApplyArgTypes(enum TOK op, Arguments *arguments, Expression *aggr); | 76 void inferApplyArgTypes(enum TOK op, Arguments *arguments, Expression *aggr, Module* from); |
77 void argExpTypesToCBuffer(OutBuffer *buf, Expressions *arguments, HdrGenState *hgs); | 77 void argExpTypesToCBuffer(OutBuffer *buf, Expressions *arguments, HdrGenState *hgs); |
78 void argsToCBuffer(OutBuffer *buf, Expressions *arguments, HdrGenState *hgs); | 78 void argsToCBuffer(OutBuffer *buf, Expressions *arguments, HdrGenState *hgs); |
79 void expandTuples(Expressions *exps); | 79 void expandTuples(Expressions *exps); |
80 FuncDeclaration *hasThis(Scope *sc); | 80 FuncDeclaration *hasThis(Scope *sc); |
81 Expression *fromConstInitializer(int result, Expression *e); | 81 Expression *fromConstInitializer(int result, Expression *e); |
632 | 632 |
633 struct SymOffExp : Expression | 633 struct SymOffExp : Expression |
634 { | 634 { |
635 Declaration *var; | 635 Declaration *var; |
636 unsigned offset; | 636 unsigned offset; |
637 Module* m; // starting point for overload resolution | |
637 | 638 |
638 SymOffExp(Loc loc, Declaration *var, unsigned offset); | 639 SymOffExp(Loc loc, Declaration *var, unsigned offset); |
639 Expression *semantic(Scope *sc); | 640 Expression *semantic(Scope *sc); |
640 void checkEscape(); | 641 void checkEscape(); |
641 void toCBuffer(OutBuffer *buf, HdrGenState *hgs); | 642 void toCBuffer(OutBuffer *buf, HdrGenState *hgs); |
967 }; | 968 }; |
968 | 969 |
969 struct DelegateExp : UnaExp | 970 struct DelegateExp : UnaExp |
970 { | 971 { |
971 FuncDeclaration *func; | 972 FuncDeclaration *func; |
973 Module* m; // starting point for overload resolution | |
972 | 974 |
973 DelegateExp(Loc loc, Expression *e, FuncDeclaration *func); | 975 DelegateExp(Loc loc, Expression *e, FuncDeclaration *func); |
974 Expression *semantic(Scope *sc); | 976 Expression *semantic(Scope *sc); |
975 MATCH implicitConvTo(Type *t); | 977 MATCH implicitConvTo(Type *t); |
976 Expression *castTo(Scope *sc, Type *t); | 978 Expression *castTo(Scope *sc, Type *t); |
1034 #endif | 1036 #endif |
1035 }; | 1037 }; |
1036 | 1038 |
1037 struct AddrExp : UnaExp | 1039 struct AddrExp : UnaExp |
1038 { | 1040 { |
1041 Module* m; // starting point for overload resolution | |
1042 | |
1039 AddrExp(Loc loc, Expression *e); | 1043 AddrExp(Loc loc, Expression *e); |
1040 Expression *semantic(Scope *sc); | 1044 Expression *semantic(Scope *sc); |
1041 #if IN_DMD | 1045 #if IN_DMD |
1042 elem *toElem(IRState *irs); | 1046 elem *toElem(IRState *irs); |
1043 #endif | 1047 #endif |