On Sun, Apr 28, 2013 at 10:31 AM, Colin Putney <colin@wiresong.com> wrote:



On Sun, Apr 28, 2013 at 10:00 AM, Chris Muller <asqueaker@gmail.com> wrote:
 
First, the problem can be observed simply by browsing references to
the class Error, first from workspace text then from a class list.
The root cause is that these use different ways to find the list of
referencing methods.  One uses:
 

So, what is the proper fix here?  1) make bindingOf: and
associationAt: point to the same object?  2) change
CompiledMethod>>#indexOfLiteral: to do an equality rather than
identity check?  3) change the IDE code to use #bindingOf: instead of
#associationAt:?

The proper fix is #3 - since compiling a method uses #bindingOf: searching for bindings should do the same.

I don't understand how #3 fixes things.  If one has an alias to e.g. Error then all calls on Error should include references to the alias right?  So doesn't there need to be some clever code for literalEqual: so that ALiases dereference to get the actual binding?
  

I'll submit a fix shortly.

Colin






--
best,
Eliot