X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMouse%2FMeta%2FRole.pm;h=87aaa8ea31e639badb9bf911944f4b3e96e16abf;hb=134daa672a270f9144185a6d245085558fceb210;hp=1fb77589e5dc55c8c1f5506771376900ea9c9b19;hpb=0449307510ab4425a6b340fee9bf85824eb994b1;p=gitmo%2FMouse.git diff --git a/lib/Mouse/Meta/Role.pm b/lib/Mouse/Meta/Role.pm index 1fb7758..87aaa8e 100644 --- a/lib/Mouse/Meta/Role.pm +++ b/lib/Mouse/Meta/Role.pm @@ -2,12 +2,23 @@ package Mouse::Meta::Role; use strict; use warnings; -use Mouse::Util qw(:meta not_supported english_list); +use Mouse::Util qw(:meta not_supported english_list get_code_info); use Mouse::Meta::Module; our @ISA = qw(Mouse::Meta::Module); sub method_metaclass(){ 'Mouse::Meta::Role::Method' } # required for get_method() +# XXX: for backward compatibility +my %foreign = map{ $_ => undef } qw(Mouse::Role Carp Scalar::Util UNIVERSAL); +sub _code_is_mine{ + my($self, $code) = @_; + + my($package, $name) = get_code_info($code); + + return $package && !exists $foreign{$package}; +} + + sub _construct_meta { my $class = shift;