+++ /dev/null
-#!perl
-
-use strict;
-use warnings;
-
-use blib 't/Sub-Op-LexicalSub';
-
-use Test::More tests => 13;
-
-use Devel::Peek;
-use B::Deparse;
-
-my $bd = B::Deparse->new;
-
-$bd->ambient_pragmas(
- strict => 'all',
- warnings => 'all',
-);
-
-{
- local $/ = "####\n";
- while (<DATA>) {
- chomp;
- s/\s*$//;
- my $code = $_;
-
- my $test = eval <<" TESTCASE";
- sub {
- use Sub::Op::LexicalSub f => sub { };
- use Sub::Op::LexicalSub g => sub { };
- $code
- }
- TESTCASE
- if ($@) {
- fail "unable to compile testcase: $@";
- next;
- }
- my $deparsed = $bd->coderef2text($test);
- $deparsed =~ s[BEGIN \s* \{ \s* \$\^H \s* \{ .*? \} .*? \} \s*][]gxs;
-
- my $expected = do {
- local *f = sub { };
- local *g = sub { };
- f(); g(); # silence 'once' warnings without setting the bits
- my $exp = eval <<" EXPECTED";
- sub {
- $code
- }
- EXPECTED
- if ($@) {
- fail "unable to compile expected code: $@";
- next;
- }
- $bd->coderef2text($exp);
- };
-
- is $deparsed, $expected, "deparsed <$code> is as expected";
- }
-}
-
-__DATA__
-f();
-####
-f;
-####
-f(1);
-####
-f 1;
-####
-f(1, 2);
-####
-f 1, 2;
-####
-f(1); g(2);
-####
-f 1, f(2), 3, g(4, f(g, 5), 6);
-####
-&f;
-####
-&f();
-####
-&f(1);
-####
-&f(1, 2);
-####
-my $x = \&f;