[svn] r6068: nemerle/trunk/ncc: testsuite/positive/extensible-matching.n typing/Typer-PatternTyper.n

malekith svnadmin at nemerle.org
Fri Jan 20 22:43:30 CET 2006


Log:
Allow symbolic extension patterns. Disable debug output.

Author: malekith
Date: Fri Jan 20 22:43:28 2006
New Revision: 6068

Modified:
   nemerle/trunk/ncc/testsuite/positive/extensible-matching.n
   nemerle/trunk/ncc/typing/Typer-PatternTyper.n

Modified: nemerle/trunk/ncc/testsuite/positive/extensible-matching.n
==============================================================================
--- nemerle/trunk/ncc/testsuite/positive/extensible-matching.n	(original)
+++ nemerle/trunk/ncc/testsuite/positive/extensible-matching.n	Fri Jan 20 22:43:28 2006
@@ -2,6 +2,7 @@
 using Nemerle.Utility
 
 [ExtensionPattern ( Node (t1, el, t2) = SNode (t1, el, t2, _) )] \
+[ExtensionPattern ( t1 ::: t2 = SNode (t1, _, t2, _) )] \
 public variant Tree
   | SNode 
       l : Tree
@@ -46,6 +47,9 @@
     System.Console.WriteLine (e)
   | Nil => assert (false)
 
+match (t)
+  | _ ::: _ => {}
+  | Nil => {}
 
 /*
 BEGIN-OUTPUT

Modified: nemerle/trunk/ncc/typing/Typer-PatternTyper.n
==============================================================================
--- nemerle/trunk/ncc/typing/Typer-PatternTyper.n	(original)
+++ nemerle/trunk/ncc/typing/Typer-PatternTyper.n	Fri Jan 20 22:43:28 2006
@@ -143,7 +143,7 @@
       }
       
       def res = Macros.TraverseExpr (None (), Pattern, true, rename);
-      Message.Debug ($ "expand: $Pattern -> $res");
+      // Message.Debug ($ "expand: $Pattern -> $res");
       res
     }
   }
@@ -387,7 +387,7 @@
                        is_where : bool) : Pattern
       {
         match (Util.QidOfExpr (name)) {
-          | Some (([id], name)) when !is_where && !System.Char.IsUpper (id [0]) =>
+          | Some (([id], name)) when !is_where && (System.Char.IsLower (id [0]) || id [0] == '_') =>
             match (pattern) {
               | PT.PExpr.Wildcard =>
                 TypePattern (matched_value_type,



More information about the svn mailing list