This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
add some more tests for PL_cv_has_eval
authorDavid Mitchell <davem@iabyn.com>
Sun, 1 Apr 2012 10:37:33 +0000 (11:37 +0100)
committerDavid Mitchell <davem@iabyn.com>
Wed, 13 Jun 2012 12:32:50 +0000 (13:32 +0100)
In particular, the use re 'eval' case wasn't tested for

t/op/closure.t

index 7846b37..322b592 100644 (file)
@@ -683,4 +683,23 @@ BEGIN {
   is($blonk_was_called, 1, 'RT #63540');
 }
 
+# test PL_cv_has_eval.  Any anon sub that could conceivably contain an
+# eval, should be marked as cloneable
+
+{
+
+    my @s;
+    push @s, sub {  eval '1' } for 1,2;
+    isnt($s[0], $s[1], "cloneable with eval");
+    @s = ();
+    push @s, sub { use re 'eval'; my $x; s/$x/1/; } for 1,2;
+    isnt($s[0], $s[1], "cloneable with use re eval");
+    @s = ();
+    push @s, sub { s/1/1/ee; } for 1,2;
+    isnt($s[0], $s[1], "cloneable with //ee");
+}
+
+
+
+
 done_testing();