Skip to content

Commit 26f1b7f

Browse files
committed
Unit tests for B::Deparse coderef2text on signatured sub with signatures feature enabled
1 parent 1f881ae commit 26f1b7f

File tree

1 file changed

+24
-1
lines changed

1 file changed

+24
-1
lines changed

lib/B/Deparse.t

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ BEGIN {
1313
use warnings;
1414
use strict;
1515

16-
my $tests = 53; # not counting those in the __DATA__ section
16+
my $tests = 55; # not counting those in the __DATA__ section
1717

1818
use B::Deparse;
1919
my $deparse = B::Deparse->new();
@@ -566,6 +566,29 @@ EOF
566566
qr/ +method m \(\) \{\n +\$x\+\+;\n +\}/,
567567
"feature class method deparses as method";
568568

569+
# GH#23699
570+
{
571+
my $signatured_sub = do {
572+
use feature qw( signatures );
573+
sub ($x, $y) { return $x + $y; }
574+
};
575+
576+
{
577+
use feature qw( signatures );
578+
$deparse->ambient_pragmas_from_caller;
579+
my $deparsed = $deparse->coderef2text( $signatured_sub );
580+
like $deparsed, qr/^\(\$x, \$y\) \{/,
581+
'Deparsed signatured sub under use feature qw( signatures )';
582+
}
583+
584+
{
585+
use v5.36;
586+
$deparse->ambient_pragmas_from_caller;
587+
my $deparsed = $deparse->coderef2text( $signatured_sub );
588+
like $deparsed, qr/^\(\$x, \$y\) \{/,
589+
'Deparsed signatured sub under use v5.36';
590+
}
591+
}
569592

570593
done_testing($tests);
571594

0 commit comments

Comments
 (0)