From acbddbe68cdcf5506791d8e19c184536ba253b02 Mon Sep 17 00:00:00 2001 From: Takashi Kokubun Date: Wed, 30 Jun 2021 21:04:56 +0900 Subject: [ruby/irb] Rescue a specific error Rescuing StandardError is prone to bugs caused by a typo or obsoleted methods. https://github.com/ruby/irb/commit/eb5260fcd5 --- lib/irb/cmd/ls.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/irb/cmd/ls.rb b/lib/irb/cmd/ls.rb index 9cbba50f10..18092642d7 100644 --- a/lib/irb/cmd/ls.rb +++ b/lib/irb/cmd/ls.rb @@ -24,7 +24,7 @@ module IRB end def dump_methods(o, klass, obj) - singleton_class = obj.singleton_class rescue nil + singleton_class = begin obj.singleton_class; rescue TypeError; nil end maps = class_method_map((singleton_class || klass).ancestors) maps.each do |mod, methods| name = mod == singleton_class ? "#{klass}.methods" : "#{mod}#methods" -- cgit v1.2.3