make this work with (and require) latest Moose, 0.51
[gitmo/MooseX-StrictConstructor.git] / lib / MooseX / StrictConstructor / Meta / Method / Constructor.pm
index 970bd9c..06d5b10 100644 (file)
@@ -15,12 +15,17 @@ override '_generate_BUILDALL' => sub ## no critic RequireArgUnpacking
     my $source = super();
     $source .= ";\n" if $source;
 
-    my @attrs = map { $_->name() . ' => 1,' } @{ $self->attributes() };
+    my @attrs =
+        ( map { "$_ => 1," }
+          grep { defined }
+          map { $_->init_arg() }
+          @{ $self->attributes() }
+        );
 
     $source .= <<"EOF";
 my \%attrs = (@attrs);
 
-my \@bad = sort grep { ! \$attrs{\$_} }  keys \%params;
+my \@bad = sort grep { ! \$attrs{\$_} }  keys \%{ \$params };
 
 if (\@bad) {
     Carp::confess "Found unknown attribute(s) passed to the constructor: \@bad";