[svn] r6433: nemerle/trunk/ncc: hierarchy/ClassMembers.n testsuite/negative/wrong-args.n

nazgul svnadmin at nemerle.org
Thu Jul 6 23:30:54 CEST 2006


Log:
Error on params in static ctor

Author: nazgul
Date: Thu Jul  6 23:30:52 2006
New Revision: 6433

Modified:
   nemerle/trunk/ncc/hierarchy/ClassMembers.n
   nemerle/trunk/ncc/testsuite/negative/wrong-args.n

Modified: nemerle/trunk/ncc/hierarchy/ClassMembers.n
==============================================================================
--- nemerle/trunk/ncc/hierarchy/ClassMembers.n	(original)
+++ nemerle/trunk/ncc/hierarchy/ClassMembers.n	Thu Jul  6 23:30:52 2006
@@ -854,6 +854,8 @@
         | (FunKind.Method ([]), ".ctor") when IsStatic =>
           this.m_has_been_used = true;
           this.name = ".cctor";
+          unless (parms.IsEmpty)
+            Message.Error ("static constructor cannot have any parameters");
           FunKind.StaticConstructor ()
           
         | (FunKind.Method ([]), ".ctor")         =>
@@ -862,10 +864,6 @@
           FunKind.Constructor ()
                 
         | (FunKind.Method ([]), _) when IsStatic => FunKind.Function ()
-        | (FunKind.Constructor, _) when IsStatic =>
-          this.m_has_been_used = true;
-          this.name = ".cctor";
-          FunKind.StaticConstructor ()
           
         | (FunKind.Method (_ :: _), ".ctor") =>
           Message.Error ("constructor cannot implement anything");

Modified: nemerle/trunk/ncc/testsuite/negative/wrong-args.n
==============================================================================
--- nemerle/trunk/ncc/testsuite/negative/wrong-args.n	(original)
+++ nemerle/trunk/ncc/testsuite/negative/wrong-args.n	Thu Jul  6 23:30:52 2006
@@ -1,3 +1,15 @@
 class A ['a, 'b] {}
 class B ['a] : A ['a] {} // E: wrong number of type parameters to `A'
 class C : A {} // E: wrong number of type parameters to `A'
+
+
+
+public struct MyStruct
+{
+  public static a : int;
+
+  static this(b : int) // E: static constructor cannot have any parameters
+  {
+    a = b;
+  }
+}



More information about the svn mailing list