Skip to content

Commit d8a32b1

Browse files
committed
merge revision(s) 263b941: [Backport #16981]
[ripper] fix mismatched indentations warning [Bug #16981] The scanner location has to be set from `lex.ptok` before it is flushed by dispatching the scanner event.
1 parent 3c55d93 commit d8a32b1

File tree

3 files changed

+13
-6
lines changed

3 files changed

+13
-6
lines changed

parse.y

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9495,16 +9495,17 @@ yylex(YYSTYPE *lval, YYLTYPE *yylloc, struct parser_params *p)
94959495
p->lval = lval;
94969496
lval->val = Qundef;
94979497
t = parser_yylex(p);
9498-
if (has_delayed_token(p))
9499-
dispatch_delayed_token(p, t);
9500-
else if (t != 0)
9501-
dispatch_scan_event(p, t);
95029498

95039499
if (p->lex.strterm && (p->lex.strterm->flags & STRTERM_HEREDOC))
95049500
RUBY_SET_YYLLOC_FROM_STRTERM_HEREDOC(*yylloc);
95059501
else
95069502
RUBY_SET_YYLLOC(*yylloc);
95079503

9504+
if (has_delayed_token(p))
9505+
dispatch_delayed_token(p, t);
9506+
else if (t != 0)
9507+
dispatch_scan_event(p, t);
9508+
95089509
return t;
95099510
}
95109511

test/ripper/test_parser_events.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1535,6 +1535,12 @@ def test_warn_cr_in_middle
15351535
assert_match(/encountered/, fmt)
15361536
end
15371537

1538+
def test_warn_mismatched_indentations
1539+
fmt, tokend, tokbeg, line = assert_warning("") {break warn("if true\n end\n")}
1540+
assert_match(/mismatched indentations/, fmt)
1541+
assert_equal(["if", "end", 1], [tokbeg, tokend, line])
1542+
end
1543+
15381544
def test_in
15391545
thru_in = false
15401546
parse('case 0; in 0; end', :on_in) {thru_in = true}

version.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22
# define RUBY_VERSION_MINOR RUBY_API_VERSION_MINOR
33
#define RUBY_VERSION_TEENY 1
44
#define RUBY_RELEASE_DATE RUBY_RELEASE_YEAR_STR"-"RUBY_RELEASE_MONTH_STR"-"RUBY_RELEASE_DAY_STR
5-
#define RUBY_PATCHLEVEL 85
5+
#define RUBY_PATCHLEVEL 86
66

77
#define RUBY_RELEASE_YEAR 2020
88
#define RUBY_RELEASE_MONTH 6
9-
#define RUBY_RELEASE_DAY 13
9+
#define RUBY_RELEASE_DAY 27
1010

1111
#include "ruby/version.h"
1212

0 commit comments

Comments
 (0)