[squeak-dev] problem with filein

Bert Freudenberg bert at freudenbergs.de
Fri Aug 13 08:01:37 UTC 2010


On 12.08.2010, at 21:41, Jecel Assumpcao Jr. wrote:

> Randal L. Schwartz wrote on Date: Thu, 12 Aug 2010 12:46:52 -0700
>> Jecel> 1) the class was defined as a subclass of something that was not in the
>> Jecel> image, so the system was silently making it a subclass of ProtoObject
>> Jecel> instead (though the browser said it was a subclass of Object - very
>> Jecel> odd). Didn't we have a warning for this situation?
>> 
>> I can't imagine any case where
>> 
>>  Foo subclass: #Bar [...]
>> 
>> should *succeed* if Foo doesn't exist.  Can you explain why this isn't fatal?
> 
> Indeed, I would expect the compiler to refuse to accept this code since
> it can't know what to do with "Foo". But I am guessing that somehow that
> is being silently converted into a translation to nil instead.

Not "somehow". There is no special compiler magic for this. It's an unknown global, so simply becomes an entry in Undeclared with a value of nil.

- Bert -

> UndefinedObject does have a
> #subclass:instanceVariableNames:classVariableNames:poolDictionaries:cate
> gory: instance method to deal with legacy code that has the hack "nil
> subclass: #Bar ..." to implement proxies and stuff - it just now
> redirects it to the proper ProtoObject class.
> 
> -- Jecel
> 
> 





More information about the Squeak-dev mailing list