X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMoose.pm;h=f776e12a127b7bed408a77d6f6cf2d9e2aae2ab9;hb=4cfe8f309a065fc548cdfbe72c5542d72cb2a46d;hp=65538a748659b79afb0323035467180134817012;hpb=6ac64e4700570464e264dde7ce0736b6409ac883;p=gitmo%2FMoose.git diff --git a/lib/Moose.pm b/lib/Moose.pm index 65538a7..f776e12 100644 --- a/lib/Moose.pm +++ b/lib/Moose.pm @@ -132,22 +132,6 @@ Moose::Exporter->setup_import_methods( ); sub init_meta { - # This used to be called as a function. This hack preserves - # backwards compatibility. - if ( $_[0] ne __PACKAGE__ ) { - Moose::Deprecated::deprecated( - feature => 'Moose::init_meta', - message => 'Calling Moose::init_meta as a function is deprecated.' - . ' Doing so will throw an error in Moose 2.0200.' - ); - - return __PACKAGE__->init_meta( - for_class => $_[0], - base_class => $_[1], - metaclass => $_[2], - ); - } - shift; my %args = @_; @@ -157,6 +141,9 @@ sub init_meta { my $metaclass = $args{metaclass} || 'Moose::Meta::Class'; my $meta_name = exists $args{meta_name} ? $args{meta_name} : 'meta'; + Moose->throw_error("The Metaclass $metaclass must be loaded. (Perhaps you forgot to 'use $metaclass'?)") + unless Class::MOP::is_class_loaded($metaclass); + Moose->throw_error("The Metaclass $metaclass must be a subclass of Moose::Meta::Class.") unless $metaclass->isa('Moose::Meta::Class'); @@ -246,7 +233,6 @@ $_->make_immutable( Moose::Meta::TypeCoercion::Union Moose::Meta::Method - Moose::Meta::Method::Accessor Moose::Meta::Method::Constructor Moose::Meta::Method::Destructor Moose::Meta::Method::Overridden @@ -267,9 +253,17 @@ $_->make_immutable( Moose::Meta::Role::Application::ToInstance ); -Moose::Meta::Mixin::AttributeCore->meta->make_immutable( +$_->make_immutable( inline_constructor => 0, constructor_name => undef, + # these are Class::MOP accessors, so they need inlining + inline_accessors => 1 + ) for grep { $_->is_mutable } + map { $_->meta } + qw( + Moose::Meta::Method::Accessor + Moose::Meta::Method::Delegation + Moose::Meta::Mixin::AttributeCore ); 1;