📚
Ruby 3.3.0 で後置 while の挙動が変わったというバグ報告
[Bug #20094] Inline while loop behavior changed unexpectedly in 3.3.0
- Ruby 3.3.0 で後置
while
の挙動が変わっているというバグ報告
(p 1) while false
# Ruby 3.2 => nothing
# Ruby 3.3 => 1
(p 1; p 2) while false
# Ruby 3.2 => nothing
# Ruby 3.3 => 1 2
- この問題は既に開発版の Ruby では修正済み
- 多分バックポートされているので多分 Ruby 3.3.1 では修正が取り込まれるはず
- ちなみに
while
の左辺をbegin end
にすることで意図的にdo ~ while
のような処理にすることは可能
begin
p 1
end while false
# Ruby 3.2 => 1
# Ruby 3.3 => 1
Discussion