Arguments args = new Arguments (3);
args.Add (new Argument (new TypeOf (new TypeExpression (type, loc), loc)));
- args.Add (new Argument (new NullLiteral (loc)));
+
+ if (method_group.InstanceExpression == null)
+ args.Add (new Argument (new NullLiteral (loc)));
+ else
+ args.Add (new Argument (method_group.InstanceExpression.CreateExpressionTree (ec)));
+
args.Add (new Argument (method_group.CreateExpressionTree (ec)));
Expression e = new Invocation (ma, args).Resolve (ec);
if (e == null)
return (int*)1;
}
+ void M ()
+ {
+ }
+
+ int TestInstance ()
+ {
+ Expression<Func<EmptyDelegate>> e = () => M;
+ Console.WriteLine (e.Body.ToString ());
+ if (e.Body.ToString () != "Convert(CreateDelegate(EmptyDelegate, value(C), Void M()))")
+ return 1;
+
+ e.Compile () ();
+ return 0;
+ }
+
public static int Main ()
{
Expression<Func<EmptyDelegate>> e = () => new EmptyDelegate (Test);
if (v3.Invoke ()() != (int*)1)
return 6;
}
+
+ if (new C ().TestInstance () != 0)
+ return 7;
Console.WriteLine ("OK");
return 0;