
Issue #20747 has been updated by kddnewton (Kevin Newton). I have opened a PR to fix this: https://github.com/ruby/prism/pull/3073. ---------------------------------------- Bug #20747: [prism] regression in retry precedence https://bugs.ruby-lang.org/issues/20747#change-109810 * Author: byroot (Jean Boussier) * Status: Open * Assignee: kddnewton (Kevin Newton) * ruby -v: ruby 3.4.0dev (2024-09-15T01:06:11Z master 532af89e3b) +PRISM [arm64-darwin23] * Backport: 3.1: DONTNEED, 3.2: DONTNEED, 3.3: DONTNEED ---------------------------------------- Since prism has been made the default, our test suite now fail to boot with the following error: ```ruby syntax error found (SyntaxError) 298 | raise e 299 | else
300 | retry | ^~~~~ Invalid retry after else 301 | end 302 | end
Here's the code in question, that reproduce the error:
```ruby
def retry_thing(times: 1)
retries ||= 0
begin
yield
rescue RuntimeError => e
raise if (retries += 1) > times
begin
refresh!
rescue
raise e
else
retry
end
end
end