From 6069e8fea50f06ceb2ed88112c2818e255d357bf Mon Sep 17 00:00:00 2001 From: ydah Date: Thu, 9 Jan 2025 14:30:36 +0900 Subject: [PATCH] Refactor for loop handling to simplify do keyword location assignment --- parse.y | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/parse.y b/parse.y index b30d344724..125740a9fc 100644 --- a/parse.y +++ b/parse.y @@ -4541,11 +4541,8 @@ primary : inline_primary /* {|*internal_id| = internal_id; ... } */ args = new_args(p, m, 0, id, 0, new_args_tail(p, 0, 0, 0, &@for_var), &@for_var); scope = NEW_SCOPE2(tbl, args, $compstmt, &@$); - if ($do == keyword_do_cond) { - $$ = NEW_FOR($5, scope, &@$, &@k_for, &@keyword_in, &@do, &@k_end); - } else { - $$ = NEW_FOR($5, scope, &@$, &@k_for, &@keyword_in, &NULL_LOC, &@k_end); - } + YYLTYPE do_keyword_loc = $do == keyword_do_cond ? @do : NULL_LOC; + $$ = NEW_FOR($5, scope, &@$, &@k_for, &@keyword_in, &do_keyword_loc, &@k_end); fixpos($$, $for_var); /*% ripper: for!($:for_var, $:expr_value, $:compstmt) %*/ }