10 my $brd = B::RecDeparse->new(level => -1);
18 [ e1 => 'foo()', '123' ],
19 [ e2 => 'foo(1)', '123' ],
20 [ e3 => 'foo(@_)', '123' ],
21 [ e4 => 'foo(shift)', '123' ],
23 [ n1 => 'bar()', 'bar' ],
24 [ n2 => 'bar(1)', 'bar' ],
25 [ n3 => 'bar(@_)', 'bar' ],
26 [ n4 => 'bar(shift)', 'bar' ],
28 [ d1 => 'baz()', 'baz' ],
29 [ d2 => 'baz(1)', 'baz' ],
30 [ d3 => 'baz(@_)', 'baz' ],
31 [ d4 => 'baz(shift)', 'baz' ],
33 [ c1 => '$coderef->()', 'coderef' ],
34 [ c2 => '$coderef->(1)', 'coderef' ],
35 [ c3 => '$coderef->(@_)', 'coderef' ],
36 [ c4 => '$coderef->(shift)', 'coderef' ],
38 [ m1 => '"pkg"->qux()', 'qux' ],
39 [ m2 => '"pkg"->qux(1)', 'qux' ],
40 [ m3 => '"pkg"->qux(@_)', 'qux' ],
41 [ m4 => '"pkg"->qux(shift)', 'qux' ],
42 [ m5 => '$pkg->qux()', 'qux' ],
43 [ m6 => '$pkg->qux(1)', 'qux' ],
44 [ m7 => '$pkg->qux(@_)', 'qux' ],
45 [ m8 => '$pkg->qux(shift)', 'qux' ],
46 [ m9 => 'shift->qux()', 'qux' ],
47 [ m10 => 'shift->qux(1)', 'qux' ],
48 [ m11 => 'shift->qux(@_)', 'qux' ],
49 [ m12 => 'shift->qux(shift)', 'qux' ],
52 if (eval 'use List::Util qw<sum>; 1') {
54 [ x1 => 'sum()', 'sum' ],
55 [ x2 => 'sum(1)', 'sum' ],
56 [ x3 => 'sum(@_)', 'sum' ],
57 [ x4 => 'sum(shift)', 'sum' ],
61 plan tests => 2 * @tests;
63 for my $test (@tests) {
64 my ($name, $source, $match) = @$test;
68 eval "sub { $source }";
71 my $res = eval { $brd->coderef2text($code) };
72 is $@, '', "deparsing sub $name doesn't croak";
73 $res = '' unless defined $res;
74 like $res, qr/\Q$match\E/, "deparsing sub $name works as expected";