Use Moose::Util::throw in lib/Moose instead of confess
[gitmo/Moose.git] / lib / Moose / Meta / Role.pm
index 495a9bb..491af7c 100644 (file)
@@ -1,12 +1,11 @@
-
 package Moose::Meta::Role;
 
 use strict;
 use warnings;
 use metaclass;
 
+use Class::Load qw(load_class);
 use Scalar::Util 'blessed';
-use Carp         'confess';
 use Devel::GlobalDestruction 'in_global_destruction';
 
 use Moose::Meta::Class;
@@ -43,7 +42,7 @@ my $META = __PACKAGE__->meta;
 
 # NOTE:
 # since roles are lazy, we hold all the attributes
-# of the individual role in 'statis' until which
+# of the individual role in 'stasis' until which
 # time when it is applied to a class. This means
 # keeping a lot of things in hash maps, so we are
 # using a little of that meta-programmin' magic
@@ -450,30 +449,7 @@ sub apply {
         $application_class = $self->application_to_instance_class;
     }
 
-    Class::MOP::load_class($application_class);
-
-    my $deprecation_check = 0;
-
-    if ( exists $args{excludes} && !exists $args{'-excludes'} ) {
-        $args{'-excludes'} = delete $args{excludes};
-        $deprecation_check = 1;
-    }
-    if ( exists $args{alias} && !exists $args{'-alias'} ) {
-        $args{'-alias'} = delete $args{alias};
-        $deprecation_check = 1;
-    }
-
-    if ( $deprecation_check ) {
-        Moose::Deprecated::deprecated(
-            feature => 'alias or excludes',
-            message =>
-                'The alias and excludes options for role application'.
-                ' have been renamed -alias and -excludes'.
-                " (${\$other->name} is consuming ${\$self->name}".
-                " - do you need to upgrade ${\$other->name}?).".
-                ' This will be an error in Moose 2.0200.'
-        );
-    }
+    load_class($application_class);
 
     if ( exists $args{'-excludes'} ) {
         # I wish we had coercion here :)
@@ -526,15 +502,15 @@ sub create {
     my %options = @args;
 
     (ref $options{attributes} eq 'HASH')
-        || confess "You must pass a HASH ref of attributes"
+        || Moose::Util::throw "You must pass a HASH ref of attributes"
             if exists $options{attributes};
 
     (ref $options{methods} eq 'HASH')
-        || confess "You must pass a HASH ref of methods"
+        || Moose::Util::throw "You must pass a HASH ref of methods"
             if exists $options{methods};
 
     (ref $options{roles} eq 'ARRAY')
-        || confess "You must pass an ARRAY ref of roles"
+        || Moose::Util::throw "You must pass an ARRAY ref of roles"
             if exists $options{roles};
 
     my $package      = delete $options{package};
@@ -927,6 +903,31 @@ This is quite likely to change in the future.
 
 =back
 
+=head2 Overload introspection and creation
+
+The methods for dealing with a role's overloads are all identical in API
+and behavior to the same methods in L<Class::MOP::Class>. Note that these are
+not particularly useful (yet), because overloads do not participate in role
+composition.
+
+=over 4
+
+=item B<< $metarole->is_overloaded >>
+
+=item B<< $metarole->get_overloaded_operator($op) >>
+
+=item B<< $metarole->has_overloaded_operator($op) >>
+
+=item B<< $metarole->get_overload_list >>
+
+=item B<< $metarole->get_all_overloaded_operators >>
+
+=item B<< $metarole->add_overloaded_operator($op, $impl) >>
+
+=item B<< $metarole->remove_overloaded_operator($op) >>
+
+=back
+
 =head2 Required methods
 
 =over 4