From fe746747b49efb310989792681e171559581920c Mon Sep 17 00:00:00 2001 From: TSUYUSATO Kitsune Date: Tue, 14 Nov 2023 17:15:37 +0900 Subject: [PATCH] Reject 'class << (return); end` by "void value expression" --- parse.y | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/parse.y b/parse.y index caddbcc178..94eb6f3e5a 100644 --- a/parse.y +++ b/parse.y @@ -4124,7 +4124,7 @@ primary : literal p->ctxt.in_class = $k_class.in_class; p->ctxt.shareable_constant_value = $k_class.shareable_constant_value; } - | k_class tLSHFT expr + | k_class tLSHFT expr_value { begin_definition("", &@k_class, &@tLSHFT); } @@ -4133,12 +4133,12 @@ primary : literal k_end { /*%%%*/ - $$ = NEW_SCLASS($expr, $bodystmt, &@$); + $$ = NEW_SCLASS($expr_value, $bodystmt, &@$); nd_set_line(RNODE_SCLASS($$)->nd_body, @k_end.end_pos.lineno); - set_line_body($bodystmt, nd_line($expr)); - fixpos($$, $expr); + set_line_body($bodystmt, nd_line($expr_value)); + fixpos($$, $expr_value); /*% %*/ - /*% ripper: sclass!($expr, $bodystmt) %*/ + /*% ripper: sclass!($expr_value, $bodystmt) %*/ local_pop(p); p->ctxt.in_def = $k_class.in_def; p->ctxt.in_class = $k_class.in_class;