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
