Hi Colin,

This breaks renaming of classes. Try:

Object subclass: #Bar instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'Foo'.
Bar rename: #Baz.

and then the binding for Baz will point to nil.

The problem stems from the change of Environment>>hideBinding: because

self undeclare: aBinding key from: bindings

makes the binding #Bar => Baz to become a binding pointing to nil, and when we get back to Environment>>renameClass:from:to:
it uses that same binding object and just changes the binding key to the new name, so at the end we have a binding #Baz => nil.

Balazs