]> git.donarmstrong.com Git - perltidy.git/commitdiff
fix b1449
authorSteve Hancock <perltidy@users.sourceforge.net>
Fri, 3 Feb 2023 21:53:25 +0000 (13:53 -0800)
committerSteve Hancock <perltidy@users.sourceforge.net>
Fri, 3 Feb 2023 21:53:25 +0000 (13:53 -0800)
dev-bin/run_convergence_tests.pl.data
dev-bin/run_convergence_tests.pl.expect
lib/Perl/Tidy/Formatter.pm

index 4cf3b29b27e4ccb2513fc7c2b2ea1627263585e4..8e13eeacd7a7ea2bcb92e74c67fb6e79a9289fce 100644 (file)
@@ -11425,6 +11425,22 @@ $last = after (
 --indent-columns=7
 --paren-vertical-tightness-closing=1
 
+==> b1449.in <==
+    return wantarray
+      ? map $_->(),
+      @data
+      : ( defined(wantarray) ? sub { $_[0] } : sub { print $_[0] } )
+      ->( join( "\n", map $_->(), @data ) . "\n" );
+
+    return wantarray
+      ? map $_->(), @data
+      : ( defined(wantarray) ? sub { $_[0] } : sub { print $_[0] } )
+      ->( join( "\n", map $_->(), @data ) . "\n" );
+
+
+==> b1449.par <==
+--nobreak-at-old-ternary-breakpoints
+
 ==> b146.in <==
 # State 1
 
index 74d83d00024cc03fc7feb891c24dad0f7c1ca35b..c5544c99c02e4356776281d653dbfa3a9a8d2d1e 100644 (file)
@@ -7750,6 +7750,20 @@ $last = after (
                 );
 
 
+==> b1449 <==
+    return wantarray
+      ? map $_->(),
+      @data
+      : ( defined(wantarray) ? sub { $_[0] } : sub { print $_[0] } )
+      ->( join( "\n", map $_->(), @data ) . "\n" );
+
+    return wantarray
+      ? map $_->(),
+      @data
+      : ( defined(wantarray) ? sub { $_[0] } : sub { print $_[0] } )
+      ->( join( "\n", map $_->(), @data ) . "\n" );
+
+
 ==> b146 <==
 # State 1
 
index bfc8818a2b9a917a72d38dde0b2a930866715591..ee11a84f71adc5091e2c276500200f7fa3f20a23 100644 (file)
@@ -21282,7 +21282,22 @@ EOM
                     # Switched from excluded to included for b1214. If necessary
                     # the token could also be checked if type_m eq 'k'
                     if ( $is_uncontained_comma_break_included_type{$type_m} ) {
-                        $self->set_forced_breakpoint($ibreak);
+
+                        # Rule added to fix b1449:
+                        # Do not break before a '?' if -nbot is set
+                        # Otherwise, we may alternately arrive here and
+                        # set the break, or not, depending on the input.
+                        my $no_break;
+                        my $ibreak_p = $inext_to_go[$ibreak_m];
+                        if (  !$rOpts_break_at_old_ternary_breakpoints
+                            && $ibreak_p <= $max_index_to_go )
+                        {
+                            my $type_p = $types_to_go[$ibreak_p];
+                            $no_break = $type_p eq '?';
+                        }
+
+                        $self->set_forced_breakpoint($ibreak)
+                          if ( !$no_break );
                     }
                 }
             }