From: Steve Hancock Date: Mon, 4 Oct 2021 23:55:08 +0000 (-0700) Subject: improve error diagnostics X-Git-Tag: 20211029~37 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=b36c6226618a55ef145bd9afc128ccef6a476bd9;p=perltidy.git improve error diagnostics --- diff --git a/dev-bin/perltidy_random_setup.pl b/dev-bin/perltidy_random_setup.pl index 7a343760..d3696fc8 100755 --- a/dev-bin/perltidy_random_setup.pl +++ b/dev-bin/perltidy_random_setup.pl @@ -21,7 +21,7 @@ our $rsetup; # the setup hash my $config_file = "config.txt"; my $FILES_file = "FILES.txt"; my $PROFILES_file = "PROFILES.txt"; -my $perltidy = ""; +my $perltidy = "./perltidy.pl"; my $rfiles = []; my $rprofiles = []; diff --git a/lib/Perl/Tidy/Formatter.pm b/lib/Perl/Tidy/Formatter.pm index df8f477a..8c839601 100644 --- a/lib/Perl/Tidy/Formatter.pm +++ b/lib/Perl/Tidy/Formatter.pm @@ -4654,12 +4654,16 @@ sub make_closing_side_comment_prefix { if ( bad_pattern($test_csc_prefix_pattern) ) { # shouldn't happen..must have screwed up escaping, above - report_definite_bug(); - Warn( -"Program Error: the -cscp prefix '$csc_prefix' caused the invalid regex '$csc_prefix_pattern'\n" - ); + if (DEVEL_MODE) { + Fault(< $i_last_line = max index of last line This batch has max index = $max_index_to_go, EOM - report_definite_bug(); # old coding, will not get here $nline = $#{$ri_last}; } $rindentation_list->[0] = - $nline; # save line number to start looking next call + $nline; # save line number to start looking next call my $ibeg = $ri_start->[$nline]; my $offset = token_sequence_length( $ibeg, $i_opening ) - 1; my $is_leading = ( $ibeg == $i_opening ); @@ -13849,10 +13852,11 @@ sub pad_array_to_go { # not be possible to get here unless the code has a bracing error # which leaves a closing brace with zero nesting depth. unless ( get_saw_brace_error() ) { - warning( -"Program bug in pad_array_to_go: hit nesting error which should have been caught\n" - ); - report_definite_bug(); + if (DEVEL_MODE) { + Fault(<= @{$ri_last} ) { - warning( -"Non-fatal program bug: couldn't set break at $i_break_left\n" - ); - report_definite_bug(); + if (DEVEL_MODE) { + Fault(<[$line_number]; @@ -17041,10 +17046,11 @@ sub set_continuation_breaks { # formatting. if ( $type eq '#' ) { if ( $i != $max_index_to_go ) { - warning( -"Non-fatal program bug: backup logic required to break after a comment\n" - ); - report_definite_bug(); + if (DEVEL_MODE) { + Fault(<set_forced_breakpoint($i); } ## end if ( $i != $max_index_to_go) @@ -19441,12 +19447,16 @@ sub get_available_spaces_to_go { if ( $gnu_sequence_number != $seqno || $i > $max_gnu_item_index ) { + if (DEVEL_MODE) { + Fault(<get_ci_level(); my $old_level = $gnu_item_list[$i]->get_level(); my $old_ci_level = $gnu_item_list[$i]->get_ci_level(); + if (DEVEL_MODE) { + Fault(<warning("To save a full .LOG file rerun with -g\n"); } } - $self->ask_user_for_bug_report( $infile_syntax_ok, $formatter ); + + # deactivated - prefer Fault reports in DEVEL_MODE during random testing + ##$self->ask_user_for_bug_report( $infile_syntax_ok, $formatter ); if ($save_logfile) { my $log_file = $self->{_log_file}; diff --git a/lib/Perl/Tidy/Tokenizer.pm b/lib/Perl/Tidy/Tokenizer.pm index 164d9454..b604e1bb 100644 --- a/lib/Perl/Tidy/Tokenizer.pm +++ b/lib/Perl/Tidy/Tokenizer.pm @@ -3022,7 +3022,13 @@ EOM elsif ( $expecting == TERM ) { unless ($saw_error) { - # shouldn't happen.. + # shouldn't happen..arriving here implies an error in + # the logic in sub 'find_here_doc' + if (DEVEL_MODE) { + Fault(<