Project

General

Profile

Actions

Bug #16020

closed

Forbid `if` `elsif` without a condition

Bug #16020: Forbid `if` `elsif` without a condition

Added by bogdanvlviv (Bogdan Denkovych) about 6 years ago. Updated about 6 years ago.

Status:
Rejected
Assignee:
-
Target version:
-
ruby -v:
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-linux]
[ruby-core:93908]

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.

Updated by bogdanvlviv (Bogdan Denkovych) about 6 years ago Actions #1

  • ruby -v changed from ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-linux to ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-linux]

Updated by bogdanvlviv (Bogdan Denkovych) about 6 years ago Actions #2

  • Description updated (diff)

Updated by bogdanvlviv (Bogdan Denkovych) about 6 years ago Actions #3

  • Description updated (diff)

Updated by marcandre (Marc-Andre Lafortune) about 6 years ago Actions #5

  • Status changed from Open to Rejected
Actions

Also available in: PDF Atom