fix failing tests
[gitmo/Moose.git] / lib / Moose / Meta / Role.pm
index 742ae7c..27dc2eb 100644 (file)
@@ -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,6 +199,9 @@ sub add_attribute {
         my $class = ref $_[0];
         Moose->throw_error( "Cannot add a $class as an attribute to a role" );
     }
+    elsif (!blessed($_[0]) && defined($_[0]) && $_[0] =~ /^\+(.*)/) {
+        Moose->throw_error( "has '+attr' is not supported in roles" );
+    }
 
     return $self->SUPER::add_attribute(@_);
 }