[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
|