[squeak-dev] WeakIdentityDictionary vs WeakSet

Stéphane Rollandin lecteur at zogotounga.net
Sat Jul 23 13:01:15 UTC 2022


Hello all,

I noticed that a WeakIdentityDictionary does not hold literal values.
For example, in a workspace:

	wd := WeakIdentityDictionary new.
	wd at: #foo put: 42.
	wd at: #bar put: #foo.

	wd "printIt ->"  a WeakIdentityDictionary()

On the other hand, WeakSet does hold literals

	ws := WeakSet new.
	ws add: #foo.
	ws add: 42.

	ws "printIt ->" a WeakSet(#foo 42)

And also WeakKeyDictionary

	wk := WeakKeyDictionary new.
	wk at: #foo put: 42.
	wk at: #bar put: #foo.

	wk "printIt ->"  a WeakKeyDictionary(#bar->#foo #foo->42 )


Is this the intended behavior? What is the semantics here?

Stef


More information about the Squeak-dev mailing list