Mercurial > projects > ddmd
diff dmd/TupleExp.d @ 56:51605de93870
TupleExp.optimize
UnrolledLoopStatement.ctor
UnrolledLoopStatement.semantic
UnrolledLoopStatement.blockExit
OrOrExp.checkSideEffect
FuncExp.syntaxCopy
FuncLiteralDeclaration.syntaxCopy
WhileStatement.hasBreak
StructInitializer.toExpression
StructLiteralExp.ctor
StructLiteralExp.optimize
BinExp.commonSemanticAssign
ModAssignExp.opId
Argument.isLazyArray
CommaExp.implicitConvTo
CommaExp.castTo
TypeClass.isBaseOf
createTypeInfoArray
TypeTuple.getTypeInfoDeclaration
TypeInfoTupleDeclaration.ctor
TypeNext.constConv
XorExp.implicitConvTo
TemplateParameter.isTemplateValueParameter
author | korDen |
---|---|
date | Sat, 21 Aug 2010 14:16:53 +0400 |
parents | ccbc1e0bb3f0 |
children | cab4c37afb89 |
line wrap: on
line diff
--- a/dmd/TupleExp.d Sat Aug 21 13:28:16 2010 +0400 +++ b/dmd/TupleExp.d Sat Aug 21 14:16:53 2010 +0400 @@ -4,6 +4,7 @@ import dmd.TupleDeclaration; import dmd.backend.elem; import dmd.InterState; +import dmd.WANT; import dmd.Type; import dmd.OutBuffer; import dmd.Loc; @@ -207,7 +208,14 @@ Expression optimize(int result) { - assert(false); + for (size_t i = 0; i < exps.dim; i++) + { + Expression e = cast(Expression)exps.data[i]; + + e = e.optimize(WANTvalue | (result & WANTinterpret)); + exps.data[i] = cast(void*)e; + } + return this; } Expression interpret(InterState* istate)