Actions
Bug #20747
closed[prism] regression in retry precedence
    Bug #20747:
    [prism] regression in retry precedence
  
ruby -v:
ruby 3.4.0dev (2024-09-15T01:06:11Z master 532af89e3b) +PRISM [arm64-darwin23]
Description
Since prism has been made the default, our test suite now fail to boot with the following error:
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:
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
  
        
          
          Updated by byroot (Jean Boussier) about 1 year ago
          
          
        
        
      
      - Backport changed from 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN to 3.1: DONTNEED, 3.2: DONTNEED, 3.3: DONTNEED
 
        
          
          Updated by kddnewton (Kevin Newton) about 1 year ago
          
          
        
        
      
      I have opened a PR to fix this: https://github.com/ruby/prism/pull/3073.
        
          
          Updated by kddnewton (Kevin Newton) about 1 year ago
          
          
        
        
      
      - Status changed from Open to Closed
 
Actions