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.
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
- Status changed from Open to Closed
- 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.
- 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.
- 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
Also available in: Atom
PDF
Like0
Like0Like0Like0Like0