use Moose::Util::TypeConstraints;
use Moose::Util ();
+BEGIN { *throw_error = \&confess } # FIXME make this smarter
+
sub extends {
my $class = shift;
my %args = @_;
my $class = $args{for_class}
- or confess "Cannot call init_meta without specifying a for_class";
+ or throw_error "Cannot call init_meta without specifying a for_class";
my $base_class = $args{base_class} || 'Moose::Object';
my $metaclass = $args{metaclass} || 'Moose::Meta::Class';
- confess
+ throw_error
"The Metaclass $metaclass must be a subclass of Moose::Meta::Class."
unless $metaclass->isa('Moose::Meta::Class');
if ( $meta = Class::MOP::get_metaclass_by_name($class) ) {
unless ( $meta->isa("Moose::Meta::Class") ) {
- confess "$class already has a metaclass, but it does not inherit $metaclass ($meta)";
+ throw_error "$class already has a metaclass, but it does not inherit $metaclass ($meta)";
}
} else {
# no metaclass, no 'meta' method
my $method_meta = $class->meta;
( blessed($method_meta) && $method_meta->isa('Moose::Meta::Class') )
- || confess "$class already has a &meta function, but it does not return a Moose::Meta::Class ($meta)";
+ || throw_error "$class already has a &meta function, but it does not return a Moose::Meta::Class ($meta)";
$meta = $method_meta;
}
sanely. It handles getting the exported functions into the right place
for you.
+=head2 throw_error
+
+An alias for C<confess>, used by internally by Moose.
+
=head1 CAVEATS
=over 4