Project

General

Profile

Actions

Bug #17533

closed

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

Added by nobu (Nobuyoshi Nakada) about 3 years ago. Updated almost 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 #1

Updated by nobu (Nobuyoshi Nakada) about 3 years ago

  • Status changed from Open to Closed

Applied in changeset git|0036648a420f945624898568bb82bc5f83195d12.


Capture to reserved name variables if already defined [Bug #17533]

Updated by naruse (Yui NARUSE) about 3 years ago

  • Backport changed from 2.5: REQUIRED, 2.6: REQUIRED, 2.7: REQUIRED, 3.0: REQUIRED to 2.5: REQUIRED, 2.6: REQUIRED, 2.7: REQUIRED, 3.0: DONE

ruby_3_0 1b0622d7a9451dbeaadccc1f416b71a98271e097 merged revision(s) 0036648a420f945624898568bb82bc5f83195d12.

Actions #3

Updated by nagachika (Tomoyuki Chikanaga) about 3 years ago

  • Backport changed from 2.5: REQUIRED, 2.6: REQUIRED, 2.7: REQUIRED, 3.0: DONE to 2.5: REQUIRED, 2.6: REQUIRED, 2.7: DONE, 3.0: DONE

ruby_2_7 3d39ad217866138de1d3597440ef6358690b3435 merged revision(s) 0036648a420f945624898568bb82bc5f83195d12.

Updated by usa (Usaku NAKAMURA) almost 3 years ago

  • Backport changed from 2.5: REQUIRED, 2.6: REQUIRED, 2.7: DONE, 3.0: DONE to 2.5: REQUIRED, 2.6: DONE, 2.7: DONE, 3.0: DONE

backported into ruby_2_6 at r67927

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0