[svn] r6198: nemerle/trunk/ncc: testsuite/negative/genspec1.n testsuite/negative/genspec3.n typing/Overloa...

malekith svnadmin at nemerle.org
Wed Apr 26 11:43:43 CEST 2006


Log:
Better error message for extra generic parameters for overloaded functions. Fixes #658.

Author: malekith
Date: Wed Apr 26 11:43:42 2006
New Revision: 6198

Added:
   nemerle/trunk/ncc/testsuite/negative/genspec1.n
   nemerle/trunk/ncc/testsuite/negative/genspec3.n
Modified:
   nemerle/trunk/ncc/typing/OverloadPossibility.n

Added: nemerle/trunk/ncc/testsuite/negative/genspec1.n
==============================================================================
--- (empty file)
+++ nemerle/trunk/ncc/testsuite/negative/genspec1.n	Wed Apr 26 11:43:42 2006
@@ -0,0 +1 @@
+def t = System.Collections.Hashtable.[int, int]; // E: System.Collections.Hashtable..ctor doesn't take generic parameters

Added: nemerle/trunk/ncc/testsuite/negative/genspec3.n
==============================================================================
--- (empty file)
+++ nemerle/trunk/ncc/testsuite/negative/genspec3.n	Wed Apr 26 11:43:42 2006
@@ -0,0 +1,7 @@
+class A {
+  public this () { }
+  public this (_ : int) { }
+}
+
+def t' = A.[int] (); // E: A..ctor doesn't take generic parameters
+

Modified: nemerle/trunk/ncc/typing/OverloadPossibility.n
==============================================================================
--- nemerle/trunk/ncc/typing/OverloadPossibility.n	(original)
+++ nemerle/trunk/ncc/typing/OverloadPossibility.n	Wed Apr 26 11:43:42 2006
@@ -380,6 +380,10 @@
         def hd = List.Hd (overloads);
         def solver = Passes.Solver;
         def messenger = solver.CurrentMessenger;
+        if (overloads.ForAll (fun (o) { !o.IsGeneric && o.generic_specifier != null }))
+          ReportError (messenger,
+                       $ "$(hd.member.DeclaringType).$(hd.member.Name) doesn't take generic parameters");
+        else {
         ReportError (messenger,
                      $ "none of the overloads of $(hd.member.Name) is "
                        "possible:");
@@ -398,6 +402,7 @@
             solver.PopState ();
           }
       }
+      }
       
       res
     }



More information about the svn mailing list