Project

General

Profile

Bug #21540

Updated by Earlopain (Earlopain _) 4 days ago

Code such as `foo && return bar` has been disallowed in ruby since at least Ruby 2.0. Prism allows it though: 

 ``` 
 $ ruby -cve "a && return foo" 
 ruby 3.5.0dev (2025-08-08T02:57:23Z master 3ad26d0501) +PRISM [x86_64-linux] 
 Syntax OK 

 $ ruby --parser=parse.y -cve "a && return foo" 
 ruby 3.5.0dev (2025-08-08T02:57:23Z master 3ad26d0501) [x86_64-linux] 
 -e:1: syntax error, unexpected local variable or method, expecting end-of-input 
 a && return foo 
 ruby: compile error (SyntaxError) 
 ``` 

 The code seems to behave like I'd expect it to and I wouldn't mind it being accepted but it is inconsistent. Also happens on Ruby 3.4

Back