[ruby-core:123273] [Ruby Bug#21313] `it` in rescue/ensure on prism
From:
"rwstauner (Randy Stauner) via ruby-core" <ruby-core@...>
Date:
2025-09-16 20:35:01 UTC
List:
ruby-core #123273
Issue #21313 has been updated by rwstauner (Randy Stauner).
I created a backport PR with this fix to 3.4 as https://github.com/ruby/ruby/pull/14573
----------------------------------------
Bug #21313: `it` in rescue/ensure on prism
https://bugs.ruby-lang.org/issues/21313#change-114638
* Author: ko1 (Koichi Sasada)
* Status: Closed
* Assignee: prism
* ruby -v: "ruby 3.4.1 (2024-12-25 revision 48d4efcb85) +PRISM [wasm32-wasi]"
* Backport: 3.2: UNKNOWN, 3.3: UNKNOWN, 3.4: UNKNOWN
----------------------------------------
```ruby
1.times do
raise
rescue
p it
#=> prism: false
#=> parse.y: 0
end
```
`it` should return 0, shouldn't it?
demo:
parse.y: https://ruby.github.io/play-ruby/?code=p+RUBY_DESCRIPTION%0A%0A1.times+do%0A++raise%0Arescue%0A++p+it%0Aend%0A&options=%7B%22arguments%22%3A%5B%22--parser%3Dparse.y%22%5D%2C%22env%22%3A%7B%7D%7D
prism: https://ruby.github.io/play-ruby/?code=p+RUBY_DESCRIPTION%0A%0A1.times+do%0A++raise%0Arescue%0A++p+it%0Aend%0A&options=%7B%22arguments%22%3A%5B%5D%2C%22env%22%3A%7B%7D%7D
Same on `ensure`.
```ruby
1.times do
raise
ensure
p it #=> prism: false
#=> parse.y: 0
end
```
```ruby
1.times do
begin
raise
ensure
p it #=> prism: false
#=> parse.y: 0
end
end
```
--
https://bugs.ruby-lang.org/
______________________________________________
ruby-core mailing list -- ruby-core@ml.ruby-lang.org
To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/