[squeak-dev] Resolving Environment test failure MCEnvironmentLoadTest>>#testLoadIntoEnvironment

Nicolas Cellier nicolas.cellier.aka.nice at gmail.com
Thu May 29 14:35:32 UTC 2014


The test was failing because a pool dictionary (MCMockAPoolDictionary) is
not in the mockPackage.
So I used the ability to import this one from Smalltalk globals into the
Environment named: 'MCEnvironmentLoadTest'.

But it's not enough, the test is still failing.
This is because Class>>sharing: is using environment at:ifAbsent:
But at:ifAbsent: is using the declarations (that is the classes attached to
this environment) not the bindings (the classes visible from this
environment).

I could change it to use valueOf:ifAbsent: eventually
But there is a single sender, so I just wonder...
And it also would mean we can't revert Environment as easily if ever we
start using environment specific messages.

I also wonder if some of the emulation messages should not inquire the
bindings rather than the declarations?
But what if an environment does not importSelf?
For example, how to define a class A, and a subclass B of A in an
environment which does not import self if we use the bindings? (I mean we
can't reference A, can we?)

Can we have an example when not importing self really makes sense?

Thoughts?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20140529/619bd713/attachment.htm


More information about the Squeak-dev mailing list