summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--parse.y2
-rw-r--r--test/ripper/test_sexp.rb8
2 files changed, 9 insertions, 1 deletions
diff --git a/parse.y b/parse.y
index b904797969..b56e33b4f6 100644
--- a/parse.y
+++ b/parse.y
@@ -3796,7 +3796,7 @@ sym : fname
| tCVAR
;
-dsym : tSYMBEG xstring_contents tSTRING_END
+dsym : tSYMBEG string_contents tSTRING_END
{
SET_LEX_STATE(EXPR_END);
/*%%%*/
diff --git a/test/ripper/test_sexp.rb b/test/ripper/test_sexp.rb
index 064c0f1536..d63464d5a7 100644
--- a/test/ripper/test_sexp.rb
+++ b/test/ripper/test_sexp.rb
@@ -132,4 +132,12 @@ eot
end
end
end
+
+ def test_dsym
+ bug15670 = '[ruby-core:91852]'
+ _, (_, _, s) = Ripper.sexp_raw(%q{:"sym"})
+ assert_equal([:dyna_symbol, [:string_add, [:string_content], [:@tstring_content, "sym", [1, 2]]]],
+ s,
+ bug15670)
+ end
end if ripper_test