From 59f59f82d42e32980694ae7b8cd2b55384eb5918 Mon Sep 17 00:00:00 2001 From: nobu Date: Sat, 5 Jan 2019 11:35:24 +0000 Subject: [PATCH] parse.y: refine error messages * parse.y: refine error messages for tSYMBEG and tSTRING_BEG, which can appear at invalid places. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66722 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- parse.y | 4 +++- test/ruby/test_syntax.rb | 5 +++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/parse.y b/parse.y index cf00b60b72..bc1aa1f16c 100644 --- a/parse.y +++ b/parse.y @@ -900,7 +900,9 @@ static void token_info_warn(struct parser_params *p, const char *token, token_in %token tDSTAR "**arg" %token tAMPER "&" %token tLAMBDA "->" -%token tSYMBEG tSTRING_BEG tXSTRING_BEG tREGEXP_BEG tWORDS_BEG tQWORDS_BEG tSYMBOLS_BEG tQSYMBOLS_BEG +%token tSYMBEG "symbol literal" +%token tSTRING_BEG "string literal" +%token tXSTRING_BEG tREGEXP_BEG tWORDS_BEG tQWORDS_BEG tSYMBOLS_BEG tQSYMBOLS_BEG %token tSTRING_DBEG tSTRING_DEND tSTRING_DVAR tSTRING_END tLAMBEG tLABEL_END /* diff --git a/test/ruby/test_syntax.rb b/test/ruby/test_syntax.rb index 5534056327..8cbb05a449 100644 --- a/test/ruby/test_syntax.rb +++ b/test/ruby/test_syntax.rb @@ -905,6 +905,11 @@ eom assert_syntax_error(":#\n foo", /unexpected ':'/) end + def test_invalid_literal_message + assert_syntax_error("def :foo", /unexpected symbol literal/) + assert_syntax_error("def 'foo'", /unexpected string literal/) + end + def test_fluent_dot assert_valid_syntax("a\n.foo") assert_valid_syntax("a\n&.foo")