From: naruse@... Date: 2021-02-01T12:35:22+00:00 Subject: [ruby-core:102354] [Ruby master Bug#17533] Named capture is not assigned to the same variable as reserved words. Issue #17533 has been updated by naruse (Yui NARUSE). 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. ---------------------------------------- Bug #17533: Named capture is not assigned to the same variable as reserved words. https://bugs.ruby-lang.org/issues/17533#change-90214 * Author: nobu (Nobuyoshi Nakada) * Status: Closed * Priority: Normal * Backport: 2.5: REQUIRED, 2.6: REQUIRED, 2.7: REQUIRED, 3.0: DONE ---------------------------------------- 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. ```ruby def test(s, nil: :ng) /(?.)/ =~ s binding.local_variable_get(:nil) end p test("a") #=> :ng ``` ```ruby tap do |nil: :ng| /(?.)/ =~ "c" p binding.local_variable_get(:nil) #=> :ng end ``` -- https://bugs.ruby-lang.org/ Unsubscribe: