Bug #9623

warning: "named capture conflicts a local variable" does not allow loops with named captures

Added by Eric Hodel 12 months ago.

[ruby-core:61423]
Status:Open
Priority:Normal
Assignee:-
ruby -v:ruby 2.1.0p0 (2013-12-25 revision 44422) [x86_64-darwin13.0] Backport:1.9.3: UNKNOWN, 2.0.0: UNKNOWN, 2.1: UNKNOWN

Description

Given the following example:

args = []

remaining = 'a,b,c'

begin
  /(?<token>[^,]*),?(?<remaining>.*)/ =~ remaining

  args << token
end until remaining.empty?

p args

Gives a warning with -w: test.rb:6: warning: named capture conflicts a local variable - remaining

I'm unsure if the warning is useful here. Reassigning in the loop through the named captures seems clearer than using the regexp globals.

Also available in: Atom PDF