[svn] r5980: nemerle/trunk/ncc: testsuite/negative/unbound-member.n typing/Typer-PatternTyper.n

malekith svnadmin at nemerle.org
Tue Nov 29 18:35:50 CET 2005


Log:
Don't try to lookup type-part of the name, when there is none. Resolves #576.

Author: malekith
Date: Tue Nov 29 18:35:48 2005
New Revision: 5980

Modified:
   nemerle/trunk/ncc/testsuite/negative/unbound-member.n
   nemerle/trunk/ncc/typing/Typer-PatternTyper.n

Modified: nemerle/trunk/ncc/testsuite/negative/unbound-member.n
==============================================================================
--- nemerle/trunk/ncc/testsuite/negative/unbound-member.n	(original)
+++ nemerle/trunk/ncc/testsuite/negative/unbound-member.n	Tue Nov 29 18:35:48 2005
@@ -66,3 +66,26 @@
 } 
 }
 }
+
+
+module Bug576
+{
+  variant formula {
+    | True 
+  }
+  
+  eq (f1 : formula, f2 : formula) : bool
+  {
+     match (t1) {
+       | True =>        // E: unbound type
+         f2 == True()   // E: unbound name
+       | _    => true   // W: unused
+     }
+  }
+
+  
+  public t1 () : void
+  {
+    ()      
+  }
+}

Modified: nemerle/trunk/ncc/typing/Typer-PatternTyper.n
==============================================================================
--- nemerle/trunk/ncc/typing/Typer-PatternTyper.n	(original)
+++ nemerle/trunk/ncc/typing/Typer-PatternTyper.n	Tue Nov 29 18:35:48 2005
@@ -502,6 +502,7 @@
                     | _ => 
                       def (typ, field) = idl.DivideLast ();
                       def patterns =
+                        if (typ is []) [] else
                         env.LookupSymbol (typ, typer.current_type).FoldLeft ([],
                           fun (tc, acc) {
                             match (tc) {



More information about the svn mailing list