Checking in changes prior to tagging of version 0.63.
[gitmo/Mouse.git] / lib / Mouse / Meta / Method / Constructor.pm
index f99aada..9f14dcd 100644 (file)
@@ -51,10 +51,9 @@ sub _generate_processattrs {
     my @res;
 
     my $has_triggers;
-    my $strict_constructor = $metaclass->__strict_constructor;
+    my $strict = $metaclass->strict_constructor;
 
-
-    if($strict_constructor){
+    if($strict){
         push @res, 'my $used = 0;';
     }
 
@@ -106,8 +105,8 @@ sub _generate_processattrs {
                 $code .= "push \@triggers, [$attr_var\->{trigger}, $instance_slot];\n";
             }
 
-            if ($strict_constructor){
-                $code .= '$used++;' . "\n";
+            if ($strict){
+                $code .= '++$used;' . "\n";
             }
 
             $code .= "\n} else {\n"; # $value exists
@@ -151,9 +150,9 @@ sub _generate_processattrs {
         push @res, $code;
     }
 
-    if($strict_constructor){
+    if($strict){
         push @res, q{if($used < keys %{$args})}
-            . q{{ Mouse::Meta::Method::Constructor::_report_unknown_args($metaclass, \@attrs, $instance, $args) }};
+            . q{{ $metaclass->_report_unknown_args(\@attrs, $args) }};
     }
 
     if($metaclass->is_anon_class){
@@ -203,30 +202,6 @@ sub _generate_BUILDALL {
     return join "\n", @code;
 }
 
-sub _report_unknown_args {
-    my($metaclass, $attrs, $instance, $args) = @_;
-
-    my @unknowns;
-    my %init_args;
-    foreach my $attr(@{$attrs}){
-        my $init_arg = $attr->init_arg;
-        if(defined $init_arg){
-            $init_args{$init_arg}++;
-        }
-    }
-
-    while(my $key = each %{$args}){
-        if(!exists $init_args{$key}){
-            push @unknowns, $key;
-        }
-    }
-
-    $metaclass->throw_error( sprintf
-        "Unknown attribute passed to the constructor of %s: %s",
-        ref($instance), join ', ', @unknowns
-    );
-}
-
 1;
 __END__
 
@@ -236,7 +211,7 @@ Mouse::Meta::Method::Constructor - A Mouse method generator for constructors
 
 =head1 VERSION
 
-This document describes Mouse version 0.50_03
+This document describes Mouse version 0.63
 
 =head1 SEE ALSO