[svn] r6502: nemerle/trunk: macros/Util.n ncc/testsuite/positive/list-compr.n

nazgul svnadmin at nemerle.org
Thu Aug 10 20:03:25 CEST 2006


Log:
Fix imperative continue in list comprehension foreach

Author: nazgul
Date: Thu Aug 10 20:03:16 2006
New Revision: 6502

Modified:
   nemerle/trunk/macros/Util.n
   nemerle/trunk/ncc/testsuite/positive/list-compr.n

Modified: nemerle/trunk/macros/Util.n
==============================================================================
--- nemerle/trunk/macros/Util.n	(original)
+++ nemerle/trunk/macros/Util.n	Thu Aug 10 20:03:16 2006
@@ -292,8 +292,8 @@
              def last = $last;
              while (if (delta < 0) i >= last else i <= last) {
                def $pat = i;
-               $acc;
                i += delta;
+               $acc;
              }
           ]>)
            
@@ -304,8 +304,8 @@
              def last = $last;
              while (i <= last) {
                def $pat = i;
-               $acc;
                i++;
+               $acc;
              }
           ]>)
 

Modified: nemerle/trunk/ncc/testsuite/positive/list-compr.n
==============================================================================
--- nemerle/trunk/ncc/testsuite/positive/list-compr.n	(original)
+++ nemerle/trunk/ncc/testsuite/positive/list-compr.n	Thu Aug 10 20:03:16 2006
@@ -32,6 +32,19 @@
 WriteLine ($[1 .. 10])
 WriteLine ($[1, 3 .. 10])
 
+WriteLine ("-------- Imperative ----");
+foreach(i in $[2..10]) {
+  when (i % 2 == 0)
+    Nemerle.Imperative.Continue();
+  System.Console.WriteLine(i);
+}
+foreach(i in $[2, 4..20]) {
+  when (i % 3 == 0)
+    Nemerle.Imperative.Continue();
+  System.Console.WriteLine(i);
+  when (i == 14) Nemerle.Imperative.Break ();
+}
+
 /*
 BEGIN-OUTPUT
 [(2, 1), (3, 1), (3, 2)]
@@ -70,5 +83,15 @@
 1
 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
 [1, 3, 5, 7, 9]
+-------- Imperative ----
+3
+5
+7
+9
+2
+4
+8
+10
+14
 END-OUTPUT
 */



More information about the svn mailing list