Throw a more useful error when users try to use a parameterized type,
[gitmo/Mouse.git] / lib / Mouse / Meta / Attribute.pm
index ab72881..4387bcd 100644 (file)
@@ -75,7 +75,7 @@ sub generate_accessor {
 
     my $accessor = "sub {\n";
     if ($attribute->_is_metadata eq 'rw') {
-        $accessor .= 'if (scalar(@_) >= 2) {' . "\n";
+        $accessor .= 'if (@_ >= 2) {' . "\n";
 
         my $value = '$_[1]';
 
@@ -204,6 +204,9 @@ sub create {
         if exists $args{coerce};
 
     if (exists $args{isa}) {
+        confess "Mouse does not yet support parameterized types (rt.cpan.org #39795)"
+            if $args{isa} =~ /\[.*\]/;
+
         my $type_constraint = delete $args{isa};
         $type_constraint =~ s/\s//g;
         my @type_constraints = split /\|/, $type_constraint;