Bug #16020
Updated by bogdanvlviv (Bogdan Denkovych) over 5 years ago
Hello. I might have missed something, but examples like: ```ruby if puts "!!!!1" elsif puts "!!!!2" elsif puts "!!!!3" else puts "!!!!4" end # Output: # !!!!1 # !!!!2 # !!!!3 # !!!!4 ``` ```ruby if false puts "!!!!1" elsif 1==2 puts "!!!!2" elsif puts "!!!!3" else puts "!!!!4" end # Output: # !!!!3 # !!!!4 ``` are confusing. We probably should raise `SyntaxError` in the case when `if`/`elsif` is being used without any condition. What do you think about it? Original source: https://twitter.com/bogdanvlviv/status/1154356514628493313 Edited: https://twitter.com/mamantoha/status/1154369189647454213 helped me to figure out that The code like ```ruby if false puts "!!!!1" elsif 1==2 puts "!!!!2" elsif puts "!!!!3" else puts "!!!!4" end ``` is similar to ```ruby if false puts "!!!!1" elsif 1==2 puts "!!!!2" elsif (puts "!!!!3") else (puts "!!!!4") end ``` Probably Ruby should be more strict in those cases because such code is more prone to bugs.