Hi,
I think there's some problem here:
VariableEnvironment>>includesClass: aClass
(super includesClass: aClass) ifFalse: [^false].
(instanceVariables includesKey: aClass) ifTrue: [^true].
(classVariables includesKey: aClass) ifTrue: [^true].
^((self selectorCacheFor: aClass)
detect: [:each | self includesSelector: each in: aClass]
ifNone: [nil]) notNil
From what I understand instanceVariables and classVariables dictionaries uses the class names as keys (not the class itself). See for example "addClass: aClass classVariable: aSymbol ".
This part:
(instanceVariables includesKey: aClass) ifTrue: [^true].
(classVariables includesKey: aClass) ifTrue: [^true].
never returns true.
Maybe it should be:
(instanceVariables includesKey: aClass name) ifTrue: [^true].
(classVariables includesKey: aClass name) ifTrue: [^true].
?
Regards,
Gabriel