Mercurial > projects > ldc
comparison dmd/expression.h @ 1618:a87f1d6ff48e
Merge DMD r303: harmonize
---
dmd/expression.c | 78 ++++++++++++++++++++++++++++++++++++++++++++++++-----
dmd/expression.h | 8 +++++
dmd/template.c | 27 ++++++++++++-------
3 files changed, 95 insertions(+), 18 deletions(-)
author | Leandro Lucarella <llucax@gmail.com> |
---|---|
date | Wed, 06 Jan 2010 15:18:21 -0300 |
parents | 3da302cc4966 |
children | 8fa4ab3dcc88 |
comparison
equal
deleted
inserted
replaced
1617:6820110de311 | 1618:a87f1d6ff48e |
---|---|
121 virtual Expression *modifiableLvalue(Scope *sc, Expression *e); | 121 virtual Expression *modifiableLvalue(Scope *sc, Expression *e); |
122 Expression *implicitCastTo(Scope *sc, Type *t); | 122 Expression *implicitCastTo(Scope *sc, Type *t); |
123 virtual MATCH implicitConvTo(Type *t); | 123 virtual MATCH implicitConvTo(Type *t); |
124 virtual Expression *castTo(Scope *sc, Type *t); | 124 virtual Expression *castTo(Scope *sc, Type *t); |
125 virtual void checkEscape(); | 125 virtual void checkEscape(); |
126 virtual void checkEscapeRef(); | |
126 void checkScalar(); | 127 void checkScalar(); |
127 void checkNoBool(); | 128 void checkNoBool(); |
128 Expression *checkIntegral(); | 129 Expression *checkIntegral(); |
129 Expression *checkArithmetic(); | 130 Expression *checkArithmetic(); |
130 void checkDeprecated(Scope *sc, Dsymbol *s); | 131 void checkDeprecated(Scope *sc, Dsymbol *s); |
676 Expression *interpret(InterState *istate); | 677 Expression *interpret(InterState *istate); |
677 void dump(int indent); | 678 void dump(int indent); |
678 char *toChars(); | 679 char *toChars(); |
679 void toCBuffer(OutBuffer *buf, HdrGenState *hgs); | 680 void toCBuffer(OutBuffer *buf, HdrGenState *hgs); |
680 void checkEscape(); | 681 void checkEscape(); |
682 void checkEscapeRef(); | |
683 int isLvalue(); | |
681 Expression *toLvalue(Scope *sc, Expression *e); | 684 Expression *toLvalue(Scope *sc, Expression *e); |
682 Expression *modifiableLvalue(Scope *sc, Expression *e); | 685 Expression *modifiableLvalue(Scope *sc, Expression *e); |
683 #if IN_DMD | 686 #if IN_DMD |
684 elem *toElem(IRState *irs); | 687 elem *toElem(IRState *irs); |
685 dt_t **toDt(dt_t **pdt); | 688 dt_t **toDt(dt_t **pdt); |
1049 { | 1052 { |
1050 Module* m; // starting point for overload resolution | 1053 Module* m; // starting point for overload resolution |
1051 | 1054 |
1052 AddrExp(Loc loc, Expression *e); | 1055 AddrExp(Loc loc, Expression *e); |
1053 Expression *semantic(Scope *sc); | 1056 Expression *semantic(Scope *sc); |
1057 void checkEscape(); | |
1054 #if IN_DMD | 1058 #if IN_DMD |
1055 elem *toElem(IRState *irs); | 1059 elem *toElem(IRState *irs); |
1056 #endif | 1060 #endif |
1057 MATCH implicitConvTo(Type *t); | 1061 MATCH implicitConvTo(Type *t); |
1058 Expression *castTo(Scope *sc, Type *t); | 1062 Expression *castTo(Scope *sc, Type *t); |
1067 struct PtrExp : UnaExp | 1071 struct PtrExp : UnaExp |
1068 { | 1072 { |
1069 PtrExp(Loc loc, Expression *e); | 1073 PtrExp(Loc loc, Expression *e); |
1070 PtrExp(Loc loc, Expression *e, Type *t); | 1074 PtrExp(Loc loc, Expression *e, Type *t); |
1071 Expression *semantic(Scope *sc); | 1075 Expression *semantic(Scope *sc); |
1076 void checkEscapeRef(); | |
1072 Expression *toLvalue(Scope *sc, Expression *e); | 1077 Expression *toLvalue(Scope *sc, Expression *e); |
1073 void toCBuffer(OutBuffer *buf, HdrGenState *hgs); | 1078 void toCBuffer(OutBuffer *buf, HdrGenState *hgs); |
1074 #if IN_DMD | 1079 #if IN_DMD |
1075 elem *toElem(IRState *irs); | 1080 elem *toElem(IRState *irs); |
1076 #endif | 1081 #endif |
1219 | 1224 |
1220 SliceExp(Loc loc, Expression *e1, Expression *lwr, Expression *upr); | 1225 SliceExp(Loc loc, Expression *e1, Expression *lwr, Expression *upr); |
1221 Expression *syntaxCopy(); | 1226 Expression *syntaxCopy(); |
1222 Expression *semantic(Scope *sc); | 1227 Expression *semantic(Scope *sc); |
1223 void checkEscape(); | 1228 void checkEscape(); |
1229 void checkEscapeRef(); | |
1224 Expression *toLvalue(Scope *sc, Expression *e); | 1230 Expression *toLvalue(Scope *sc, Expression *e); |
1225 Expression *modifiableLvalue(Scope *sc, Expression *e); | 1231 Expression *modifiableLvalue(Scope *sc, Expression *e); |
1226 void toCBuffer(OutBuffer *buf, HdrGenState *hgs); | 1232 void toCBuffer(OutBuffer *buf, HdrGenState *hgs); |
1227 Expression *optimize(int result); | 1233 Expression *optimize(int result); |
1228 Expression *interpret(InterState *istate); | 1234 Expression *interpret(InterState *istate); |
1292 struct CommaExp : BinExp | 1298 struct CommaExp : BinExp |
1293 { | 1299 { |
1294 CommaExp(Loc loc, Expression *e1, Expression *e2); | 1300 CommaExp(Loc loc, Expression *e1, Expression *e2); |
1295 Expression *semantic(Scope *sc); | 1301 Expression *semantic(Scope *sc); |
1296 void checkEscape(); | 1302 void checkEscape(); |
1303 void checkEscapeRef(); | |
1297 Expression *toLvalue(Scope *sc, Expression *e); | 1304 Expression *toLvalue(Scope *sc, Expression *e); |
1298 Expression *modifiableLvalue(Scope *sc, Expression *e); | 1305 Expression *modifiableLvalue(Scope *sc, Expression *e); |
1299 int isBool(int result); | 1306 int isBool(int result); |
1300 int checkSideEffect(int flag); | 1307 int checkSideEffect(int flag); |
1301 Expression *optimize(int result); | 1308 Expression *optimize(int result); |
1826 Expression *syntaxCopy(); | 1833 Expression *syntaxCopy(); |
1827 Expression *semantic(Scope *sc); | 1834 Expression *semantic(Scope *sc); |
1828 Expression *optimize(int result); | 1835 Expression *optimize(int result); |
1829 Expression *interpret(InterState *istate); | 1836 Expression *interpret(InterState *istate); |
1830 void checkEscape(); | 1837 void checkEscape(); |
1838 void checkEscapeRef(); | |
1831 Expression *toLvalue(Scope *sc, Expression *e); | 1839 Expression *toLvalue(Scope *sc, Expression *e); |
1832 Expression *modifiableLvalue(Scope *sc, Expression *e); | 1840 Expression *modifiableLvalue(Scope *sc, Expression *e); |
1833 Expression *checkToBoolean(); | 1841 Expression *checkToBoolean(); |
1834 int checkSideEffect(int flag); | 1842 int checkSideEffect(int flag); |
1835 void toCBuffer(OutBuffer *buf, HdrGenState *hgs); | 1843 void toCBuffer(OutBuffer *buf, HdrGenState *hgs); |