From: Yuval Kogman Date: Mon, 7 Jan 2008 23:42:34 +0000 (+0000) Subject: blah, broken commit X-Git-Tag: 0_35~19^2~7 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=28ffb4496edcfab33df359faef7bdb8c1d57368e;p=gitmo%2FMoose.git blah, broken commit --- diff --git a/lib/Moose/Util/TypeConstraints.pm b/lib/Moose/Util/TypeConstraints.pm index aa8e551..e21179b 100644 --- a/lib/Moose/Util/TypeConstraints.pm +++ b/lib/Moose/Util/TypeConstraints.pm @@ -48,6 +48,7 @@ use Moose::Meta::TypeConstraint::Parameterized; use Moose::Meta::TypeCoercion; use Moose::Meta::TypeCoercion::Union; use Moose::Meta::TypeConstraint::Registry; +use Moose::Util::TypeConstraints::OptimizedConstraints; my @exports = qw/ type subtype as where message optimize_as @@ -385,34 +386,34 @@ subtype 'Bool' subtype 'Value' => as 'Defined' => where { !ref($_) } - => optimize_as { defined($_[0]) && !ref($_[0]) }; + => optimize_as \&Moose::Util::TypeConstraints::OptimizedConstraints::Value; subtype 'Ref' => as 'Defined' => where { ref($_) } - => optimize_as { ref($_[0]) }; + => optimize_as \&Moose::Util::TypeConstraints::OptimizedConstraints::Ref; subtype 'Str' => as 'Value' => where { 1 } - => optimize_as { defined($_[0]) && !ref($_[0]) }; + => optimize_as \&Moose::Util::TypeConstraints::OptimizedConstraints::Str; subtype 'Num' => as 'Value' => where { Scalar::Util::looks_like_number($_) } - => optimize_as { !ref($_[0]) && Scalar::Util::looks_like_number($_[0]) }; + => optimize_as \&Moose::Util::TypeConstraints::OptimizedConstraints::Num; subtype 'Int' => as 'Num' => where { "$_" =~ /^-?[0-9]+$/ } - => optimize_as { defined($_[0]) && !ref($_[0]) && $_[0] =~ /^-?[0-9]+$/ }; + => optimize_as \&Moose::Util::TypeConstraints::OptimizedConstraints::Int; -subtype 'ScalarRef' => as 'Ref' => where { ref($_) eq 'SCALAR' } => optimize_as { ref($_[0]) eq 'SCALAR' }; -subtype 'ArrayRef' => as 'Ref' => where { ref($_) eq 'ARRAY' } => optimize_as { ref($_[0]) eq 'ARRAY' }; -subtype 'HashRef' => as 'Ref' => where { ref($_) eq 'HASH' } => optimize_as { ref($_[0]) eq 'HASH' }; -subtype 'CodeRef' => as 'Ref' => where { ref($_) eq 'CODE' } => optimize_as { ref($_[0]) eq 'CODE' }; -subtype 'RegexpRef' => as 'Ref' => where { ref($_) eq 'Regexp' } => optimize_as { ref($_[0]) eq 'Regexp' }; -subtype 'GlobRef' => as 'Ref' => where { ref($_) eq 'GLOB' } => optimize_as { ref($_[0]) eq 'GLOB' }; +subtype 'ScalarRef' => as 'Ref' => where { ref($_) eq 'SCALAR' } => optimize_as \&Moose::Util::TypeConstraints::OptimizedConstraints::ScalarRef; +subtype 'ArrayRef' => as 'Ref' => where { ref($_) eq 'ARRAY' } => optimize_as \&Moose::Util::TypeConstraints::OptimizedConstraints::ArrayRef; +subtype 'HashRef' => as 'Ref' => where { ref($_) eq 'HASH' } => optimize_as \&Moose::Util::TypeConstraints::OptimizedConstraints::HashRef; +subtype 'CodeRef' => as 'Ref' => where { ref($_) eq 'CODE' } => optimize_as \&Moose::Util::TypeConstraints::OptimizedConstraints::CodeRef; +subtype 'RegexpRef' => as 'Ref' => where { ref($_) eq 'Regexp' } => optimize_as \&Moose::Util::TypeConstraints::OptimizedConstraints::RegexpRef; +subtype 'GlobRef' => as 'Ref' => where { ref($_) eq 'GLOB' } => optimize_as \&Moose::Util::TypeConstraints::OptimizedConstraints::GlobRef; # NOTE: # scalar filehandles are GLOB refs, @@ -420,19 +421,19 @@ subtype 'GlobRef' => as 'Ref' => where { ref($_) eq 'GLOB' } => optimize_as subtype 'FileHandle' => as 'GlobRef' => where { Scalar::Util::openhandle($_) } - => optimize_as { ref($_[0]) eq 'GLOB' && Scalar::Util::openhandle($_[0]) }; + => optimize_as \&Moose::Util::TypeConstraints::OptimizedConstraints::FileHandle; # NOTE: # blessed(qr/.../) returns true,.. how odd subtype 'Object' => as 'Ref' => where { blessed($_) && blessed($_) ne 'Regexp' } - => optimize_as { blessed($_[0]) && blessed($_[0]) ne 'Regexp' }; + => optimize_as \&Moose::Util::TypeConstraints::OptimizedConstraints::Object; subtype 'Role' => as 'Object' => where { $_->can('does') } - => optimize_as { blessed($_[0]) && $_[0]->can('does') }; + => optimize_as \&Moose::Util::TypeConstraints::OptimizedConstraints::Role; my $_class_name_checker = sub { return if ref($_[0]);