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

Reply via email to