🦁

[Bug #21608] 三項演算子で break を使用すると Ruby 3.4.6 からシンタックスエラーになるバグ報告

に公開

[Bug #21608] 三項演算子と break を組み合わせると SyntaxError

  • 次のように三項演算子で break を使用した場合に Ruby 3.4.6 からシンタックスエラーになるというバグ報告
    • Ruby 3.4.5 では問題ない
$ RBENV_VERSION=3.4.5 ruby -ve "p [1, 2].find {|i| i.even? ? break i : nil }"
ruby 3.4.5 (2025-07-16 revision 20cda200d3) +PRISM [x86_64-linux]
2
$ RBENV_VERSION=3.4.6 ruby -ve "p [1, 2].find {|i| i.even? ? break i : nil }"
ruby 3.4.6 (2025-09-16 revision dbd83256b1) +PRISM [x86_64-linux]
-e: -e:1: syntax error found (SyntaxError)
> 1 | ... i : nil }
    |     ^ unexpected local variable or method, expecting end-of-input
$ RBENV_VERSION=3.4.6 ruby -ve "p [1, 2].find {|i| i.even? ? (break i) : nil }"
ruby 3.4.6 (2025-09-16 revision dbd83256b1) +PRISM [x86_64-linux]
2
GitHubで編集を提案

Discussion