Actions
Bug #16020
closedForbid `if` `elsif` without a condition
Status:
Rejected
Assignee:
-
Target version:
-
ruby -v:
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-linux]
Backport:
Description
Hello.
I might have missed something, but examples like:
if
puts "!!!!1"
elsif
puts "!!!!2"
elsif
puts "!!!!3"
else
puts "!!!!4"
end
# Output:
# !!!!1
# !!!!2
# !!!!3
# !!!!4
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
if false
puts "!!!!1"
elsif 1==2
puts "!!!!2"
elsif
puts "!!!!3"
else
puts "!!!!4"
end
is similar to
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.
Actions
Like0
Like0Like0Like0Like0Like0