I'm not sure if I'm missing something, but there seems some strange behavior that I don't understand. The value of a block variable changes when stepping over a method that acts on that variable. I encountered this in Spec, but that seems co-incidental to the behaviour.
SETUP
1. The attached "My-Spec-Tutorial-BenComan.1.mcz" (i.e. Bahman's tutorial) was loaded into build #30564.

2. A breakpoint was inserted after the first "e generateArguments" in...
SpecRowLayout>>privateAsArray
   | result shouldCheckSplitters |
   result := OrderedCollection new.
shouldCheckSplitters := false. (self commands reject: [:e | e isSplitter ]) do: [:e |
   ...lots..hidden.for..conciseness....
       e generateArguments.
       self haltOnce. "<------------------"
       e asSpecElements do: [:el |
           result add: el ]].

3. The following was evaluated...
   Halt enableHaltOnce.
   MyFirstWindow new openWithSpec: #defaultSpec.


OBSERVATION
1. When the debugger opened at the breakpoint
e = a SpecLayoutAdd

2. But after stepping over #asSpecElements
e = an OrderedCollection()

So how did the value of 'e' change?

Where...
SpecLayoutAdd(SpecLayoutSend)>>asSpecElements
   ^ {self selector.}, self arguments

SpecLayoutAdd(SpecLayoutSend)>>selector
   ^ selector

SpecLayoutAdd(SpecLayoutSend)>>arguments
   ^ arguments


This was on Windows 7. Since files.pharo.org is offline, I wasn't able to try a newer VM. My current was...

NBCoInterpreter NativeBoost-CogPlugin-EstebanLorenzano.18 uuid: a53445f9-c0c0-4015-97a3-be7db8d9ed6b Mar 13 2013 NBCogit NativeBoost-CogPlugin-EstebanLorenzano.18 uuid: a53445f9-c0c0-4015-97a3-be7db8d9ed6b Mar 13 2013 git://gitorious.org/cogvm/blessed.git Commit: 412abef33cbed05cf1d75329e451d71c0c6aa5a7 Date: 2013-03-13 17:48:50 +0100 By: Esteban Lorenzano <[email protected]> Jenkins build #14535

Win32 built on Mar 13 2013 18:49:42 Compiler: 4.6.2
VMMaker versionString git://gitorious.org/cogvm/blessed.git Commit: 412abef33cbed05cf1d75329e451d71c0c6aa5a7 Date: 2013-03-13 17:48:50 +0100 By: Esteban Lorenzano <[email protected]> Jenkins build #14535 NBCoInterpreter NativeBoost-CogPlugin-EstebanLorenzano.18 uuid: a53445f9-c0c0-4015-97a3-be7db8d9ed6b Mar 13 2013 NBCogit NativeBoost-CogPlugin-EstebanLorenzano.18 uuid: a53445f9-c0c0-4015-97a3-be7db8d9ed6b Mar 13 2013

cheers -ben

Attachment: My-Spec-Tutorial-BenComan.1.mcz
Description: Binary data

Reply via email to