CTFEExp

This type is only used by the interpreter.

Constructors

this
this(TOK tok)
Undocumented in source.

Members

Functions

toChars
const(char)* toChars()
Undocumented in source. Be warned that the author may not have intended to support it.

Static functions

isCantExp
bool isCantExp(Expression e)
Undocumented in source. Be warned that the author may not have intended to support it.
isGotoExp
bool isGotoExp(Expression e)
Undocumented in source. Be warned that the author may not have intended to support it.

Static variables

breakexp
CTFEExp breakexp;
Undocumented in source.
cantexp
CTFEExp cantexp;
Undocumented in source.
continueexp
CTFEExp continueexp;
Undocumented in source.
gotoexp
CTFEExp gotoexp;
Undocumented in source.
showcontext
CTFEExp showcontext;
Undocumented in source.
voidexp
CTFEExp voidexp;
Undocumented in source.

Inherited Members

From Expression

op
TOK op;
Undocumented in source.
size
ubyte size;
Undocumented in source.
parens
ubyte parens;
Undocumented in source.
type
Type type;
Undocumented in source.
loc
Loc loc;
Undocumented in source.
_init
void _init()
Undocumented in source. Be warned that the author may not have intended to support it.
deinitialize
void deinitialize()

Deinitializes the global state of the compiler.

copy
Expression copy()

Does *not* do a deep copy.

syntaxCopy
Expression syntaxCopy()
Undocumented in source. Be warned that the author may not have intended to support it.
dyncast
DYNCAST dyncast()
Undocumented in source. Be warned that the author may not have intended to support it.
toChars
const(char)* toChars()
Undocumented in source. Be warned that the author may not have intended to support it.
error
void error(const(char)* format, ...)
Undocumented in source. Be warned that the author may not have intended to support it.
errorSupplemental
void errorSupplemental(const(char)* format, ...)
Undocumented in source. Be warned that the author may not have intended to support it.
warning
void warning(const(char)* format, ...)
Undocumented in source. Be warned that the author may not have intended to support it.
deprecation
void deprecation(const(char)* format, ...)
Undocumented in source. Be warned that the author may not have intended to support it.
combine
Expression combine(Expression e1, Expression e2)

Combine e1 and e2 by CommaExp if both are not NULL.

combine
Expression combine(Expression e1, Expression e2, Expression e3)
Undocumented in source. Be warned that the author may not have intended to support it.
combine
Expression combine(Expression e1, Expression e2, Expression e3, Expression e4)
Undocumented in source. Be warned that the author may not have intended to support it.
extractLast
Expression extractLast(Expression e, Expression e0)

If 'e' is a tree of commas, returns the rightmost expression by stripping off it from the tree. The remained part of the tree is returned via e0. Otherwise 'e' is directly returned and e0 is set to NULL.

arraySyntaxCopy
Expressions* arraySyntaxCopy(Expressions* exps)
Undocumented in source. Be warned that the author may not have intended to support it.
toInteger
dinteger_t toInteger()
Undocumented in source. Be warned that the author may not have intended to support it.
toUInteger
uinteger_t toUInteger()
Undocumented in source. Be warned that the author may not have intended to support it.
toReal
real_t toReal()
Undocumented in source. Be warned that the author may not have intended to support it.
toImaginary
real_t toImaginary()
Undocumented in source. Be warned that the author may not have intended to support it.
toComplex
complex_t toComplex()
Undocumented in source. Be warned that the author may not have intended to support it.
toStringExp
StringExp toStringExp()
Undocumented in source. Be warned that the author may not have intended to support it.
toTupleExp
TupleExp toTupleExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isLvalue
bool isLvalue()

Return !=0 if expression is an lvalue.

toLvalue
Expression toLvalue(Scope* sc, Expression e)

Give error if we're not an lvalue. If we can, convert expression to be an lvalue.

modifiableLvalue
Expression modifiableLvalue(Scope* sc, Expression e)
Undocumented in source. Be warned that the author may not have intended to support it.
implicitCastTo
Expression implicitCastTo(Scope* sc, Type t)
Undocumented in source. Be warned that the author may not have intended to support it.
implicitConvTo
MATCH implicitConvTo(Type t)
Undocumented in source. Be warned that the author may not have intended to support it.
castTo
Expression castTo(Scope* sc, Type t)
Undocumented in source. Be warned that the author may not have intended to support it.
resolveLoc
Expression resolveLoc(Loc loc, Scope* sc)

Resolve __FILE__, __LINE__, __MODULE__, __FUNCTION__, __PRETTY_FUNCTION__, __FILE_FULL_PATH__ to loc.

checkType
bool checkType()

Check that the expression has a valid type. If not, generates an error "... has no type".

checkValue
bool checkValue()

Check that the expression has a valid value. If not, generates an error "... has no value".

checkScalar
bool checkScalar()
Undocumented in source. Be warned that the author may not have intended to support it.
checkNoBool
bool checkNoBool()
Undocumented in source. Be warned that the author may not have intended to support it.
checkIntegral
bool checkIntegral()
Undocumented in source. Be warned that the author may not have intended to support it.
checkArithmetic
bool checkArithmetic()
Undocumented in source. Be warned that the author may not have intended to support it.
checkDeprecated
bool checkDeprecated(Scope* sc, Dsymbol s)
Undocumented in source. Be warned that the author may not have intended to support it.
checkDisabled
bool checkDisabled(Scope* sc, Dsymbol s)
Undocumented in source. Be warned that the author may not have intended to support it.
checkPurity
bool checkPurity(Scope* sc, FuncDeclaration f)

Calling function f. Check the purity, i.e. if we're in a pure function we can only call other pure functions. Returns true if error occurs.

checkPurity
bool checkPurity(Scope* sc, VarDeclaration v)

Accessing variable v. Check for purity and safety violations. Returns true if error occurs.

checkSafety
bool checkSafety(Scope* sc, FuncDeclaration f)

Calling function f. Check the safety, i.e. if we're in a @safe function we can only call @safe or @trusted functions. Returns true if error occurs.

checkNogc
bool checkNogc(Scope* sc, FuncDeclaration f)

Calling function f. Check the @nogc-ness, i.e. if we're in a @nogc function we can only call other @nogc functions. Returns true if error occurs.

checkPostblit
bool checkPostblit(Scope* sc, Type t)

Check that the postblit is callable if t is an array of structs. Returns true if error happens.

checkRightThis
bool checkRightThis(Scope* sc)
Undocumented in source. Be warned that the author may not have intended to support it.
checkReadModifyWrite
bool checkReadModifyWrite(TOK rmwOp, Expression ex)

Check whether the expression allows RMW operations, error with rmw operator diagnostic if not. ex is the RHS expression, or NULL if ++/-- is used (for diagnostics) Returns true if error occurs.

checkModifiable
Modifiable checkModifiable(Scope* sc, int flag)
toBoolean
Expression toBoolean(Scope* sc)

If expression can be tested for true or false, returns the modified expression. Otherwise returns ErrorExp.

addDtorHook
Expression addDtorHook(Scope* sc)

Destructors are attached to VarDeclarations. Hence, if expression returns a temp that needs a destructor, make sure and create a VarDeclaration for that temp.

addressOf
Expression addressOf()

Take address of expression.

deref
Expression deref()

If this is a reference, dereference it.

optimize
Expression optimize(int result, bool keepLvalue)
Undocumented in source. Be warned that the author may not have intended to support it.
ctfeInterpret
Expression ctfeInterpret()
Undocumented in source. Be warned that the author may not have intended to support it.
isConst
int isConst()
Undocumented in source. Be warned that the author may not have intended to support it.
isBool
bool isBool(bool result)

Does this expression statically evaluate to a boolean 'result' (true or false)?

hasCode
bool hasCode()
Undocumented in source. Be warned that the author may not have intended to support it.
isIntegerExp
inout(IntegerExp) isIntegerExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isErrorExp
inout(ErrorExp) isErrorExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isVoidInitExp
inout(VoidInitExp) isVoidInitExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isRealExp
inout(RealExp) isRealExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isComplexExp
inout(ComplexExp) isComplexExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isIdentifierExp
inout(IdentifierExp) isIdentifierExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isDollarExp
inout(DollarExp) isDollarExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isDsymbolExp
inout(DsymbolExp) isDsymbolExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isThisExp
inout(ThisExp) isThisExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isSuperExp
inout(SuperExp) isSuperExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isNullExp
inout(NullExp) isNullExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isStringExp
inout(StringExp) isStringExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isTupleExp
inout(TupleExp) isTupleExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isArrayLiteralExp
inout(ArrayLiteralExp) isArrayLiteralExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isAssocArrayLiteralExp
inout(AssocArrayLiteralExp) isAssocArrayLiteralExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isStructLiteralExp
inout(StructLiteralExp) isStructLiteralExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isTypeExp
inout(TypeExp) isTypeExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isScopeExp
inout(ScopeExp) isScopeExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isTemplateExp
inout(TemplateExp) isTemplateExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isNewExp
inout(NewExp) isNewExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isNewAnonClassExp
inout(NewAnonClassExp) isNewAnonClassExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isSymOffExp
inout(SymOffExp) isSymOffExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isVarExp
inout(VarExp) isVarExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isOverExp
inout(OverExp) isOverExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isFuncExp
inout(FuncExp) isFuncExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isDeclarationExp
inout(DeclarationExp) isDeclarationExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isTypeidExp
inout(TypeidExp) isTypeidExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isTraitsExp
inout(TraitsExp) isTraitsExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isHaltExp
inout(HaltExp) isHaltExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isExp
inout(IsExp) isExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isCompileExp
inout(CompileExp) isCompileExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isImportExp
inout(ImportExp) isImportExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isAssertExp
inout(AssertExp) isAssertExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isDotIdExp
inout(DotIdExp) isDotIdExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isDotTemplateExp
inout(DotTemplateExp) isDotTemplateExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isDotVarExp
inout(DotVarExp) isDotVarExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isDotTemplateInstanceExp
inout(DotTemplateInstanceExp) isDotTemplateInstanceExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isDelegateExp
inout(DelegateExp) isDelegateExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isDotTypeExp
inout(DotTypeExp) isDotTypeExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isCallExp
inout(CallExp) isCallExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isAddrExp
inout(AddrExp) isAddrExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isPtrExp
inout(PtrExp) isPtrExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isNegExp
inout(NegExp) isNegExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isUAddExp
inout(UAddExp) isUAddExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isComExp
inout(ComExp) isComExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isNotExp
inout(NotExp) isNotExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isDeleteExp
inout(DeleteExp) isDeleteExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isCastExp
inout(CastExp) isCastExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isVectorExp
inout(VectorExp) isVectorExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isVectorArrayExp
inout(VectorArrayExp) isVectorArrayExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isSliceExp
inout(SliceExp) isSliceExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isArrayLengthExp
inout(ArrayLengthExp) isArrayLengthExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isArrayExp
inout(ArrayExp) isArrayExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isDotExp
inout(DotExp) isDotExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isCommaExp
inout(CommaExp) isCommaExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isIntervalExp
inout(IntervalExp) isIntervalExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isDelegatePtrExp
inout(DelegatePtrExp) isDelegatePtrExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isDelegateFuncptrExp
inout(DelegateFuncptrExp) isDelegateFuncptrExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isIndexExp
inout(IndexExp) isIndexExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isPostExp
inout(PostExp) isPostExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isPreExp
inout(PreExp) isPreExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isAssignExp
inout(AssignExp) isAssignExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isConstructExp
inout(ConstructExp) isConstructExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isBlitExp
inout(BlitExp) isBlitExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isAddAssignExp
inout(AddAssignExp) isAddAssignExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isMinAssignExp
inout(MinAssignExp) isMinAssignExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isMulAssignExp
inout(MulAssignExp) isMulAssignExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isDivAssignExp
inout(DivAssignExp) isDivAssignExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isModAssignExp
inout(ModAssignExp) isModAssignExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isAndAssignExp
inout(AndAssignExp) isAndAssignExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isOrAssignExp
inout(OrAssignExp) isOrAssignExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isXorAssignExp
inout(XorAssignExp) isXorAssignExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isPowAssignExp
inout(PowAssignExp) isPowAssignExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isShlAssignExp
inout(ShlAssignExp) isShlAssignExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isShrAssignExp
inout(ShrAssignExp) isShrAssignExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isUshrAssignExp
inout(UshrAssignExp) isUshrAssignExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isCatAssignExp
inout(CatAssignExp) isCatAssignExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isCatElemAssignExp
inout(CatElemAssignExp) isCatElemAssignExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isCatDcharAssignExp
inout(CatDcharAssignExp) isCatDcharAssignExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isAddExp
inout(AddExp) isAddExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isMinExp
inout(MinExp) isMinExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isCatExp
inout(CatExp) isCatExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isMulExp
inout(MulExp) isMulExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isDivExp
inout(DivExp) isDivExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isModExp
inout(ModExp) isModExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isPowExp
inout(PowExp) isPowExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isShlExp
inout(ShlExp) isShlExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isShrExp
inout(ShrExp) isShrExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isUshrExp
inout(UshrExp) isUshrExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isAndExp
inout(AndExp) isAndExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isOrExp
inout(OrExp) isOrExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isXorExp
inout(XorExp) isXorExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isLogicalExp
inout(LogicalExp) isLogicalExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isInExp
inout(InExp) isInExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isRemoveExp
inout(RemoveExp) isRemoveExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isEqualExp
inout(EqualExp) isEqualExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isIdentityExp
inout(IdentityExp) isIdentityExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isCondExp
inout(CondExp) isCondExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isDefaultInitExp
inout(DefaultInitExp) isDefaultInitExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isFileInitExp
inout(FileInitExp) isFileInitExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isLineInitExp
inout(LineInitExp) isLineInitExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isModuleInitExp
inout(ModuleInitExp) isModuleInitExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isFuncInitExp
inout(FuncInitExp) isFuncInitExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isPrettyFuncInitExp
inout(PrettyFuncInitExp) isPrettyFuncInitExp()
Undocumented in source. Be warned that the author may not have intended to support it.
isClassReferenceExp
inout(ClassReferenceExp) isClassReferenceExp()
Undocumented in source. Be warned that the author may not have intended to support it.
accept
void accept(Visitor v)
Undocumented in source. Be warned that the author may not have intended to support it.

Meta