Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
		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);
		}
Ejemplo n.º 4
0
		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);
		}