[svn] r5916: nemerle/trunk/ncc/generation/Typer3.n

malekith svnadmin at nemerle.org
Mon Nov 7 19:10:40 CET 2005


Log:
Emit proxy when a delegate needs untupling.

Author: malekith
Date: Mon Nov  7 19:10:37 2005
New Revision: 5916

Modified:
   nemerle/trunk/ncc/generation/Typer3.n

Modified: nemerle/trunk/ncc/generation/Typer3.n
==============================================================================
--- nemerle/trunk/ncc/generation/Typer3.n	(original)
+++ nemerle/trunk/ncc/generation/Typer3.n	Mon Nov  7 19:10:37 2005
@@ -1130,7 +1130,9 @@
             
             def closures = ParentsWithClosures (func);
             match (closures) {
-              | [] =>
+              | [] when func.parms.Length == 
+                        Option.UnSome (parm.MType.FunReturnTypeAndParms ()) [0].Length =>
+                // Message.Debug ($"empty, parms count = $(func.parms.Length)");
                 def q = Queue ();
                 func.used_closures = closures;
                 EmitStaticLocalFunction (func, closures, q);
@@ -1142,7 +1144,7 @@
                  TExpr.MethodAddress (CurrentType.GetMemType (), func.static_method, false, typarms))
 
               | _cls =>
-                //Message.Debug (_cls.ToString ());
+                // Message.Debug (_cls.ToString ());
                 EmitDelegateProxy (Walk (parm))
             }
             



More information about the svn mailing list