xref: /openbsd-src/gnu/usr.bin/perl/lib/B/Deparse-subclass.t (revision 3d61058aa5c692477b6d18acfbbdb653a9930ff9)
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 warnings;
8use strict;
9use Test::More;
10
11use B::Deparse;
12
13package B::Deparse::NameMangler {
14  our @ISA = "B::Deparse";
15  sub padname { SUPER::padname{@_} . '_groovy' }
16}
17
18my $nm = 'B::Deparse::NameMangler'->new;
19
20like  $nm->coderef2text(sub { my($a, $b, $c) }),
21      qr/\$a_groovy, \$b_groovy, \$c_groovy/,
22     'overriding padname works for renaming lexicals';
23
24like  $nm->coderef2text(sub { my $c; /(??{ $c })/; }),
25      qr/\Q(??{\E \$c_groovy/,
26     'overriding padname works for renaming lexicals in regexp blocks';
27
28done_testing();
29