👏

[Bug #20917] ネストしている begin の中で redo / next を呼び出した時のバグ報告

2024/11/19に公開

[Bug #20917] redo/next in nested begin block causes wrong order of execution

  • 次のようにネストしている begin の中で redo / next を呼び出した時に実行順が意図していないというバグ報告
for _ in [0]
  puts 0
  begin
    puts 1
    begin
      puts 2
      redo
    ensure
      puts 3
    end
  ensure
    puts 4
    break
  end
end
__END__
output:
0
1
2
3
4
3
4

expect:
0
1
2
3
4
  • redo を実行した時にどこのスコープに移動するのかがポイントなんですかね?
  • redofor in にかかっているのであればそこに飛んでいくのが意図している気がしますが
  • TruffleRuby や JRuby だと結果が 0 1 2 3 4 になるみたいですね
GitHubで編集を提案

Discussion