From: naruse@... Date: 2021-02-02T08:48:52+00:00 Subject: [ruby-dev:51009] [Ruby master Bug#17575] deprecated style `respond_to?` warning with `-W:no-deprecated` Issue #17575 has been updated by naruse (Yui NARUSE). Backport changed from 2.5: DONTNEED, 2.6: DONTNEED, 2.7: DONTNEED, 3.0: REQUIRED to 2.5: DONTNEED, 2.6: DONTNEED, 2.7: DONTNEED, 3.0: DONE ruby_3_0 fb6cb226a03c2eeaf4fe68b282fcd6e4a8696ffd merged revision(s) 8dfae85adb96cf3da84bf38f2103969d4a7aed3f. ---------------------------------------- Bug #17575: deprecated style `respond_to?` warning with `-W:no-deprecated` https://bugs.ruby-lang.org/issues/17575#change-90240 * Author: nobu (Nobuyoshi Nakada) * Status: Closed * Priority: Normal * Backport: 2.5: DONTNEED, 2.6: DONTNEED, 2.7: DONTNEED, 3.0: DONE ---------------------------------------- When `respond_to?` is defined in deprecated style, arity == 1, is warned and the defined location is also reported. But if deprecation warning is disabled, the main message is disabled but the next line is still shown. ``` $ ruby -W:deprecated -e 'class << (obj = "test"); def respond_to?(m) true; end; def test; defined?(foo); end; end; p obj.test' -e:1: warning: test.respond_to?(:foo) uses the deprecated method signature, which takes one parameter -e:1: warning: respond_to? is defined here "method" ``` ``` $ ruby -W:no-deprecated -e 'class << (obj = "test"); def respond_to?(m) true; end; def test; defined?(foo); end; end; p obj.test' -e:1: warning: respond_to? is defined here "method" ``` -- https://bugs.ruby-lang.org/