what's new in 3.8
Stéphane Rollandin
lecteur at zogotounga.net
Sat Dec 11 18:28:21 UTC 2004
Marcus Denker wrote:
> It allows you to create a minimal lighwight class with no name by
> doing "Behavior new". This can for example be used for emulating
> instance specific behavior:
>
> testChange
> "self run: #testChange"
>
> | behavior browser |
> behavior := Behavior new.
> behavior superclass: Browser.
> behavior setFormat: Browser format.
> browser := Browser new.
> browser primitiveChangeClassTo: behavior new.
> behavior compile: 'thisIsATest ^ 2'.
> self assert: browser thisIsATest = 2.
> self should: [Browser new thisIsATest] raise: MessageNotUnderstood.
>
that's interesting. however, I noticed that alt-n on "#thisIsATest"
gives no implementor. also, I did
behavior compile: 'anotherTest ^ self gloup'
and alt-m on "gloup" also gives no senders.
more unpleasantly,
browser anotherTest
raises a debugger as expected (since #gloup is undefined), but the
debugger fails with a DNU on Behavior>>organization when its first lines
are selected.
I would be very interested in this type of anonymous Behavior, but I
would need the instance specific code to be accessible through the usual
requests. would this be possible ?
regards,
Stef
More information about the Squeak-dev
mailing list
|