Похоже, что метод GNIT SmallFalk для метода положение GNits SmallTalk возвращает true для каждого неопределенного имени класса, отправленного ему в качестве параметра. Это может сделать программу очень трудной для отладки, ИМХО. Глядя на код для этого в классе Поведения, это выглядит так:
inheritsFrom: aClass [
"Returns true if aClass is a superclass of the receiver"
<category: 'testing the class hierarchy'>
| sc |
aClass isNil ifTrue: [^true].
sc := self.
[sc := sc superclass.
sc isNil] whileFalse: [sc == aClass ifTrue: [^true]].
^false
]
Строка aClass isNil ifTrue: [^ true] является виновником, но я ищу разумную причину того, как она была закодирована таким образом. (Кстати, я новичок в мире Smalltalk и пытаюсь учиться.)
Спасибо.