Project

General

Profile

Actions

Bug #17533

closed

Named capture is not assigned to the same variable as reserved words.

Added by nobu (Nobuyoshi Nakada) almost 4 years ago. Updated over 3 years ago.

Status:
Closed
Assignee:
-
Target version:
-
[ruby-core:102060]

Description

It is expected that named captures don't add new variables same as reserved words, and such variables couldn't be made usually at the time when named capture was implemented.

Keyword arguments since 2.0 can be the same as reserved words, however an assignment to an such already defined variable has been also suppressed now.

def test(s, nil: :ng)
  /(?<nil>.)/ =~ s
  binding.local_variable_get(:nil)
end
p test("a") #=> :ng
tap do |nil: :ng|
  /(?<nil>.)/ =~ "c"
  p binding.local_variable_get(:nil) #=> :ng
end
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0