View source code
Display the source code in dmd/expression.d from which this
page was generated on github.
Report a bug
If you spot a problem with this page, click here to create a
Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page.
Requires a signed-in GitHub account. This works well for small changes.
If you'd like to make larger changes you may want to consider using
local clone.
Module dmd.expression
Defines the bulk of the classes which represent the AST at the expression level.
Specification
($LINK2 https://dlang.org/spec/expression.html, Expressions)
Documentation
https://dlang.org/phobos/dmd_expression.html
Coverage
https://codecov.io/gh/dlang/dmd/src/master/src/dmd/expression.d
Functions
Name | Description |
---|---|
checkModifiable(exp, sc, flag)
|
|
doCopyOrMove(sc, e, t)
|
Handle the postblit call on lvalue, or the move of rvalue. |
expandTuples(exps)
|
Expand tuples. |
expToVariable(e)
|
Given an Expression, find the variable it really is. |
firstComma(e)
|
Find the first non-comma expression. |
getFuncTemplateDecl(s)
|
If s is a function template, i.e. the only member of a template
and that member is a function, return that template.
|
hasThis(sc)
|
Determine if this is available by walking up the enclosing
scopes until a function is found.
|
isAliasThisTuple(e)
|
Expand alias this tuples. |
isDefaultInitOp(op)
|
|
isDotOpDispatch(e)
|
check e is exp.opDispatch!(tiargs) or not It's used to switch to UFCS the semantic analysis path |
isNeedThisScope(sc, d)
|
Determine if a this is needed to access d .
|
lastComma(e)
|
Find the last non-comma expression. |
RealIdentical(x1, x2)
|
Test to see if two reals are the same. Regard NaN's as equivalent. Regard +0 and -0 as different. |
typeDotIdExp(loc, type, ident)
|
TypeDotIdExp |
valueNoDtor(e)
|
If we want the value of this expression, but do not want to call the destructor on it. |
Classes
Name | Description |
---|---|
AddAssignExp
|
|
AddExp
|
|
AddrExp
|
|
AndAssignExp
|
|
AndExp
|
|
ArrayExp
|
e1 [ a0, a1, a2, a3 ,... ] |
ArrayLengthExp
|
|
ArrayLiteralExp
|
[ e1, e2, e3, ... ] |
AssertExp
|
|
AssignExp
|
|
AssocArrayLiteralExp
|
[ key0 : value0, key1 : value1, ... ] |
BinAssignExp
|
|
BinExp
|
|
BlitExp
|
|
CallExp
|
|
CastExp
|
Possible to cast to one type while painting to another type |
CatAssignExp
|
The ~= operator. It can have one of the following operators: |
CatDcharAssignExp
|
|
CatElemAssignExp
|
|
CatExp
|
|
CmpExp
|
op is one of:
EXP.lessThan, EXP.lessOrEqual, EXP.greaterThan, EXP.greaterOrEqual
|
ComExp
|
|
CommaExp
|
|
ComplexExp
|
|
CompoundLiteralExp
|
C11 6.5.2.5 ( type-name ) { initializer-list } |
CondExp
|
econd ? e1 : e2
|
ConstructExp
|
|
DeclarationExp
|
Declaration of a symbol |
DefaultInitExp
|
|
DelegateExp
|
|
DelegateFuncptrExp
|
|
DeleteExp
|
|
DivAssignExp
|
|
DivExp
|
|
DollarExp
|
|
DotExp
|
|
DotIdExp
|
|
DotTemplateExp
|
Mainly just a placeholder |
DotTemplateInstanceExp
|
foo.bar!(args) |
DotTypeExp
|
|
DotVarExp
|
|
DsymbolExp
|
Won't be generated by parser. |
EqualExp
|
== and !=
|
ErrorExp
|
Use this expression for error recovery. It should behave as a 'sink' to prevent further cascaded error messages. |
Expression
|
|
FileInitExp
|
|
FuncExp
|
Function/Delegate literal |
FuncInitExp
|
|
GenericExp
|
C11 6.5.1.1 Generic Selection For ImportC |
HaltExp
|
|
IdentifierExp
|
|
IdentityExp
|
is and !is
|
ImportExp
|
|
IndexExp
|
e1 [ e2 ] |
InExp
|
|
IntegerExp
|
|
IntervalExp
|
Mainly just a placeholder |
IsExp
|
is(targ id tok tspec) is(targ id == tok2) |
LineInitExp
|
|
LogicalExp
|
|
MinAssignExp
|
|
MinExp
|
|
MixinExp
|
|
ModAssignExp
|
|
ModExp
|
|
ModuleInitExp
|
|
MulAssignExp
|
|
MulExp
|
|
NegExp
|
|
NewAnonClassExp
|
thisexp.new(newargs) class baseclasses { } (arguments) |
NewExp
|
thisexp.new(newargs) newtype(arguments) |
NotExp
|
|
NullExp
|
|
ObjcClassReferenceExp
|
Objective-C class reference expression. |
OrAssignExp
|
|
OrExp
|
|
OverExp
|
Overload Set |
PostExp
|
For both i++ and i-- |
PowAssignExp
|
|
PowExp
|
|
PreExp
|
For both ++i and --i |
PrettyFuncInitExp
|
|
PtrExp
|
|
RealExp
|
|
RemoveExp
|
This deletes the key e1 from the associative array e2 |
ScopeExp
|
Mainly just a placeholder of Package, Module, Nspace, and TemplateInstance (including TemplateMixin) |
ShlAssignExp
|
|
ShlExp
|
|
ShrAssignExp
|
|
ShrExp
|
|
SliceExp
|
e1 [lwr .. upr] |
StringExp
|
|
StructLiteralExp
|
sd( e1, e2, e3, ... ) |
SuperExp
|
|
SymbolExp
|
|
SymOffExp
|
Offset from symbol |
TemplateExp
|
Mainly just a placeholder |
ThisExp
|
|
ThrowExp
|
throw <e1> as proposed by DIP 1034.
|
TraitsExp
|
_traits(identifier, args...) |
TupleExp
|
|
TypeExp
|
Mainly just a placeholder |
TypeidExp
|
typeid(int) |
UAddExp
|
|
UnaExp
|
|
UshrAssignExp
|
|
UshrExp
|
|
VarExp
|
Variable |
VectorArrayExp
|
e1.array property for vectors. |
VectorExp
|
|
VoidInitExp
|
An uninitialized value, generated from void initializers. |
XorAssignExp
|
|
XorExp
|
Structs
Name | Description |
---|---|
UnionExp
|
Enums
Name | Description |
---|---|
ModifyFlags
|
Specifies how the checkModify deals with certain situations |
Manifest constants
Name | Type | Description |
---|---|---|
stageApply
|
apply is running | |
stageInlineScan
|
inlineScan is running | |
stageOptimize
|
optimize is running | |
stageScrub
|
scrubReturnValue is running | |
stageSearchPointers
|
hasNonConstPointers is running | |
stageToCBuffer
|
toCBuffer is running |
Authors
License
Copyright © 1999-2022 by the D Language Foundation | Page generated by ddox.