Project

General

Profile

Bug #15647

Disallow "in" as a keyword argument name

Added by localhostdotdev (localhost .dev) about 1 year ago. Updated about 1 year ago.

Status:
Rejected
Priority:
Normal
Assignee:
-
Target version:
-
ruby -v:
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-darwin17]
[ruby-core:91723]

Description

"in" is a reserved keyword and thus can't be accessed directly anyway.

e.g. the following is a syntax error:

def m(in:); p in; end; m(in: 1)

And as usual, doing in = 1 doesn't work.

"in" could still be passed as a keyword argument if using some kind of catch-all, e.g. m(args), m(*args), etc.

Source: https://twitter.com/drbrain/status/1104152696339087361

Updated by drbrain (Eric Hodel) about 1 year ago

This would break the Kernel#spawn family's backward compatibility make wrapping methods in this family harder than it already is, as you can work around this with Binding#local_variable_get.

I think this should be rejected.

Updated by nobu (Nobuyoshi Nakada) about 1 year ago

  • Status changed from Open to Rejected
  • Description updated (diff)

It is known that reserved words can be keyword arguments.
And Binding#local_variable_get has been added for that purpose, if argument for instance.

Also available in: Atom PDF