> > > 1. sometimes the debugger can not inspect a single tempvar (list of all > temps is working) > 2. number of temp vars (in method header) is wrong: > > | a b c | > a := 1. > b := 2. > c := 3. > [[a asString] > on: Error > do: [:ex | a > value: a > value: b > value: c]. > c < 0] whileTrue. > > method header numtemps 1 > > | a b c | > a := 1. > b := 2. > c := 3. > c < 0 > ifTrue: [ > [ a asString ] > on: Error > do: [ :ex | a value: a value: b value: c ]. > c < 0 ]. > ^ a > > method header numtemps 3 > > both methods define a block with a nested block. > In the first method it is the receiver of #whileTrue: > the second method it is the argument to #ifTrue: > I think both blocks are optimized, but somehow the > block receiving the whileTrue: message makes the computation > for the number of tempvars wronng >
What is happening is that the variables are wrongly put in a temp vector... in the case of loops. the one temp is this vector. this should be fixed.
