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
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.