[squeak-dev] SystemNavigation >> #methodsWithUnboundGlobals

Frank Shearar frank.shearar at gmail.com
Fri Apr 5 14:29:28 UTC 2013


... is currently broken because of the recent ClassBindings work.

Tests.Release.ReleaseTest.testMethodsWithUnboundGlobals fails because
it takes so long to concatenate the error description listing all
these methods. (Not surprising, given the 37304 entries it has to
munge.)

If we look at the implementation,

methodsWithUnboundGlobals
    ^self allSelect:
        [:m|
        m literals anySatisfy:
            [:l|
            l isVariableBinding
            and: [l key isSymbol "avoid class-side methodClass literals"
            and: [(m methodClass bindingOf: l key)
                    ifNil: [(Undeclared associationAt: l key ifAbsent: []) ~~ l]
                    ifNotNil: [:b| b ~~ l]]]]]

the problem seems to be in that last clause. You end up with (say) b
== #ContextPart=>ContextPart and l == #ContextPart=>ContextPart but b
~~ l.

Obviously I'm using printStrings of the variables. The problem arose
sometime after 2013/03/10. Not hugely helpful: it's already obvious
that the problem's either due to an Environments bug or that this
method needs adjusting to a post-Environments world.

frank


More information about the Squeak-dev mailing list