> On 26 Apr 2018, at 09:28, Guillermo Polito <guillermopolito@gmail.com> wrote:
>
> Hi,
>
> It looks you got bit by this issue:
>
> https://pharo.fogbugz.com/f/cases/21519/RemoveFromSystem- does-not-work-well-with- Undeclareds
>
> It's not particular to Epicea. There should be a better management of Undeclareds in general in all Pharo.
>
It can be fixed by moving the binding to undeclared in #removeFromSystem:
This is done by adding
�� Undeclared declare: self name asSymbol from: Smalltalk globals.
before the "forgetClass: self logged:" line.
What we need to do in addition: Only do that when the class is referenced. #isUsedClass: does that, but it does integrate over all methods in the system.
(I sometimes wonder if we should not late-bind accesses to globals, that is, just compile them as message sends to the environment).
�� �� �� �� Marcus