2011/9/1 Camillo Bruni <[email protected]>:
>
> On 2011-09-01, at 00:54, Nicolas Cellier wrote:
>> 2011/9/1 Camillo Bruni <[email protected]>:
>>> Today on the train I was a bit bored on what I can do with CompiledMethods…
>>>
>>> It seems like there are no inspection methods on CompiledMethods. Now I 
>>> lets say I use Pharo from the command line (we're almost there…) then I 
>>> would like to have a small interface to browse and navigate through methods…
>>>
>>> (Object >> #at:) overrides      "return all direct overrides of this method"
>>> (Bag >> #at:) super             "return the method I override"
>>> (Bag >> #at:) superChain        "return all implementations in superclasses"
>>> (Object >> #name) senders
>>> (Object >> #name) implementors
>>>
>>> instead of doing something like
>>>
>>> SystemNavigation default allCallsOn: #name  "(BTW I would prefer 
>>> allSendersOf: #name)"
>>>
>>> What do you think? Does this make sense or not?
>>>
>>> cami
>>>
>>
>> I'm not convinced.
>> (Object >> #name) senders
>> 1) works only if you know a class that implements #name
>> 2) technically it won't return the senders of (Object >> #name) but
>> the senders of (AnyOtherClass >> #name)
>
> Yes this is absolutely correct. But I think might have not been clear about 
> my intentions. I do not want to replace SystemNavigation default * calls. But 
> make sure that once you actually have a CompiledMethod you can browse from 
> there on.
> Thats what the (Object >> #name) actually should mean, I should have chosen 
> some better example like (String >> #printOn:) or so.
>
>
>> (Object >> #name) implementors
>> 1) same as above, you must first know an implementor…
>
> Again, you start from an existing implementation (Object >> #name) just 
> happens to be a random example..
>
>> (Bag >> #at:) super /superChain
>> is a bit better, but there is again no garanty that Bag implements
>> at:, still I might want to see all implementors in superclasses.
>
> Nope, (Bag >> #at:) will fail if the method doesn't exist.
>
>> Nicolas
>
>
> I guess what you want meant is the same navigation interface on Symbol:
>
> #name implementors
> #foo:bar: senders
> #at: superChain: Bag          "definitely needs another name :)"
> #at: implementorsAbove: Bag   "might be better…"
>
> cami
>

Yes, but this will reopen the Symbol/Selector thread ;)

Nicolas

Reply via email to