Compiler implementation of the D programming language.
Global status of the CTFE engine. Mostly used for performance diagnostics
A reference to a class, or an interface. We need this when we point to a base class (we must record what the type is).
Same as getFieldIndex, but checks for a direct match with the VarDeclaration
Fake class which holds the thrown exception. Used for implementing exception handling.
This type is only used by the interpreter.
Aggregate literals (AA/string/array/struct)
If e is a SliceExp, constant fold it.
Expression e
| expression to resolve |
UnionExp* pue
| if not null, store resulting expression here |
Helper for NewExp Create an array literal consisting of 'elem' duplicated 'dim' times.
UnionExp* pue
| where to store result |
Loc loc
| source location where the interpretation occurs |
Type type
| target type of the result |
Expression elem
| the source of array element, it will be owned by the result |
size_t dim
| element number of the result |
Helper for NewExp Create a string literal consisting of 'value' duplicated 'dim' times.
TypeInfo operations
Pointer operations
Return true if agg1 and agg2 are pointers to the same memory block
Constant folding, with support for CTFE Return true if non-pointer expression e can be compared with >,is, ==, etc, using ctfeCmp, ctfeEqual, ctfeIdentity
Returns cmp OP 0; where OP is ==, !=, <, >=, etc. Result is 0 or 1
Returns e1 OP e2; where OP is ==, !=, <, >=, etc. Result is 0 or 1
Returns e1 OP e2; where OP is ==, !=, <, >=, etc. Result is 0 or 1
Returns e1 OP e2; where OP is ==, !=, <, >=, etc. Result is 0 or 1
Evaluate ==, !=. Resolves slices before comparing. Returns 0 or 1
Evaluate is, !is. Resolves slices before comparing. Returns 0 or 1
Evaluate >,<=, etc. Resolves slices before comparing. Returns 0 or 1
Assignment helper functions
Given array literal oldval of type ArrayLiteralExp or StringExp, of length oldlen, change its length to newlen. If the newlen is longer than oldlen, all new elements will be set to the default initializer for the element type.
CTFE Sanity Checks
Void initialization
© 1999–2019 The D Language Foundation
Licensed under the Boost License 1.0.
https://dlang.org/phobos/dmd_ctfeexpr.html