summaryrefslogtreecommitdiff
path: root/parse.y
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2023-03-29 18:42:46 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2023-09-07 13:41:13 +0900
commitbd046764e31267c83e7ae515d9bc7f09ffaa5b95 (patch)
treef61fbddabeacd88d89de119629fd22c48c24dde4 /parse.y
parent05aaff2191cbe777d1efb915ab9652eeaa1c16b8 (diff)
[Bug #19549] Check for variables to be interpolated
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/7615
Diffstat (limited to 'parse.y')
-rw-r--r--parse.y18
1 files changed, 2 insertions, 16 deletions
diff --git a/parse.y b/parse.y
index 8b88b1b38d..277d313592 100644
--- a/parse.y
+++ b/parse.y
@@ -5432,24 +5432,10 @@ string_dend : tSTRING_DEND
| END_OF_INPUT
;
-string_dvar : tGVAR
+string_dvar : nonlocal_var
{
/*%%%*/
- $$ = NEW_GVAR($1, &@$);
- /*% %*/
- /*% ripper: var_ref!($1) %*/
- }
- | tIVAR
- {
- /*%%%*/
- $$ = NEW_IVAR($1, &@$);
- /*% %*/
- /*% ripper: var_ref!($1) %*/
- }
- | tCVAR
- {
- /*%%%*/
- $$ = NEW_CVAR($1, &@$);
+ if (!($$ = gettable(p, $1, &@$))) $$ = NEW_BEGIN(0, &@$);
/*% %*/
/*% ripper: var_ref!($1) %*/
}