📝

[Bug #20785] 1行in + and, or, rescue を結合したときの不具合報告

2024/10/05に公開

[Bug #20785] Should a in b, and c a in b, or c a in b, rescue c be syntax ok?

  • 以下のコードは parse.y だと有効なコードだが prism では動作しない
tap do
  a in b, and c
  a in b, or c
  a in b, rescue c
end
  • これは parse.y だと以下のように解釈されるらしい
tap do
  (a in b,;) and c
  (a in b,;) or c
  a in b,;
rescue c
end
  • これを parse.y に合わせるか prisim に合わせるのか、というチケット
  • なにが正しいかよくわからないんですが何が正しいんですかね……
  • a in b 自体は1行 in で , and c を含むとどうなるのか…?
  • in を右代入 = 代入式、と捉えると以下のコードになるんですが、これはエラーになるんですよねー
a = b, and c
  • 報告者の方は『以下のコードは prism に合わせてエラーになる』 ( parse.y は受け入れる)
a in b, and c

a in b,
  and c

tap do
  a in b, rescue c
end
  • 以下のコードは『 parse.y に合わせて受け入れる』( prism はエラーになる)
tap do
  a in b,
end

tap do
  a in b,
rescue
end
GitHubで編集を提案

Discussion