Project

General

Profile

Bug #15535

Optional arguments for definition - Syntax Error is not the correct Error type

Added by waheedi (Waheed Barghouthi) 2 months ago. Updated 2 months ago.

Status:
Rejected
Priority:
Normal
Assignee:
-
Target version:
-
[ruby-core:91088]

Description

The below definition throws a Syntax Error, while there is no syntax error and I'm not sure what is the intention behind the Syntax Error

def hello(foo="bar", bar, yanko="me")
  p "Hello"
end

The same definition below with a tiny modification in the argument set, give a Syntax OK.

def hello(foo="bar", bar="foo", yanko="me")
  p "Hello"
end

It seems when there is a required argument in the definition that happens to be in between optional arguments that triggers a Syntax Error, I think the ArgumentError is more related to it.

This has been tested on mostly every ruby version after 1.8.7 and it gave the same result.

History

#1

Updated by waheedi (Waheed Barghouthi) 2 months ago

  • ruby -v changed from 2.6.0p0 to 2.6.0
#2

Updated by waheedi (Waheed Barghouthi) 2 months ago

  • ruby -v changed from 2.6.0 to 2.6.0p0
#3

Updated by waheedi (Waheed Barghouthi) 2 months ago

  • Description updated (diff)
#4

Updated by waheedi (Waheed Barghouthi) 2 months ago

  • Description updated (diff)

Updated by nobu (Nobuyoshi Nakada) 2 months ago

  • Status changed from Open to Rejected

Required arguments cannot be placed between optional arguments syntactically, so it must be a SyntaxError.
ArgumentError is a runtime error.

Also available in: Atom PDF