Str constraint shouldn't accept GV's
chansen [Fri, 16 Oct 2009 16:34:55 +0000 (18:34 +0200)]
lib/Moose/Util/TypeConstraints.pm
lib/Moose/Util/TypeConstraints/OptimizedConstraints.pm

index 12d825f..377772e 100644 (file)
@@ -662,7 +662,7 @@ subtype 'Value' => as 'Defined' => where { !ref($_) } =>
 subtype 'Ref' => as 'Defined' => where { ref($_) } =>
     optimize_as \&Moose::Util::TypeConstraints::OptimizedConstraints::Ref;
 
-subtype 'Str' => as 'Value' => where {1} =>
+subtype 'Str' => as 'Value' => where { ref(\$_) eq 'SCALAR' } =>
     optimize_as \&Moose::Util::TypeConstraints::OptimizedConstraints::Str;
 
 subtype 'Num' => as 'Str' =>
index 1b71222..d6fe17e 100644 (file)
@@ -14,7 +14,7 @@ sub Value { defined($_[0]) && !ref($_[0]) }
 
 sub Ref { ref($_[0]) }
 
-sub Str { defined($_[0]) && !ref($_[0]) }
+sub Str { defined($_[0]) && ref(\$_[0]) eq 'SCALAR' }
 
 sub Num { !ref($_[0]) && looks_like_number($_[0]) }