[squeak-dev] Can we please fix the IDE?

Chris Muller asqueaker at gmail.com
Sun Apr 28 17:00:59 UTC 2013


Hey Colin, something with Environments has had a basic IDE function
broken for some time now.  Trunk broken for long time can affect the
community, could you help me get this fixed?

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:

   (SystemNavigation default allCallsOn: (Smalltalk globals
associationAt: #Error))

while the other uses:

   (SystemNavigation default allCallsOn: (Smalltalk globals bindingOf: #Error))

The two expressions (bindingOf: vs. associationAt:) produce
equivalent, but not identical ClassBindings.  But since
CompiledMethod>>#indexOfLiteral: is doing an identity-check on the
ClassBinding #Error=>Error, it comes back false for the
#associationAt: case.

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:?

I've already been affected by this and would like to get it fixed,
please advise.

Thanks,
   Chris


More information about the Squeak-dev mailing list