Lines Matching refs:Expression

33 class Expression;  variable
49 bool isTrivialExp(Expression *e);
50 bool hasSideEffect(Expression *e, bool assumeImpureCalls = false);
53 BE canThrow(Expression *e, FuncDeclaration *func, bool mustNotThrow);
79 class Expression : public ASTNode
89 Expression *copy();
90 virtual Expression *syntaxCopy();
107 virtual Expression *toLvalue(Scope *sc, Expression *e);
108 virtual Expression *modifiableLvalue(Scope *sc, Expression *e);
109 Expression *implicitCastTo(Scope *sc, Type *t);
111 Expression *castTo(Scope *sc, Type *t);
112 virtual Expression *resolveLoc(const Loc &loc, Scope *sc);
116 virtual Expression *addDtorHook(Scope *sc);
117 Expression *addressOf();
118 Expression *deref();
120 Expression *optimize(int result, bool keepLvalue = false);
124 Expression *ctfeInterpret();
244 class IntegerExp : public Expression
257 Expression *toLvalue(Scope *sc, Expression *e);
265 class ErrorExp : public Expression
268 Expression *toLvalue(Scope *sc, Expression *e);
274 class RealExp : public Expression
291 class ComplexExp : public Expression
308 class IdentifierExp : public Expression
315 Expression *toLvalue(Scope *sc, Expression *e);
325 class DsymbolExp : public Expression
333 Expression *toLvalue(Scope *sc, Expression *e);
337 class ThisExp : public Expression
345 Expression *toLvalue(Scope *sc, Expression *e);
356 class NullExp : public Expression
365 class StringExp : public Expression
385 Expression *toLvalue(Scope *sc, Expression *e);
386 Expression *modifiableLvalue(Scope *sc, Expression *e);
394 class TupleExp : public Expression
397 Expression *e0; // side-effect part
414 class ArrayLiteralExp : public Expression
417 Expression *basis;
425 Expression *getElement(d_size_t i); // use opIndex instead
426 Expression *opIndex(d_size_t i);
433 class AssocArrayLiteralExp : public Expression
447 class StructLiteralExp : public Expression
480 Expression *getField(Type *type, unsigned offset);
482 Expression *addDtorHook(Scope *sc);
483 Expression *toLvalue(Scope *sc, Expression *e);
488 class TypeExp : public Expression
497 class ScopeExp : public Expression
508 class TemplateExp : public Expression
515 Expression *toLvalue(Scope *sc, Expression *e);
521 class NewExp : public Expression
526 Expression *thisexp; // if !NULL, 'this' for class being allocated
530 Expression *argprefix; // expression to be evaluated just before arguments[]
536 … static NewExp *create(const Loc &loc, Expression *thisexp, Type *newtype, Expressions *arguments);
542 class NewAnonClassExp : public Expression
547 Expression *thisexp; // if !NULL, 'this' for class being allocated
555 class SymbolExp : public Expression
586 Expression *toLvalue(Scope *sc, Expression *e);
587 Expression *modifiableLvalue(Scope *sc, Expression *e);
594 class OverExp : public Expression
600 Expression *toLvalue(Scope *sc, Expression *e);
606 class FuncExp : public Expression
627 class DeclarationExp : public Expression
639 class TypeidExp : public Expression
648 class TraitsExp : public Expression
658 class HaltExp : public Expression
664 class IsExp : public Expression
683 class UnaExp : public Expression
686 Expression *e1;
690 Expression *incompatibleTypes();
691 Expression *resolveLoc(const Loc &loc, Scope *sc);
696 class BinExp : public Expression
699 Expression *e1;
700 Expression *e2;
706 Expression *incompatibleTypes();
708 Expression *reorderSettingAAElem(Scope *sc);
717 Expression *toLvalue(Scope *sc, Expression *ex);
718 Expression *modifiableLvalue(Scope *sc, Expression *e);
739 Expression *msg;
762 static DotIdExp *create(const Loc &loc, Expression *e, Identifier *ident);
783 Expression *toLvalue(Scope *sc, Expression *e);
784 Expression *modifiableLvalue(Scope *sc, Expression *e);
829 static CallExp *create(const Loc &loc, Expression *e, Expressions *exps);
830 static CallExp *create(const Loc &loc, Expression *e);
831 static CallExp *create(const Loc &loc, Expression *e, Expression *earg1);
832 static CallExp *create(const Loc &loc, FuncDeclaration *fd, Expression *earg1);
836 Expression *toLvalue(Scope *sc, Expression *e);
837 Expression *addDtorHook(Scope *sc);
852 Expression *toLvalue(Scope *sc, Expression *e);
853 Expression *modifiableLvalue(Scope *sc, Expression *e);
898 Expression *toLvalue(Scope *sc, Expression *e);
910 static VectorExp *create(const Loc &loc, Expression *e, Type *t);
911 static void emplace(UnionExp *pue, const Loc &loc, Expression *e, Type *t);
920 Expression *toLvalue(Scope *sc, Expression *e);
927 Expression *upr; // NULL if implicit 0
928 Expression *lwr; // NULL if implicit [length - 1]
936 Expression *toLvalue(Scope *sc, Expression *e);
937 Expression *modifiableLvalue(Scope *sc, Expression *e);
949 class IntervalExp : public Expression
952 Expression *lwr;
953 Expression *upr;
963 Expression *toLvalue(Scope *sc, Expression *e);
964 Expression *modifiableLvalue(Scope *sc, Expression *e);
972 Expression *toLvalue(Scope *sc, Expression *e);
973 Expression *modifiableLvalue(Scope *sc, Expression *e);
988 Expression *toLvalue(Scope *sc, Expression *e);
1007 Expression *toLvalue(Scope *sc, Expression *e);
1008 Expression *modifiableLvalue(Scope *sc, Expression *e);
1010 Expression *addDtorHook(Scope *sc);
1023 Expression *toLvalue(Scope *sc, Expression *e);
1024 Expression *modifiableLvalue(Scope *sc, Expression *e);
1058 Expression *toLvalue(Scope *sc, Expression *ex);
1276 Expression *econd;
1280 Expression *toLvalue(Scope *sc, Expression *e);
1281 Expression *modifiableLvalue(Scope *sc, Expression *e);
1287 class GenericExp : Expression
1289 Expression *cntlExp;
1300 class DefaultInitExp : public Expression
1309 Expression *resolveLoc(const Loc &loc, Scope *sc);
1316 Expression *resolveLoc(const Loc &loc, Scope *sc);
1323 Expression *resolveLoc(const Loc &loc, Scope *sc);
1330 Expression *resolveLoc(const Loc &loc, Scope *sc);
1337 Expression *resolveLoc(const Loc &loc, Scope *sc);
1351 UnionExp(Expression *e) in UnionExp()
1358 Expression *exp() { return (Expression *)&u; } in exp()
1362 Expression *copy();
1375 char exp [sizeof(Expression)];
1399 class ObjcClassReferenceExp : public Expression