public override void Emit(EmitContext ec) { // // Invocation on delegates call the virtual Invoke member // so we are always `instance' calls // var call = new CallEmitter(); call.InstanceExpression = InstanceExpr; call.Emit(ec, method, arguments, loc); }
public override void Emit(EmitContext ec) { if (conditionalAccessReceiver) { ec.ConditionalAccess = new ConditionalAccessContext(type, ec.DefineLabel()); } // // Invocation on delegates call the virtual Invoke member // so we are always `instance' calls // var call = new CallEmitter(); call.InstanceExpression = InstanceExpr; call.Emit(ec, method, arguments, loc); if (conditionalAccessReceiver) { ec.CloseConditionalAccess(type.IsNullableType && type != method.ReturnType ? type : null); } }
public override void Emit (EmitContext ec) { if (conditionalAccessReceiver) { ec.ConditionalAccess = new ConditionalAccessContext (type, ec.DefineLabel ()); } // // Invocation on delegates call the virtual Invoke member // so we are always `instance' calls // var call = new CallEmitter (); call.InstanceExpression = InstanceExpr; call.Emit (ec, method, arguments, loc); if (conditionalAccessReceiver) ec.CloseConditionalAccess (type.IsNullableType && type != method.ReturnType ? type : null); }
public override void Emit (EmitContext ec) { // // Invocation on delegates call the virtual Invoke member // so we are always `instance' calls // var call = new CallEmitter (); call.InstanceExpression = InstanceExpr; call.Emit (ec, method, arguments, loc); }