Actions
Bug #17533
closedNamed capture is not assigned to the same variable as reserved words.
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
Updated by nobu (Nobuyoshi Nakada) almost 4 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) almost 4 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.
Updated by nagachika (Tomoyuki Chikanaga) almost 4 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) over 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
Like0
Like0Like0Like0Like0