Project

General

Profile

Feature #12490

Remove warning on shadowing block params

Added by soutaro (Soutaro Matsumoto) over 4 years ago. Updated over 2 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Target version:
-
[ruby-core:76028]

Description

Running ruby with -w option reports warnings on shadowing block params.

$ cat -n w.rb
     1  a = [1]
     2  
     3  a.each do |a|
     4    a = 3
     5  end
     6  
     7  p a
$ ruby -cw w.rb
w.rb:3: warning: shadowing outer local variable - a
Syntax OK

I would like to propose to remove the warning.

It was introduced to ruby 1.9, a version which changes behaviors on conflicts of local vars and block param. I understand it is to tell the user the change, and let them fix if their program depends on 1.8 behavior. ruby 1.9.1 is released in 2009, almost seven years ago, and most ruby programmers today would have correct understanding of current behavior. In my opinion, the warning does not make sense now but just annoying.

  • I like giving block params shadowing name to avoid finding new good names
  • Lint tools including RuboCop can report the warning instead of ruby

Files

remove-shadowing-warning.patch (3.62 KB) remove-shadowing-warning.patch soutaro (Soutaro Matsumoto), 06/15/2016 02:43 AM

Also available in: Atom PDF