return \@args;
} else {
@args =
- map { Moose::Util::TypeConstraints::find_or_parse_type_constraint($_) || die "$_ is not a constraint!" }
+ map { $self->resolve_type_constraint($_) || die "$_ is not a constraint!" }
@arg_protos;
}
return \@args;
}
+sub resolve_type_constraint {
+ my ($self, $name) = @_;
+ my $tc = eval "package ${\$self->class}; $name" || undef;
+ return $tc || Moose::Util::TypeConstraints::find_or_parse_type_constraint($name);
+}
+
use overload (
# Stringify to reverse for debug output etc.
sub match {
my ( $self, $c ) = @_;
+ $c->log->debug($self->reverse);
# If infinite args, we always match
return 1 if $self->normalized_arg_number == ~0;
) {
return $self->args_constraints->[0]->check($c->req->args);
} else {
- for my $i($#{ $c->req->args }) {
+ for my $i(0..$#{ $c->req->args }) {
$self->args_constraints->[$i]->check($c->req->args->[$i]) || return 0;
}
return 1;