This is a bug introduced by the TextEditor changes. I thought it was
fixed in the latest Pharo 1.2.1?

Lukas

On 19 June 2011 20:37, Guillermo Polito <[email protected]> wrote:
> Well, replacing:
>
> self logMethodSource: text forMethodWithNode: methodAndNode
>             inCategory: category withStamp: changeStamp notifying:
> requestor.
>
> by
>
> self logMethodSource: methodAndNode node printString forMethodWithNode:
> methodAndNode
>             inCategory: category withStamp: changeStamp notifying:
> requestor.
>
> Works well :).  But for sure I smell I'm doing something veeery wrong :S
>
> Has it something to do with using a mutable text instead of a string?
>
> On Sun, Jun 19, 2011 at 3:32 PM, Guillermo Polito
> <[email protected]> wrote:
>>
>> Hi, I have a simple snippet of code which says:
>>
>> someObject class compile: aMethod classified: someCategory notifying:
>> aRequestor.
>>
>> where aRequestor is a PluggableTextMorph.
>>
>> Actually, when I try to compile a method with a temp var, letting the
>> compiler notify me when a temp var is needed, I always see the final
>> CompiledMethod with the wrong source.  For example, compiling
>>
>> someMethod
>>   ^someTemp
>>
>> Is correctly updated to be
>>
>> someMethod
>>   | someTemp |
>>   ^someTemp
>>
>> But, after the compilation process, when I get the compiled method source,
>> It just have
>>
>> someMethod
>>   ^someTemp
>>
>>
>> Debugging, I ended up in
>>
>> ClassDescriptioncompile: text classified: category withStamp: changeStamp
>> notifying: requestor logSource: logSource
>>     | methodAndNode |
>>     methodAndNode := self compile: text asString classified: category
>> notifying: requestor
>>                             trailer: self defaultMethodTrailer ifFail:
>> [^nil].
>>     logSource ifTrue: [
>>         self logMethodSource: text forMethodWithNode: methodAndNode
>>             inCategory: category withStamp: changeStamp notifying:
>> requestor.
>>     ].
>>     self addAndClassifySelector: methodAndNode selector withMethod:
>> methodAndNode
>>         method inProtocol: category notifying: requestor.
>>     self instanceSide noteCompilationOf: methodAndNode selector meta: self
>> isClassSide.
>>     ^ methodAndNode selector
>>
>> Which is saving as the CompiledMethod source, the original text, not the
>> one which was changed in the PluggableTextMorph and compiled in the
>> methodAndNode object.
>>
>>
>> Well, I was looking how the Browser works, and I didn't realize the
>> difference...  Can someone enlight me?
>>
>> Thanks,
>> Guille
>
>



-- 
Lukas Renggli
www.lukas-renggli.ch

Reply via email to