]> git.vpit.fr Git - perl/modules/indirect.git/blobdiff - t/21-bad.t
Handle indirect calls on blocks
[perl/modules/indirect.git] / t / 21-bad.t
index 9f8f3ff0de6a5da8c40f90b81dbde18e7c6dcbdf..eea745eb863c64e8301c610f528aeabc740e1549 100644 (file)
@@ -11,8 +11,8 @@ use warnings;
 
 my ($tests, $reports);
 BEGIN {
- $tests   = 52;
- $reports = 53;
+ $tests   = 60;
+ $reports = 68;
 }
 
 use Test::More tests => 3 * (4 * $tests + $reports) + 2;
@@ -27,10 +27,11 @@ sub expect {
 
  map {
   my ($meth, $obj, $file, $line) = @$_;
-  $_    = quotemeta      for $meth, $obj;
+  $meth = quotemeta $meth;
+  $obj  = ($obj =~ /^\s*\{/) ? "a block" : "object \"\Q$obj\E\"";
   $file = '\(eval \d+\)' unless defined $file;
   $line = '\d+'          unless defined $line;
-  qr/^Indirect call of method "$meth" on object "$obj" at $file line $line/
+  qr/^Indirect call of method "$meth" on $obj at $file line $line/
  } eval $expected;
 }
 
@@ -354,3 +355,40 @@ new Hlagh (meh $x)
 Hlagh->new(meh $x)
 ----
 [ 'meh', '$x' ]
+####
+meh { };
+----
+[ 'meh', '{' ]
+####
+meh {
+ 1;
+};
+----
+[ 'meh', '{' ]
+####
+meh {
+ 1;
+ 1;
+};
+----
+[ 'meh', '{' ]
+####
+meh { new Hlagh; 1; };
+----
+[ 'new', 'Hlagh' ], [ 'meh', '{' ]
+####
+meh { feh $x; 1; };
+----
+[ 'feh', '$x' ], [ 'meh', '{' ]
+####
+meh { feh $x; use indirect; new Hlagh; 1; };
+----
+[ 'feh', '$x' ], [ 'meh', '{' ]
+####
+meh { feh $y; 1; };
+----
+[ 'feh', '$y' ], [ 'meh', '{' ]
+####
+meh { feh $x; 1; } new Hlagh, feh $y;
+----
+[ 'feh', '$x' ], [ 'new', 'Hlagh' ], [ 'feh', '$y' ], [ 'meh', '{' ]