[前][次][番号順一覧][スレッド一覧][生データ]

yarv-dev:899

From: Minero Aoki <aamine loveruby.net>
Date: Wed, 15 Feb 2006 19:34:49 +0900 (JST)
Subject: [yarv-dev:899] open> private alias make original method private

青木です。スレッド切ります。

  In mail "[yarv-dev:897] Re: fixed> Re: open> def in def makes method private"
  SASADA Koichi <ko1 atdot.net> wrote:

>  ささだです。

> >  ついでに、メソッド内メソッドはメソッドのトップレベル、たとえばブロック
> > の中では定義できないようにしました。
> > 
> >   def m
> >     def m1 # ok
> >     end
> >     1.times{
> >       def m2 # ng. top level に定義される
> >       end
> >     }
> >   end
> 
>  実装を変えたのでこの制限を無くしました。これに伴い、visibility は、そ
> のメソッドのものを利用することにしました。たとえば、m() が private だっ
> たら、m1、m2 が private になります。

恐らくこの変更に関係があると思うのですが、lib/rss のテストが
失敗するようになりました。以下のプログラムで m も private に
なるのが原因です。

class C
  def m
  end
  alias mm m
  private mm
end

p C.new.m   # private method `m' called for #<C:0x00002a95eae8c0> (NoMethodError)

--
青木峰郎

-- 
ML: yarv-dev quickml.atdot.net
使い方: http://www.atdot.net/~ko1/quickml

[前][次][番号順一覧][スレッド一覧][生データ]

       814 2006-02-07 00:22 [aamine loveruby.net ] open> def in def makes method private   
       838 2006-02-11 23:38 ┗[ko1 atdot.net       ] fixed> Re: open> def in def makes method private
       897 2006-02-15 19:13  ┗[ko1 atdot.net       ]                                     
->     899 2006-02-15 19:34   ┣[aamine loveruby.net ] open> private alias make original method private
       900 2006-02-15 19:39   ┃┣[aamine loveruby.net ] Re: private alias make original method private
       901 2006-02-15 19:47   ┃┃┗[aamine loveruby.net ]                               
       902 2006-02-15 20:01   ┃┗[ko1 atdot.net       ] fixed> Re: open> private alias make original method private
       904 2006-02-15 22:57   ┗[matz ruby-lang.org  ]