[squeak-dev] decompiler breaks some methods

Hans-Martin Mosner hmm at heeg.de
Tue May 18 19:15:23 UTC 2010


Hello,
while looking at the decompiled code of some OMeta methods I noticed
that the temp name handling in the decompiler seems to be broken.
When you compile a method with temps that are referenced from blocks,
the decompiler tends to rearrange the temp names, so this method

test
    | one two |
    two := 2.
    ^{[one := 1].
    [ [one + two] value]}

gets decompiled to this:

test
    | one two |
    one := 2.
    ^ {[two := 1]. [[two + one] value]}

But that's only a nuisance. The bug really shows up when you decompile a
method compiled using OMeta.
To see what I mean, load the OMeta2 package and have a look at method
OMeta2AndOrOpt>>and.

Cheers,
Hans-Martin



More information about the Squeak-dev mailing list