From 9ad1f03f5e043c1414f4c8e1a0a1cdf99236ec5a Mon Sep 17 00:00:00 2001 From: Steve Hancock Date: Thu, 31 Oct 2024 08:25:44 -0700 Subject: [PATCH] fix b1498 --- dev-bin/run_convergence_tests.pl.data | 12 ++++++++++++ dev-bin/run_convergence_tests.pl.expect | 10 ++++++++++ lib/Perl/Tidy.pm | 2 +- lib/Perl/Tidy/Formatter.pm | 16 +++++++++++----- 4 files changed, 34 insertions(+), 6 deletions(-) diff --git a/dev-bin/run_convergence_tests.pl.data b/dev-bin/run_convergence_tests.pl.data index 5634792d..d335f8d4 100644 --- a/dev-bin/run_convergence_tests.pl.data +++ b/dev-bin/run_convergence_tests.pl.data @@ -12441,6 +12441,18 @@ a b c d e ); --break-at-trailing-comma-types='i' --qw-as-function +==> b1498.in <== + $c->addtag( 'active', 'withtag', + ruler_make_tab( $c, $x, $y, $rinfo ), ); + $c->addtag( 'active', 'withtag', + ruler_make_tab( $c, $x, $y, $rinfo ), + ); + +==> b1498.par <== +--maximum-line-length=61 +--line-up-parentheses +--break-at-trailing-comma-types='b' + ==> b156.in <== # State 1 { diff --git a/dev-bin/run_convergence_tests.pl.expect b/dev-bin/run_convergence_tests.pl.expect index 77985863..81dd7c69 100644 --- a/dev-bin/run_convergence_tests.pl.expect +++ b/dev-bin/run_convergence_tests.pl.expect @@ -8406,6 +8406,16 @@ my @abc = qw( a b c d e ); +==> b1498 <== + $c->addtag( + 'active', 'withtag', + ruler_make_tab( $c, $x, $y, $rinfo ), + ); + $c->addtag( + 'active', 'withtag', + ruler_make_tab( $c, $x, $y, $rinfo ), + ); + ==> b156 <== # State 1 { diff --git a/lib/Perl/Tidy.pm b/lib/Perl/Tidy.pm index 8a86f925..8d5605bc 100644 --- a/lib/Perl/Tidy.pm +++ b/lib/Perl/Tidy.pm @@ -2722,7 +2722,7 @@ EOM } ## end sub process_filter_layer # For safety, set an upper bound on number of iterations before stopping. -# The average number of iterations is 2. No known cases exceed 3. +# The average number of iterations is 2. No known cases exceed 4. use constant ITERATION_LIMIT => 6; sub process_iteration_layer { diff --git a/lib/Perl/Tidy/Formatter.pm b/lib/Perl/Tidy/Formatter.pm index 40902a4b..43d7b8b9 100644 --- a/lib/Perl/Tidy/Formatter.pm +++ b/lib/Perl/Tidy/Formatter.pm @@ -39272,17 +39272,23 @@ sub set_vertical_tightness_flags { # token .. and be sure this line does not have a side comment #-------------------------------------------------------------- my $token_next = $tokens_to_go[$ibeg_next]; - if ( $type_sequence_to_go[$ibeg_next] + if ( + $type_sequence_to_go[$ibeg_next] && !$block_type_to_go[$ibeg_next] && $is_closing_token{$token_next} - && $types_to_go[$iend] ne '#' ) # for safety, shouldn't happen! + && !$self->[_rbreak_container_] + ->{ $type_sequence_to_go[$ibeg_next] } # b1498 + && $types_to_go[$iend] ne '#' + ) # for safety, shouldn't happen! { - my $cvt = $closing_vertical_tightness{$token_next}; + my $cvt = $closing_vertical_tightness{$token_next}; + my $seqno = $type_sequence_to_go[$ibeg_next]; # Avoid conflict of -bom and -pvt=1 or -pvt=2, fixes b977, b1303 # See similar patch above for $ovt. - my $seqno = $type_sequence_to_go[$ibeg_next]; - if ( $cvt && $self->[_rbreak_container_]->{$seqno} ) { + # NOTE: this is overriden by fix for b1498 above and can + # eventually be removed. + if ( 0 && $cvt && $self->[_rbreak_container_]->{$seqno} ) { $cvt = 0; } -- 2.39.5