On 14 Nov 2017, at 09:40, Pavel Krivanek <pavel.krivanek@gmail.com> wrote:
Hi,
the #initialize message is sent only to the classes that implement this method. In *.st files it is an explicit call, Monticello does it slightly smarter way, see MCMethodDefinition>>#postloadOver:
Note: the actual source code has to be different. I sometimes put a 'last changed' date tag in a comment to force execution.
Cheers, -- Pavel
2017-11-14 3:08 GMT+01:00 Ben Coman <btc@openinworld.com>: Because I'm lazy to experiment this instant (not wanting to get distracted from my current track), and also its probably a useful remainder for others I'll just ask...
When MyClass is loaded, #initialize is sent to it. Typically the class-side>>initialize should not call "super initialize" to avoid re-initializing the superclaass, but what if MyClass doesn't implement #initialize? Does the message fall through to the superclass, or is #initialize only sent if MyClass implements it?
Concrete example... FFIExternalEnumeration subclass MyEnumeration needs to be sent #initializeEnumeration when it is loaded. We have...
FFIExternalEnustmeration>>#initialize self initializeEnumeration
so is MyEnumeration *required* to implement its own MyEnumeration>>#initialize, or can it rely FFIExternalEnustmeration>>#initialize. I believe it is the former, but just wanted to confirm my understanding.
cheers -ben