public override MSAst.Expression Reduce() {
MSAst.Expression left = _left;
MSAst.Expression right = _right;
Type t = Type;
MSAst.ParameterExpression tmp = Ast.Variable(t, "__all__");
return Ast.Block(
new[] { tmp },
Ast.Condition(
GlobalParent.Convert(
typeof(bool),
ConversionResultKind.ExplicitCast,
Ast.Assign(
tmp,
AstUtils.Convert(
left,
t
)
)
),
tmp,
AstUtils.Convert(
right,
t
)
)
);
}