Deparse-subclass.t revision 1.1
1#!./perl
2
3# These tests are not necessarily normative, but until such time as we
4# publicise an API for subclassing B::Deparse they can prevent us from
5# gratuitously breaking conventions that CPAN modules already use.
6
7use Test::More tests => 2;
8
9use B::Deparse;
10
11package B::Deparse::NameMangler {
12  @ISA = "B::Deparse";
13  sub padname { SUPER::padname{@_} . '_groovy' }
14}
15
16my $nm = 'B::Deparse::NameMangler'->new;
17
18like  $nm->coderef2text(sub { my($a, $b, $c) }),
19      qr/\$a_groovy, \$b_groovy, \$c_groovy/,
20     'overriding padname works for renaming lexicals';
21
22like  $nm->coderef2text(sub { my $c; /(??{ $c })/; }),
23      qr/\Q(??{\E \$c_groovy/,
24     'overriding padname works for renaming lexicals in regexp blocks';
25