From: "alexeymuranov (Alexey Muranov)" Date: 2012-08-11T18:57:30+09:00 Subject: [ruby-core:47127] [ruby-trunk - Feature #6693] Don't warn for unused variables starting with _ Issue #6693 has been updated by alexeymuranov (Alexey Muranov). It this really necessary to treat the variable name `_` exceptionally at the interpreter's level? Why not to use the same rule for all variables, and for unused variables introduce a special placeholder, for example `-` not followed by anything other than a delimiter (comma or bracket): each_with_index { |-, value| puts value } -, -, suffix = parse_name The underscore is treated exceptionally because it can be repeated in block arguments: {1=>2}.each_with_index { |_,_| puts "Oho!" } # Ok {1=>2}.each_with_index { |x,x| puts "Oho!" } # SyntaxError: (eval):2: duplicated argument name Is this exception really necessary? Maybe for repeated arguments, the variable (`_` or `x`) can be made to hold, for example, the last non-nil argument of those assigned to it? ---------------------------------------- Feature #6693: Don't warn for unused variables starting with _ https://bugs.ruby-lang.org/issues/6693#change-28782 Author: marcandre (Marc-Andre Lafortune) Status: Feedback Priority: Low Assignee: Category: core Target version: 2.0.0 Currently, variables which are set but not used will generate a warning (ruby -w), except if they have the special name "_". So best practice is to use "_" for all unused variables. This does not encourage readable code. # Currently must read: _, _, _, suffix = parse_name # could read: _first, _middle, _last, suffix = parse_name We should not warn for unused variables starting with a "_". This would create an option (but no obligation) to use more descriptive names than "_" without generating warnings. -- http://bugs.ruby-lang.org/