[前][次][番号順一覧][スレッド一覧]

ruby-changes:66650

From: Takashi <ko1@a...>
Date: Wed, 30 Jun 2021 21:07:07 +0900 (JST)
Subject: [ruby-changes:66650] acbddbe68c (master): [ruby/irb] Rescue a specific error

https://git.ruby-lang.org/ruby.git/commit/?id=acbddbe68c

From acbddbe68cdcf5506791d8e19c184536ba253b02 Mon Sep 17 00:00:00 2001
From: Takashi Kokubun <takashikkbn@g...>
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 9cbba50..1809264 100644
--- a/lib/irb/cmd/ls.rb
+++ b/lib/irb/cmd/ls.rb
@@ -24,7 +24,7 @@ module IRB https://github.com/ruby/ruby/blob/trunk/lib/irb/cmd/ls.rb#L24
       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.1


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]