From dad70fa6a85990f61ec76a62456fde153e093af4 Mon Sep 17 00:00:00 2001 From: usa Date: Tue, 2 Mar 2021 11:21:10 +0000 Subject: merge revision(s) 263b9413: [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. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_6@67906 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- parse.y | 9 +++++---- test/ripper/test_parser_events.rb | 6 ++++++ version.h | 6 +++--- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/parse.y b/parse.y index 3338dcdaea..5d16920c20 100644 --- a/parse.y +++ b/parse.y @@ -8314,16 +8314,17 @@ yylex(YYSTYPE *lval, YYLTYPE *yylloc, struct parser_params *p) p->lval = lval; lval->val = Qundef; t = parser_yylex(p); - if (has_delayed_token(p)) - dispatch_delayed_token(p, t); - else if (t != 0) - dispatch_scan_event(p, t); if (p->lex.strterm && (p->lex.strterm->flags & STRTERM_HEREDOC)) RUBY_SET_YYLLOC_FROM_STRTERM_HEREDOC(*yylloc); else RUBY_SET_YYLLOC(*yylloc); + if (has_delayed_token(p)) + dispatch_delayed_token(p, t); + else if (t != 0) + dispatch_scan_event(p, t); + return t; } diff --git a/test/ripper/test_parser_events.rb b/test/ripper/test_parser_events.rb index 95ec661fcf..1f2f960020 100644 --- a/test/ripper/test_parser_events.rb +++ b/test/ripper/test_parser_events.rb @@ -1498,4 +1498,10 @@ class TestRipper::ParserEvents < Test::Unit::TestCase assert_warn("") {fmt, = warn("\r;")} assert_match(/encountered/, fmt) end + + def test_warn_mismatched_indentations + fmt, tokend, tokbeg, line = assert_warning("") {break warn("if true\n end\n")} + assert_match(/mismatched indentations/, fmt) + assert_equal(["if", "end", 1], [tokbeg, tokend, line]) + end end if ripper_test diff --git a/version.h b/version.h index 3b1240218c..2409c2bc7d 100644 --- a/version.h +++ b/version.h @@ -1,10 +1,10 @@ #define RUBY_VERSION "2.6.7" -#define RUBY_RELEASE_DATE "2021-03-01" -#define RUBY_PATCHLEVEL 165 +#define RUBY_RELEASE_DATE "2021-03-02" +#define RUBY_PATCHLEVEL 166 #define RUBY_RELEASE_YEAR 2021 #define RUBY_RELEASE_MONTH 3 -#define RUBY_RELEASE_DAY 1 +#define RUBY_RELEASE_DAY 2 #include "ruby/version.h" -- cgit v1.2.3