X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=gitmo%2FMouse.git;a=blobdiff_plain;f=lib%2FMouse%2FMeta%2FClass.pm;h=85066c7b2f81b60cdda03ebc8c1763a60e622cbc;hp=5724ebf45810680d005043b09a6d99ea3db2e8c9;hb=2a464664052830d5fad036569d5ccb3964c7f592;hpb=cfa6d970245f1bbc9330c0e4bb3342356a43ac16 diff --git a/lib/Mouse/Meta/Class.pm b/lib/Mouse/Meta/Class.pm index 5724ebf..85066c7 100644 --- a/lib/Mouse/Meta/Class.pm +++ b/lib/Mouse/Meta/Class.pm @@ -117,7 +117,7 @@ sub add_attribute { my($attribute_class, @traits) = Mouse::Meta::Attribute->interpolate_class($name, \%args); $args{traits} = \@traits if @traits; - $attr = $attribute_class->new($name, \%args); + $attr = $attribute_class->new($name, %args); } } @@ -248,17 +248,20 @@ sub make_immutable { my %args = ( inline_constructor => 1, inline_destructor => 1, + constructor_name => 'new', @_, ); $self->{is_immutable}++; if ($args{inline_constructor}) { - $self->add_method('new' => Mouse::Meta::Method::Constructor->generate_constructor_method_inline( $self )); + # generate and install + Mouse::Meta::Method::Constructor->_generate_constructor_method($self, \%args); } if ($args{inline_destructor}) { - $self->add_method('DESTROY' => Mouse::Meta::Method::Destructor->generate_destructor_method_inline( $self )); + # generate and install + Mouse::Meta::Method::Destructor->_generate_destructor_method($self, \%args); } # Moose's make_immutable returns true allowing calling code to skip setting an explicit true value