ICSharpCode.NRefactory.MonoCSharp.Argument.Emit C# (CSharp) Method

Emit() public method

public Emit ( ICSharpCode.NRefactory.MonoCSharp.EmitContext ec ) : void
ec ICSharpCode.NRefactory.MonoCSharp.EmitContext
return void
		public virtual void Emit (EmitContext ec)
		{
			if (!IsByRef) {
				if (ArgType == AType.ExtensionTypeConditionalAccess) {
					var ie = new InstanceEmitter (Expr, false);
					ie.Emit (ec, true);
				} else {
					Expr.Emit (ec);
				}

				return;
			}

			AddressOp mode = AddressOp.Store;
			if (ArgType == AType.Ref)
				mode |= AddressOp.Load;

			IMemoryLocation ml = (IMemoryLocation) Expr;
			ml.AddressOf (ec, mode);
		}