Bug 44478

GemStone/S 64 Bit

3.2.16, 3.2.15, 3.2.14, 3.2.13, 3.2.12, 3.2.11, 3.2.10, 3.2.9, 3.2.8.1, 3.2.8, 3.2.7, 3.2.6, 3.2.5, 3.2.4, 3.2.3, 3.2.2, 3.2.1, 3.2, 3.1.0.6, 3.1.0.5, 3.1.0.4, 3.1.0.3, 3.1.0.2, 3.1.0.1, 3.1, 3.0.1, 3.0

3.3

Blocks may return wrong values when nested variable is assigned in outer scope

A block that is nested within another block can, in some cases, have the wrong value for a variable that is declared in an outer scope. An assignment to the variable performed in the outer scope is not always propagated to the inner block when it should be.

For example, the following returns 1, and should return 100:

[ | temp myBlock |
  temp := 1.
  myBlock := [ temp ].
  temp := 100.
  myBlock value ]
    value


Last updated: 7/29/14