[ruby-core:102060] [Ruby master Bug#17533] Named capture is not assigned to the same variable as reserved words.
From:
nobu@...
Date:
2021-01-13 12:14:49 UTC
List:
ruby-core #102060
Issue #17533 has been reported by nobu (Nobuyoshi Nakada).
----------------------------------------
Bug #17533: Named capture is not assigned to the same variable as reserved words.
https://bugs.ruby-lang.org/issues/17533
* Author: nobu (Nobuyoshi Nakada)
* Status: Open
* Priority: Normal
* Backport: 2.5: REQUIRED, 2.6: REQUIRED, 2.7: REQUIRED, 3.0: REQUIRED
----------------------------------------
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)
/(?<nil>.)/ =~ s
binding.local_variable_get(:nil)
end
p test("a") #=> :ng
```
```ruby
tap do |nil: :ng|
/(?<nil>.)/ =~ "c"
p binding.local_variable_get(:nil) #=> :ng
end
```
--
https://bugs.ruby-lang.org/
Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>