Hi Denis,

On Tue, May 9, 2017 at 12:51 PM, Denis Kudriashov <dionisi...@gmail.com>
wrote:

> Hi Eliot.
>
> 2017-05-09 21:27 GMT+02:00 Eliot Miranda <eliot.mira...@gmail.com>:
>
>> Hmmm, classNamed: has always answered nil for nonexistent classes.  Did
>> this get changed?  Not sure that's right.  Why not add checkedClassNamed:
>> or some such?
>
>
> I created this issue. I am sure that returning nil from methods is always
> bad design and many books describe it.
> Also it is not consistent to #at: method:
>
> Smalltalk globals at: #AbsentClass. "=> raise error"
> Smalltalk globals classNamed: #AbsentClass "=> nil"
>
>
I get that.  But there's lots of code out there that expects classNamed: to
answer nil for names tat don't name a class.  Why break all that code?  If
you had added checkedClassNamed: or some thing else then that old code
wouldn't be broken. There needs to be some cheap way of checking whether a
class with a specific name actually exists.  classNamed: fulfilled that
need.  By redefining it you'e meant that that has to be reimplemented.
It's not a good idea to redefine co=re behavior in this way.  It breaks
lots of code (including VMMaker).



-- 
_,,,^..^,,,_
best, Eliot

Reply via email to