2005-03-17 Martin Baulig <martin@ximian.com>
[mono.git] / mcs / gmcs / anonymous.cs
index 27427df4645c76063b751132693208e646d8110c..46a6e7dcb4ca2e44ef3556675ffef68ea8453e0d 100644 (file)
@@ -293,10 +293,10 @@ namespace Mono.CSharp {
                        return method.MethodData.MethodBuilder;
                }
                
-               public void EmitMethod (EmitContext ec)
+               public bool EmitMethod (EmitContext ec)
                {
                        if (!CreateMethodHost (ec, invoke_mb.ReturnType))
-                               return;
+                               return false;
 
                        MethodBuilder builder = GetMethodBuilder ();
                        ILGenerator ig = builder.GetILGenerator ();
@@ -313,6 +313,7 @@ namespace Mono.CSharp {
                        
                        aec.EmitMeta (Block, amp);
                        aec.EmitResolvedTopBlock (Block, unreachable);
+                       return true;
                }
 
                public static void Error_AddressOfCapturedVar (string name, Location loc)
@@ -338,12 +339,14 @@ namespace Mono.CSharp {
                public override Expression DoResolve (EmitContext ec)
                {
                        eclass = ExprClass.Value;
+
                        return this;
                }
                
                public override void Emit (EmitContext ec)
                {
-                       am.EmitMethod (ec);
+                       if (!am.EmitMethod (ec))
+                               return;
 
                        //
                        // Now emit the delegate creation.