Using "parameter" inside the role block is an error
Shawn M Moore [Mon, 8 Dec 2008 01:16:31 +0000 (01:16 +0000)]
lib/MooseX/Role/Parameterized.pm
t/100-erroneous-keywords.t

index 441c971..83e88ed 100644 (file)
@@ -21,6 +21,10 @@ __PACKAGE__->setup_import_methods(
 
 sub parameter {
     my $caller = shift;
+
+    confess "'parameter' may not be used inside of the role block"
+        if $CURRENT_METACLASS;
+
     my $meta   = Class::MOP::Class->initialize($caller);
 
     my $names = shift;
index fabcecf..759780e 100644 (file)
@@ -1,7 +1,7 @@
 #!/usr/bin/env perl
 use strict;
 use warnings;
-use Test::More tests => 4;
+use Test::More tests => 5;
 
 use Test::Exception;
 
@@ -23,6 +23,9 @@ do {
         ::throws_ok {
             augment()
         } qr/^Roles cannot support 'augment'/;
+        ::throws_ok {
+            parameter()
+        } qr/^'parameter' may not be used inside of the role block/;
     };
 };