Это зависит от выбранной вами платформы smalltalk. В основном у вас есть блочные локальные переменные на всех платформах smalltalk Есть ИМХО два вида реализаций. Если поддержка полного замыкания отсутствует, локальные переменные делятся с локальными переменными метода, окружающего этот блок. Для этого вам нужно знать, как обойти некоторые проблемы. Для полной поддержки закрытия существуют локальные переменные, которые работают, как и следовало ожидать.
У Squeak и Pharo раньше были местные жители, которые делятся с методом. В настоящее время существует виртуальная машина с полной поддержкой закрытия, и Pharo поддерживает ее полностью, и я думаю, что Squeak тоже. Я думаю, что драгоценный камень не имеет полной поддержки закрытия. Я не знаю о VaST и VisualWorks.
Вы всегда можете проверить это, выполнив что-то вроде следующего:
((1 to: 5) collect: [:i|
[ | local | local := i ]])
collect: [:each| each value]
Здесь вы получите только
#(1 2 3 4 5)
, если есть полная поддержка закрытия и
#(5 5 5 5 5)
если | местный | поделился с методом.