void SetLocal(BinaryExpression node, InternalLocal tag, bool leaveValueOnStack)
{
if (AstUtil.IsIndirection(node.Left))
_il.Emit(OpCodes.Ldloc, tag.LocalBuilder);
node.Right.Accept(this); // leaves type on stack
IType typeOnStack = null;
if (leaveValueOnStack)
{
typeOnStack = PeekTypeOnStack();
Dup();
}
else
{
typeOnStack = PopType();
}
if (!AstUtil.IsIndirection(node.Left))
EmitAssignment(tag, typeOnStack);
else
EmitIndirectAssignment(tag, typeOnStack);
}