use Moose::Util::TypeConstraints;
use Moose::Meta::TypeConstraint::Parameterizable;
-our $VERSION = '0.65';
+our $VERSION = '0.71_01';
$VERSION = eval $VERSION;
our $AUTHORITY = 'cpan:STEVAN';
sub compile_type_constraint {
my $self = shift;
- ($self->has_type_parameter)
- || Moose->throw_error("You cannot create a Higher Order type without a type parameter");
-
+ unless ( $self->has_type_parameter ) {
+ require Moose;
+ Moose->throw_error("You cannot create a Higher Order type without a type parameter");
+ }
+
my $type_parameter = $self->type_parameter;
- (blessed $type_parameter && $type_parameter->isa('Moose::Meta::TypeConstraint'))
- || Moose->throw_error("The type parameter must be a Moose meta type");
+ unless ( blessed $type_parameter && $type_parameter->isa('Moose::Meta::TypeConstraint') ) {
+ require Moose;
+ Moose->throw_error("The type parameter must be a Moose meta type");
+ }
foreach my $type (Moose::Util::TypeConstraints::get_all_parameterizable_types()) {
if (my $constraint = $type->generate_constraint_for($self)) {
# if we get here, then we couldn't
# find a way to parameterize this type
+ require Moose;
Moose->throw_error("The " . $self->name . " constraint cannot be used, because "
. $self->parent->name . " doesn't subtype or coerce from a parameterizable type.");
}
=head1 COPYRIGHT AND LICENSE
-Copyright 2006-2008 by Infinity Interactive, Inc.
+Copyright 2006-2009 by Infinity Interactive, Inc.
L<http://www.iinteractive.com>