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
			a local clone.
		
	dmd.optimize
Perform constant folding.
Authors: 
License: 
Source optimize.d
Documentation https://dlang.org/phobos/dmd_optimize.html
- ExpressionexpandVar(intresult, VarDeclarationv);
- If variable has a const initializer, return that initializer.Returns:initializer if there is one, null if not, ErrorExp if error
- package voidsetLengthVarIfKnown(VarDeclarationlengthVar, Expressionarr);
- It is possible for constant folding to change an array expression of unknown length, into one where the length is known. If the expression 'arr' is a literal, set lengthVar to be its length.Parameters:VarDeclaration lengthVarvariable declaration for the .length property Expression arrString, ArrayLiteral, or of TypeSArray 
- package voidsetLengthVarIfKnown(VarDeclarationlengthVar, Typetype);
- Same as above, but determines the length from 'type'.Parameters:VarDeclaration lengthVarvariable declaration for the .length property Type typeTypeSArray 
- Expressionoptimize(Expressione, intresult, boolkeepLvalue= false);
- Constant fold an Expression.Parameters:Expression eexpression to const fold; this may get modified in-place int resultWANTvalue, WANTexpand, or both bool keepLvalueeis an lvalue, and keep it as an lvalue since it is an argument to a ref or out parameter, or the operand of & operatorReturns:Constant folded version ofe
Copyright © 1999-2025 by the D Language Foundation | Page generated by
Ddoc on Mon Mar 31 10:28:00 2025