Add Tatsuhiko Miyagawa's regression test
authorVincent Pit <vince@profvince.com>
Sat, 24 Apr 2010 13:03:03 +0000 (15:03 +0200)
committerVincent Pit <vince@profvince.com>
Sat, 24 Apr 2010 13:03:03 +0000 (15:03 +0200)
MANIFEST
t/30-scope.t
t/lib/indirect/TestRequired6.pm [new file with mode: 0644]

index 9cc5beb..672c7c3 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -40,3 +40,4 @@ t/lib/indirect/TestRequired5/a0.pm
 t/lib/indirect/TestRequired5/b0.pm
 t/lib/indirect/TestRequired5/c0.pm
 t/lib/indirect/TestRequired5/d0.pm
+t/lib/indirect/TestRequired6.pm
index 956b71e..dc2870c 100644 (file)
@@ -6,7 +6,7 @@ use warnings;
 my $tests;
 BEGIN { $tests = 18 }
 
-use Test::More tests => (1 + $tests + 1) + 3 + 3 + 3 + 5 + 4 + 3;
+use Test::More tests => (1 + $tests + 1) + 3 + 3 + 3 + 5 + 4 + 5;
 
 BEGIN { delete $ENV{PERL_INDIRECT_PM_DISABLE} }
 
@@ -168,6 +168,17 @@ my $err = indirect::TestRequired5::a0::error();
 like $err, qr/^Can't locate object method "new" via package "X"/,
            'identifying requires by their eval context pointer is not enough';
 
+{
+ my @w;
+ no indirect hook => sub { push @w, indirect::msg(@_) };
+ use indirect::TestRequired6;
+ indirect::TestRequired6::bar();
+ is_deeply \@w, [ ], 'indirect syntax in sub';
+ @w = ();
+ indirect::TestRequired6::baz();
+ is_deeply \@w, [ ], 'indirect syntax in eval in sub';
+}
+
 __DATA__
 my $a = new P1;
 
diff --git a/t/lib/indirect/TestRequired6.pm b/t/lib/indirect/TestRequired6.pm
new file mode 100644 (file)
index 0000000..c4f278e
--- /dev/null
@@ -0,0 +1,13 @@
+package indirect::TestRequired6;
+
+sub new { bless {} }
+
+sub bar {
+    my $foo = new indirect::TestRequired6;
+}
+
+sub baz {
+    eval q{my $foo = new indirect::TestRequired6};
+}
+
+1;