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
Compiler implementation of the D programming language.
Documentation
https://dlang.org/phobos/dmd_expression.html
Coverage
https://codecov.io/gh/dlang/dmd/src/master/src/dmd/expression.d
Functions
| Name | Description | 
|---|---|
| 
									doCopyOrMove(sc, e)
								 | 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 sis a function template, i.e. the only member of a template
 and that member is a function, return that template. | 
| 
									hasThis(sc)
								 | Determine if thisis available by walking up the enclosing
 scopes until a function is found. | 
| 
									isAliasThisTuple(e)
								 | Expand alias this tuples. | 
| 
									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 thisis needed to accessd. | 
| 
									lastComma(e)
								 | Find the last non-comma expression. | 
| 
									RealEquals(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: | 
| 
									CatExp
								 | |
| 
									CmpExp
								 | opis one of:
      TOK.lessThan, TOK.lessOrEqual, TOK.greaterThan, TOK.greaterOrEqual | 
| 
									ComExp
								 | |
| 
									CommaExp
								 | |
| 
									CompileExp
								 | |
| 
									ComplexExp
								 | |
| 
									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
								 | |
| 
									HaltExp
								 | |
| 
									IdentifierExp
								 | |
| 
									IdentityExp
								 | isand!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
								 | |
| 
									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
								 | |
| 
									TraitsExp
								 | _traits(identifier, args...) | 
| 
									TupleExp
								 | |
| 
									TypeExp
								 | Mainly just a placeholder | 
| 
									TypeidExp
								 | typeid(int) | 
| 
									UAddExp
								 | |
| 
									UnaExp
								 | |
| 
									UshrAssignExp
								 | |
| 
									UshrExp
								 | |
| 
									VarExp
								 | Variable | 
| 
									VectorExp
								 | |
| 
									VoidInitExp
								 | An uninitialized value, generated from void initializers. | 
| 
									XorAssignExp
								 | |
| 
									XorExp
								 | 
Structs
| Name | Description | 
|---|---|
| 
									UnionExp
								 | 
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.