From: shevegen@... Date: 2016-06-17T20:21:45+00:00 Subject: [ruby-core:76066] [Ruby trunk Feature#12490] Remove warning on shadowing block params Issue #12490 has been updated by Robert A. Heiler. I guess the argument given by Soutaro Matsumoto makes sense (if this was indeed the reason why the warning has been added). On a belated note, perhaps in the path towards ruby 3.x, we may have a better/finer control into how ruby issues warnings in general. In general I always run via -w, but not every warning appears to be hugely important to me. And I think there is no fine-control over how to get notified about warnings (other than changing $VERBOSE and re-setting it again, but this is a bit crude and it does not read extremely elegant in code when one assigns $VERBOSE = nil) ---------------------------------------- Feature #12490: Remove warning on shadowing block params https://bugs.ruby-lang.org/issues/12490#change-59263 * Author: Soutaro Matsumoto * Status: Open * Priority: Normal * Assignee: ---------------------------------------- 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) -- https://bugs.ruby-lang.org/ Unsubscribe: