[svn] r5926: nemerle/trunk/ncc: generation/ILEmitter.n testsuite/positive/matching.n

malekith svnadmin at nemerle.org
Fri Nov 11 01:51:46 CET 2005


Log:
Fix a problem with superflous brfalse being emitted.

Author: malekith
Date: Fri Nov 11 01:51:44 2005
New Revision: 5926

Modified:
   nemerle/trunk/ncc/generation/ILEmitter.n
   nemerle/trunk/ncc/testsuite/positive/matching.n

Modified: nemerle/trunk/ncc/generation/ILEmitter.n
==============================================================================
--- nemerle/trunk/ncc/generation/ILEmitter.n	(original)
+++ nemerle/trunk/ncc/generation/ILEmitter.n	Fri Nov 11 01:51:44 2005
@@ -575,6 +575,7 @@
                 // most of other expressions here are TExpr.Ref
                 emit (expr);
                 Mark (cond_expr.loc);
+                unless (expr.Throws)
                 _ilg.Emit (OpCodes.Brfalse, else_label);                
             }
           }

Modified: nemerle/trunk/ncc/testsuite/positive/matching.n
==============================================================================
--- nemerle/trunk/ncc/testsuite/positive/matching.n	(original)
+++ nemerle/trunk/ncc/testsuite/positive/matching.n	Fri Nov 11 01:51:44 2005
@@ -1473,6 +1473,16 @@
         System.Console.WriteLine (foo ([1,2]));
 
     SwitchGoto.MType.go();
+
+
+    // would trigger verification problems:
+    def idl = [] : list [string];
+
+    match (7) {
+        | 12 when idl is [_] => 7
+        | _ => 17
+    }
+
   }
 }
 



More information about the svn mailing list