X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=gitmo%2FMooseX-Types-Structured.git;a=blobdiff_plain;f=t%2F01-basic.t;h=184b82f4f12d5b0c1b8c2afa080b38b1cbd23d01;hp=58b24cb73e04697ae88c349b9135cbc3f63a3a7e;hb=a4ae4800dff610e55214ff02068618705963b15c;hpb=8c59dff8073f6ea8648c316ba36674f8eb476c55 diff --git a/t/01-basic.t b/t/01-basic.t index 58b24cb..184b82f 100644 --- a/t/01-basic.t +++ b/t/01-basic.t @@ -15,17 +15,22 @@ my $list_tc = MooseX::Meta::TypeConstraint::Structured->new( parent => $arrayref, type_constraints => [$int, $str], constraint_generator=> sub { - my @type_constraints = @{shift @_}; - my @values = @{shift @_}; - - while(my $type_constraint = shift @type_constraints) { - my $value = shift @values || return; - $type_constraint->check($value) || return; - } - if(@values) { - return; - } else { - return 1; + my ($self) = @_; + my @type_constraints = @{ $self->type_constraints }; + + return sub { + my ($values, $err) = @_; + my @values = @$values; + + for my $type_constraint (@type_constraints) { + my $value = shift @values || return; + $type_constraint->check($value) || return; + } + if(@values) { + return; + } else { + return 1; + } } } );