From: usa@... Date: 2021-04-04T23:44:17+00:00 Subject: [ruby-core:103223] [Ruby master Bug#17533] Named capture is not assigned to the same variable as reserved words. Issue #17533 has been updated by usa (Usaku NAKAMURA). 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 ---------------------------------------- Bug #17533: Named capture is not assigned to the same variable as reserved words. https://bugs.ruby-lang.org/issues/17533#change-91301 * Author: nobu (Nobuyoshi Nakada) * Status: Closed * Priority: Normal * Backport: 2.5: REQUIRED, 2.6: DONE, 2.7: DONE, 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: