From: Koji Arai Date: 2005-12-24T11:03:46+09:00 Subject: [ruby-dev:28108] Re: 1.8.4 what remains? 新井です。 In message "[ruby-dev:28106] Re: 1.8.4 what remains?" on Sat, 24 Dec 2005 03:03:55 +0900, Koji Arai wrote: > 新井です。 > > In message "[ruby-dev:28075] Re: 1.8.4 what remains?" > on Tue, 20 Dec 2005 14:37:12 +0900, > nobuyoshi nakada wrote: > > なかだです。 > > > > #Tue Nov 1 14:20:11 2005 Yukihiro Matsumoto > > > # > > > # * eval.c (rb_call_super): should call method_missing if super is > > > # called from Kernel method. > > > > Kernelのメソッド内でsuperを呼んだ時に、存在しないsuperclassにア > > クセスしようとするバグの修正。 > > これなのですが、具体的な再現スクリプトはありませんか? > > 言葉どおりに > > def foo > super > end > foo > > とやっても特に 1.8.3 と 1.8.4 で変化はありません。 おっとこれは、[ruby-dev:28078] が再現スクリプトですね。 module Kernel def foo super end alias bar foo end bar # => ruby 1.8.3 (2005-09-21) [i686-linux] -:3:in `bar': method `foo' called on terminated object (0xb7dbe970) (NotImplementedError) from -:8 # => ruby 1.8.4 (2005-12-22) [i686-linux] -:3:in `bar'-:3: warning: too many arguments for format string : super: no superclass method `foo' (NoMethodError) from -:8 alias しなくても良いのか。 module Kernel def foo super end end foo # => ruby 1.8.3 (2005-09-21) [i686-linux] -:3:in `foo': method `foo' called on terminated object (0xb7e06970) (NotImplementedError) from -:7 # => ruby 1.8.4 (2005-12-22) [i686-linux] -:3:in `foo'-:3: warning: too many arguments for format string : super: no superclass method `foo' (NoMethodError) from -:7 # => ruby 1.9.0 (2005-12-21) [i686-linux] -:3:in `foo'-:3: warning: too many arguments for format string : super: no superclass method `foo' (NoMethodError) from -:7 なるほど -- 新井康司 (Koji Arai)