private void EmitRefValueAddress(BoundRefValueOperator refValue) { // push typed reference // refanyval type -- pops typed reference, pushes address of variable EmitExpression(refValue.Operand, true); _builder.EmitOpCode(ILOpCode.Refanyval); EmitSymbolToken(refValue.Type, refValue.Syntax); }
private void EmitRefValueOperator(BoundRefValueOperator expression, bool used) { EmitRefValueAddress(expression); EmitLoadIndirect(expression.Type, expression.Syntax); EmitPopIfUnused(used); }
internal void Parse(BoundRefValueOperator boundRefValueOperator) { base.Parse(boundRefValueOperator); this.Operand = Deserialize(boundRefValueOperator.Operand) as Expression; }
private void EmitRefValueAddress(BoundRefValueOperator refValue) { // push typed reference // refanyval type -- pops typed reference, pushes address of variable EmitExpression(refValue.Operand, true); builder.EmitOpCode(ILOpCode.Refanyval); EmitSymbolToken(refValue.Type, refValue.Syntax); }
public override BoundNode VisitRefValueOperator(BoundRefValueOperator node) { if (_inExpressionLambda) { Error(ErrorCode.ERR_FeatureNotValidInExpressionTree, node, "__refvalue"); } return base.VisitRefValueOperator(node); }
public override object VisitRefValueOperator(BoundRefValueOperator node, object arg) { return Unimplemented(node, "ref value"); }
internal void Parse(BoundRefValueOperator boundRefValueOperator) { base.Parse(boundRefValueOperator); }
public override object VisitRefValueOperator(BoundRefValueOperator node, object arg) { return(Unimplemented(node, "ref value")); }