The reason that ifNil: is not found is that it is inlined. If you view  
the bytecode representation of an ifNil: send, you see that this  
message is never sent. The search looks for symbols in the literal  
frame of compiled methods and hence does not find this special case.

Cheers,
Adrian


On Jul 8, 2009, at 05:52 , Mariano Martinez Peck wrote:

> 2009/7/7 Cameron Sanders <[email protected]>
>
>> On Jul 7, 2009, at 7:39 PM, Mariano Martinez Peck wrote (below my  
>> original
>> text):
>>
>> can you give us a concrete example?
>>
>> In my opinion, if you have a symbol with that text, it must be  
>> found by
>> "senders of it". In VAST it is like that.
>> So, if you have #ifNil:   for me it is correct to be found.
>>
>> best,
>>
>> Mariano
>>
>>
>> What you say makes sense for performance reasons. I just picked  
>> through
>> those 10 methods more carefully, and they each contain the symbol  
>> #ifNil:,
>> so the one error I thought I was seeing (of a match for a pattern of
>> xxxIfNil:) is not what is causing them to be found. So, I'm glad  
>> you asked,
>> as that forced me to recheck that aspect. Should it be called
>> "search->methods referencing symbol (n)" or something -- I don't  
>> care about
>> pesky details like that.
>>
>
> You are welcome.
>
>
>
>>
>> What matters to me is the failure to find my references/sends:
>>
>> My broken method (FaTableAccessor>>columnAt:) is just one of *many*  
>> places
>> I have used #ifNil:, and is NOT being found.
>>
>> The search is only finding 10 methods in the entire system (in the  
>> classes
>> Decompiler, MessageNode, MethodFinder, OCompletionTable, PSUIManager,
>> RBMessageNode, RBProgramNode) that reference the symbol #ifNil:.
>>
>> Previously, this feature has worked for me as expected (to the best  
>> of my
>> knowledge). But I can't guarantee that I have ever searched for  
>> #ifNil:.
>>
>> I just searched for collect:, and that turned up a more reasonable  
>> 1092
>> methods, some of which are mine. I am surprised there are not more  
>> uses of
>> it, but at least it is a more credible number than "10". So maybe  
>> it is just
>> something weird for the symbol ifNil:, which I can live with; that  
>> would
>> make this a low priority issue, assuming it is working for most other
>> symbols pretty well.
>>
>
> Perhaps a lot of people does isNil ifTrue: instead of ifNil:  hahaha
>
>
>>
>> Recap: I am selecting "ifNil:" (without the quotes) in a workspace,  
>> and
>> using "extended search"->"senders of it (n)"; this is failing to find
>> methods of mine that include the symbol (as a selector).
>>
>
> Can you give me an example of your code that containg ifNil: and  
> that's is
> not being found ? just to test it here.
>
> cheers,
>
> Mariano
>
>
>> Happy Hunting,
>> Cam
>>
>>
>>
>> On Tue, Jul 7, 2009 at 6:32 PM, Cameron Sanders <
>> [email protected]> wrote:
>>
>>> Having made some bozo statements lately, I am hesitant to even  
>>> inquire
>>> (because I am probably doing something dumb), but...
>>>
>>> I noted an error in my code that read xxx isNumber ifNil: [...] and
>>> figured that when I imported in from VisualWorks, I must have  
>>> "fixed"
>>> things too hastily. Wondering where else I may have made this  
>>> error I
>>> did the following on an iMac using the 10371web image recently  
>>> posted:
>>>
>>> In a workspace I typed and highlighted "ifNil:" --without the quotes
>>> of course-- and selected "extended search...".
>>> Then I selected "senders of it (n)", and to my surprise, not my
>>> erroneous method was not displayed in the results. Ten (10) methods
>>> turn up in the results, and some of them are not actually senders of
>>> it; the non-senders may include the pattern in an array, or as a
>>> substring of some symbol.
>>
>>
>>
>>
>>
>>
>>
>>>
>>>
>>> Is this a known defect? Previously (from images two months ago and
>>> less) this searching worked as expected.
>>>
>>> A search of the defect db, using only the word "senders", gave me  
>>> this
>>> (semi-related) issue:
>>>
>>> http://code.google.com/p/pharo/issues/detail?id=261&q=sendeifNilrs&colspec=ID%20Type%20Status%20Summary%20Milestone
>>>  
>>> <http://code.google.com/p/pharo/issues/detail?id=261&q=senders&colspec=ID%20Type%20Status%20Summary%20Milestone
>>>  
>>> >
>>>
>>> Thanks in advance,
>>> Cam
>>>
>>> _______________________________________________
>>> Pharo-project mailing list
>>> [email protected]
>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [email protected]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>>
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [email protected]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
> _______________________________________________
> Pharo-project mailing list
> [email protected]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to