[svn] r7373: nemerle/trunk/ncc: hierarchy/TypeBuilder.n
parsing/MainParser.n testsuite/negative/tyvars.n
nazgul
svnadmin at nemerle.org
Sat Feb 3 11:53:11 CET 2007
Log:
Error on generic enums
Author: nazgul
Date: Sat Feb 3 11:53:08 2007
New Revision: 7373
Modified:
nemerle/trunk/ncc/hierarchy/TypeBuilder.n
nemerle/trunk/ncc/parsing/MainParser.n
nemerle/trunk/ncc/testsuite/negative/tyvars.n
Modified: nemerle/trunk/ncc/hierarchy/TypeBuilder.n
==============================================================================
--- nemerle/trunk/ncc/hierarchy/TypeBuilder.n (original)
+++ nemerle/trunk/ncc/hierarchy/TypeBuilder.n Sat Feb 3 11:53:08 2007
@@ -995,6 +995,8 @@
mem.Attributes |= NemerleAttributes.Public;
| PT.TopDeclaration.Variant => attributes |= NemerleAttributes.Abstract
+ | PT.TopDeclaration.Enum when !this.typarms.IsEmpty =>
+ Message.Error ("enums cannot have generic type parameters");
| _ => ()
};
Modified: nemerle/trunk/ncc/parsing/MainParser.n
==============================================================================
--- nemerle/trunk/ncc/parsing/MainParser.n (original)
+++ nemerle/trunk/ncc/parsing/MainParser.n Sat Feb 3 11:53:08 2007
@@ -678,7 +678,7 @@
| "interface" => TopDeclaration.Interface (typarms, t_extends, members)
| "variant" => TopDeclaration.Variant (typarms, t_extends, members)
- | "enum" => TopDeclaration.Enum (t_extends, members)
+ | "enum" => TopDeclaration.Enum (typarms, t_extends, members)
| _ => Util.ice ()
};
Modified: nemerle/trunk/ncc/testsuite/negative/tyvars.n
==============================================================================
--- nemerle/trunk/ncc/testsuite/negative/tyvars.n (original)
+++ nemerle/trunk/ncc/testsuite/negative/tyvars.n Sat Feb 3 11:53:08 2007
@@ -4,3 +4,7 @@
class C [x] { // E: type parameter `x' has the same name as type parameter from the outer type `B'
}
}
+
+enum E [X] { // E: enums cannot have generic type parameters
+ | A | B
+}
\ No newline at end of file
More information about the svn
mailing list