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.EmitPredefined(ec, method, arguments);
        }
		public override void Emit (EmitContext ec)
		{
			// It can be null for static initializers
			if (base_ctor == null)
				return;
			
			var call = new CallEmitter ();
			call.InstanceExpression = new CompilerGeneratedThis (type, loc); 
			call.EmitPredefined (ec, base_ctor, argument_list);
		}
		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.EmitPredefined (ec, method, arguments);
		}