The resolution of variables in nested blocks is not correct in some cases involving to:do: optimizations.
For example, the following code returns #(nil, nil, nil, 4); the correct result is #(1 2 3 4).
| a b |
a := Array new: 4.
b := Array new: 4.
1 to: a size do: [:i |
b at: i put: [10 timesRepeat: [a at: i put: i]]
].
1 to: b size do: [:j | (b at: j) value].
a
Last updated: 7/29/14