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
