From: nobu@... Date: 2019-01-14T23:34:24+00:00 Subject: [ruby-core:91091] [Ruby trunk Bug#15535] Optional arguments for definition - Syntax Error is not the correct Error type Issue #15535 has been updated by nobu (Nobuyoshi Nakada). 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. ---------------------------------------- Bug #15535: Optional arguments for definition - Syntax Error is not the correct Error type https://bugs.ruby-lang.org/issues/15535#change-76322 * Author: waheedi (Waheed Barghouthi) * Status: Rejected * Priority: Normal * Assignee: * Target version: * ruby -v: 2.6.0p0 * Backport: 2.4: UNKNOWN, 2.5: UNKNOWN, 2.6: UNKNOWN ---------------------------------------- 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 ``` ruby 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. ``` ruby 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. -- https://bugs.ruby-lang.org/ Unsubscribe: