Remove all uses of CMOP::{load_class, is_class_loaded, load_first_existing_class...
[gitmo/Moose.git] / lib / Moose / Util / TypeConstraints / Builtins.pm
index f9b2dfc..7ea867c 100644 (file)
@@ -3,6 +3,7 @@ package Moose::Util::TypeConstraints::Builtins;
 use strict;
 use warnings;
 
+use Class::Load qw( is_class_loaded );
 use List::MoreUtils ();
 use Scalar::Util qw( blessed looks_like_number reftype );
 
@@ -28,28 +29,25 @@ sub define_builtins {
         => as 'Item'
         => where { !defined($_) }
         => inline_as {
-            $_[0]->parent()->_inline_check($_[1])
-            . ' && !defined(' . $_[1] . ')'
+            '!defined(' . $_[1] . ')'
         };
 
     subtype 'Defined'
         => as 'Item'
         => where { defined($_) }
         => inline_as {
-            $_[0]->parent()->_inline_check($_[1])
-            . ' && defined(' . $_[1] . ')'
+            'defined(' . $_[1] . ')'
         };
 
     subtype 'Bool'
         => as 'Item'
         => where { !defined($_) || $_ eq "" || "$_" eq '1' || "$_" eq '0' }
         => inline_as {
-            $_[0]->parent()->_inline_check($_[1])
-            . ' && ('
+            '('
                 . '!defined(' . $_[1] . ') '
                 . '|| ' . $_[1] . ' eq "" '
-                . '|| "' . $_[1] . '" eq "1" '
-                . '|| "' . $_[1] . '" eq "0"'
+                . '|| (' . $_[1] . '."") eq "1" '
+                . '|| (' . $_[1] . '."") eq "0"'
             . ')'
         };
 
@@ -78,12 +76,13 @@ sub define_builtins {
             . ')'
         };
 
+    my $value_type = Moose::Util::TypeConstraints::find_type_constraint('Value');
     subtype 'Num'
         => as 'Str'
         => where { Scalar::Util::looks_like_number($_) }
         => inline_as {
             # the long Str tests are redundant here
-            Moose::Util::TypeConstraints::find_type_constraint('Value')->_inline_check($_[1])
+            $value_type->_inline_check($_[1])
             . ' && Scalar::Util::looks_like_number(' . $_[1] . ')'
         };
 
@@ -91,7 +90,7 @@ sub define_builtins {
         => as 'Num'
         => where { (my $val = $_) =~ /\A-?[0-9]+\z/ }
         => inline_as {
-            Moose::Util::TypeConstraints::find_type_constraint('Value')->_inline_check($_[1])
+            $value_type->_inline_check($_[1])
             . ' && (my $val = ' . $_[1] . ') =~ /\A-?[0-9]+\z/'
         };
 
@@ -132,16 +131,11 @@ sub define_builtins {
         => where { blessed($_) }
         => inline_as { 'Scalar::Util::blessed(' . $_[1] . ')' };
 
-    # This type is deprecated.
-    subtype 'Role'
-        => as 'Object'
-        => where { $_->can('does') };
-
     subtype 'ClassName'
         => as 'Str'
-        => where { Class::MOP::is_class_loaded($_) }
+        => where { is_class_loaded($_) }
             # the long Str tests are redundant here
-        => inline_as { 'Class::MOP::is_class_loaded(' . $_[1] . ')' };
+        => inline_as { 'Class::Load::is_class_loaded(' . $_[1] . ')' };
 
     subtype 'RoleName'
         => as 'ClassName'