and update the symbol table when appropriate.
[gitmo/Moose.git] / t / immutable / inline_close_over.t
index 400261d..f266176 100644 (file)
@@ -3,11 +3,12 @@ use strict;
 use warnings;
 use Test::More;
 
+use Class::Load 'load_class';
 use Test::Requires 'Data::Visitor';
 use Test::Requires 'PadWalker';
 use Try::Tiny;
 my $can_partialdump = try {
-    Class::MOP::load_class('Devel::PartialDump', { -version => 0.14 }); 1;
+    load_class('Devel::PartialDump', { -version => 0.14 }); 1;
 };
 
 {
@@ -45,6 +46,7 @@ my $can_partialdump = try {
     sub _is_okay_to_close_over {
         my $self = shift;
         my ($thing) = @_;
+        return 1 if ref($thing) eq 'RuNNeR';
 
         match_on_type $thing => (
             'RegexpRef'  => sub { 1 },
@@ -61,6 +63,10 @@ sub close_over_ok {
     my ($package, $method) = @_;
     my $visitor = Test::Visitor->new;
     my $code = $package->meta->find_method_by_name($method)->body;
+    if (ref($code) eq 'RuNNeR') {
+        $code->(undef);
+        $code = $package->meta->find_method_by_name($method)->body;
+    }
     $visitor->visit($code);
     if ($visitor->pass) {
         pass("${package}::${method} didn't close over anything complicated");