File tree Expand file tree Collapse file tree 3 files changed +43
-2
lines changed Expand file tree Collapse file tree 3 files changed +43
-2
lines changed Original file line number Diff line number Diff line change @@ -766,15 +766,15 @@ sub _is_used_fully_qualified {
766766 )
767767 )
768768 || ( $_ [1]-> isa(' PPI::Token::Symbol' )
769- && $_ [1] =~ m {\A [*\$\@\% ]+${module_name} ::[a-zA-Z0-9_]} );
769+ && $_ [1] =~ m {\A [& *\$\@\% ]+${module_name} ::[a-zA-Z0-9_]} );
770770 }
771771 );
772772
773773 # We could combine the regexes, but this is easy to read.
774774 for my $key ( keys %{ $self -> interpolated_symbols } ) {
775775
776776 # package level variable
777- return 1 if $key =~ m {\A [*\$\@\% ]+${module_name} ::[a-zA-Z0-9_]+\z } ;
777+ return 1 if $key =~ m {\A [& *\$\@\% ]+${module_name} ::[a-zA-Z0-9_]+\z } ;
778778
779779 # function
780780 return 1 if $key =~ m /\A ${module_name} ::[a-zA-Z0-9_] +\z / ;
Original file line number Diff line number Diff line change 1+ use strict;
2+ use warnings;
3+
4+ use lib ' t/lib' , ' test-data/lib' ;
5+
6+ use Test::Differences qw( eq_or_diff ) ;
7+ use TestHelper qw( doc ) ;
8+ use Test::More import => [qw( diag done_testing ok ) ];
9+ use Test::Needs qw( Cpanel::JSON::XS ) ;
10+
11+ my ( $doc , $log ) = doc(
12+ filename => ' test-data/function-reference.pl' ,
13+ preserve_unused => 0,
14+ );
15+
16+ ok(
17+ $doc -> _is_used_fully_qualified(' Cpanel::JSON::XS' ),
18+ ' find Cpanel::JSON::XS via function reference'
19+ );
20+
21+ my $expected = <<'EOF' ;
22+ use strict;
23+ use warnings;
24+
25+ use Cpanel::JSON::XS ();
26+
27+ my $true_ref = \&Cpanel::JSON::XS::true;
28+ my $false_ref = \&Cpanel::JSON::XS::false;
29+ EOF
30+
31+ eq_or_diff( $doc -> tidied_document, $expected , ' function reference keeps module' )
32+ || do { require Data::Dumper; diag Data::Dumper::Dumper($log ); };
33+
34+ done_testing;
Original file line number Diff line number Diff line change 1+ use strict;
2+ use warnings;
3+
4+ use Cpanel::JSON::XS;
5+
6+ my $true_ref = \&Cpanel::JSON::XS::true;
7+ my $false_ref = \&Cpanel::JSON::XS::false;
You can’t perform that action at this time.
0 commit comments