X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2Fmetaclass.pm;h=192a664343bfb734eb34a80933fad26e06b97c90;hb=59b510466ab075526c10a9c0555645b5f916ef02;hp=b688f267b9f2c670d999a423e06acb83abf81042;hpb=20b0fc6fc5e739cc02e049b4468570a88e6453ed;p=gitmo%2FClass-MOP.git diff --git a/lib/metaclass.pm b/lib/metaclass.pm index b688f26..192a664 100644 --- a/lib/metaclass.pm +++ b/lib/metaclass.pm @@ -43,22 +43,7 @@ sub import { # create a meta object so we can install &meta my $meta = $metaclass->initialize($package => %options); - $meta->add_method('meta' => sub { - # we must re-initialize so that it - # works as expected in subclasses, - # since metaclass instances are - # singletons, this is not really a - # big deal anyway. - if (Class::MOP::DEBUG_NO_META()) { - my ($self) = @_; - if (my $meta = try { $self->SUPER::meta }) { - return $meta if $meta->isa('Class::MOP::Class'); - } - confess "'meta' method called by MOP internals" - if caller =~ /Class::MOP|metaclass/; - } - $metaclass->initialize((blessed($_[0]) || $_[0])) - }) if $should_install_meta; + $meta->_add_meta_method if $should_install_meta; } 1;