On 17 Jan 2014, at 11:13, Igor Stasenko <[email protected]> wrote:

> 
> 
> 
> On 17 January 2014 10:09, Camille Teruel <[email protected]> wrote:
> 
> On 16 janv. 2014, at 16:58, Marcus Denker <[email protected]> wrote:
> 
>> Hello,
>> 
>> I was looking into that, the first (maybe only) reason is that the new class 
>> builder
>> can not make anonymous subclasses of classes with ByteLayout
> 
> Is that really a bug?
> Should it really be possible to subclass a class that has a byte layout with 
> a class that has a fixed layout?
> 
>  
> i don't know and i don't care. 
> Why i should care about such details in NB while all i want is to create 
> simple anonymous subclass?
> 
>  
> Because:
> AnonymousClassInstaller make: [ :builder | 
>       builder superclass: NBExternalTypeValue ]
> raises IncompatibleLayout but:
> AnonymousClassInstaller make: [ :builder | 
>       builder 
>               superclass: NBExternalTypeValue;
>               layoutClass: ByteLayout ]
> doesn't. 
> A simple fix is to take the same layout class than the superclass by default 
> instead of FixedLayout, isn't it?
> For example with lazy initialization: 
> 
> SlotClassBuilder>>#layoutClass
>       ^ layoutClass ifNil: [ layoutClass := superclass layout class ]
> 
> 
> i don't understand what is difference between 'fixed' and 'same as 
> superclass' layout,
> and i am not sure i want to understand it. I want to be freed from knowing 
> such details when doing something as simple as creating anonymous subclass.

This is a bug… 

But the fun thing is: I always explain to people that adding a second better 
subsystem but then not using it everywhere is not good.
And we found another case! A bug in the new class builder that we would have 
found 5 months ago had we used the new one and
not the old one in this case.

        Marcus

Reply via email to