📝
[Bug #20785] 1行in + and, or, rescue を結合したときの不具合報告
[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
- ことを提案していますね
- この提案を受け入れることになりそうなんですが Ruby むずかしい
Discussion