X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMoose%2FMeta%2FRole.pm;h=27dc2eb1253deb2b226a75386bb40b0c06f1a9e1;hb=8c063f8ed8d83d893e4571a3fb64c664e40bdd3e;hp=adabdebc2bf9d1e132565f7662c0ba52539ff525;hpb=576cd474fc09bba92843e299a33dd2634629a930;p=gitmo%2FMoose.git diff --git a/lib/Moose/Meta/Role.pm b/lib/Moose/Meta/Role.pm index adabdeb..27dc2eb 100644 --- a/lib/Moose/Meta/Role.pm +++ b/lib/Moose/Meta/Role.pm @@ -20,7 +20,9 @@ use Moose::Meta::Role::Method::Required; use Moose::Meta::Role::Method::Conflicting; use Moose::Util qw( ensure_all_roles ); -use base 'Class::MOP::Module', 'Class::MOP::Mixin::HasAttributes'; +use base 'Class::MOP::Module', + 'Class::MOP::Mixin::HasAttributes', + 'Class::MOP::Mixin::HasMethods'; ## ------------------------------------------------------------------ ## NOTE: @@ -197,7 +199,7 @@ sub add_attribute { my $class = ref $_[0]; Moose->throw_error( "Cannot add a $class as an attribute to a role" ); } - elsif (!blessed($_[0]) && $_[0] =~ /^\+(.*)/) { + elsif (!blessed($_[0]) && defined($_[0]) && $_[0] =~ /^\+(.*)/) { Moose->throw_error( "has '+attr' is not supported in roles" ); }