Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
switch default inspect to use #view; add new (failing) test TDStackFr…
…ameNewTests>>testNestedBlockTempsAndArgsWithComplexOverride
  • Loading branch information
dalehenrich committed Jan 1, 2017
1 parent 89e7884 commit 5679e2f
Show file tree
Hide file tree
Showing 7 changed files with 73 additions and 16 deletions.
@@ -0,0 +1,17 @@
block methods
nestedBlockTempsAndArgsWithComplexOverride: arg1
| a b c d e f block |
a := 1.
b := 2.
c := 3.
d := 4.
e := 5.
f := 6.
block := [ | c d |
c := 13.
d := 14.
1 to: 3 do: [ :index | f := index ].
[ | d e |
e := 25.
self halt ] value ] value.
block value
@@ -0,0 +1,44 @@
tests
testNestedBlockTempsAndArgsWithComplexOverride
| frames homeMethod blockFrame theContext frameMap x nestedValueMap selector |
nestedValueMap := Dictionary new
at: 'a' put: 1;
at: 'arg1' put: 3;
at: 'b' put: 2;
at: 'block' put: nil;
at: 'c' put: 13;
at: 'd' put: TDTodeExpandedContext noValueMarker;
at: 'index' put: 3;
at: 'f' put: 3;
yourself.
selector := #'nestedBlockTempsAndArgsWithComplexOverride:'.
homeMethod := self compiledMethodAt: selector.
[ self perform: selector with: 3 ]
on: Halt
do: [ :ex | self halt.
frames := self createFrames ].
blockFrame := frames first
findFrameSuchThat: [ :frame | frame homeMethod == homeMethod ].
theContext := blockFrame thisContext.
frameMap := blockFrame syntheticFrameMap.
self assert: blockFrame nestedArgAndTempVarNamesMap size = nestedValueMap size.
self assert: blockFrame argAndTempNames size = 2.
self assert: frameMap size == 1.
nestedValueMap keysAndValuesDo: [ :key :value | self
assert:
(x := blockFrame nestedArgOrTempNamed: key ifAbsent: [ self assert: false ])
== value ].
self
assert:
(x := blockFrame argOrTempNamed: 'e' ifAbsent: [ self assert: false ]) == 1.
self
assert:
(x := blockFrame objectFor: 'self' ifAbsent: [ self assert: false ]) == nil.
self
assert:
(x := blockFrame objectFor: '(thisContext)' ifAbsent: [ self assert: false ])
== theContext.
self
validateThisContextWithHomeContext: theContext
frame: blockFrame
home: homeMethod
Expand Up @@ -8,8 +8,9 @@
"execBlockComplexScopedTempsAndArgs:" : "dkh 12/30/2016 09:09",
"execBlockNestedBlockTempsAndArgs:" : "dkh 12/30/2016 11:14",
"nestedBlockTempsAndArgs:" : "dkh 12/31/2016 05:55",
"nestedBlockTempsAndArgsWithComplexOverride:" : "dkh 01/01/2017 10:51",
"nestedBlockTempsAndArgsWithNestedOverride:" : "dkh 01/01/2017 10:25",
"nestedBlockTempsAndArgsWithNestedOverride:nestedValueMap:" : "dkh 12/31/2016 07:35",
"nestedBlockTempsAndArgsWithNestedOverride:nestedValueMap:" : "dkh 01/01/2017 11:03",
"nestedBlockTempsAndArgsWithNestedOverrideA:" : "dkh 12/31/2016 06:31",
"nestedBlockTempsAndArgsWithNestedOverrideB1:" : "dkh 12/31/2016 07:24",
"nestedBlockTempsAndArgsWithNestedOverrideB2:" : "dkh 12/31/2016 07:25",
Expand Down Expand Up @@ -39,6 +40,7 @@
"testFactorySimpleBlockCompileInContextBaseNodeMap" : "dkh 12/31/2016 05:46",
"testFactorySimpleBlockCompileInContextObjectEvaluateInBaseNodeMap" : "dkh 12/31/2016 05:49",
"testNestedBlockTempsAndArgs" : "dkh 12/31/2016 06:08",
"testNestedBlockTempsAndArgsWithComplexOverride" : "dkh 01/01/2017 12:08",
"testNestedBlockTempsAndArgsWithNestedOverrideA" : "dkh 12/31/2016 07:13",
"testNestedBlockTempsAndArgsWithNestedOverrideB1" : "dkh 01/01/2017 10:27",
"testNestedBlockTempsAndArgsWithNestedOverrideB2" : "dkh 01/01/2017 10:27",
Expand Down

Large diffs are not rendered by default.

Expand Up @@ -3,25 +3,19 @@ platformInitialize
"do not persist objIn ... preserve isolation from instances that cannot be persisted: socket, semaphore, processScheduler, etc."

(Warning respondsTo: #'addDefaultHandler:')
ifTrue: [
"3.x only"
ifTrue: [ "3.x only"
GsInteractionRequest defaultHandlers isEmpty
ifTrue: [
"signalled from GemStone base interactions"
GsInteractionRequest
addDefaultHandler: [ :ex |
| result handler |
ifTrue: [ "signalled from GemStone base interactions"
GsInteractionRequest addDefaultHandler: [ :ex | | result handler |
handler := GsInteractionHandler new
defaultBlock: [ :interaction |
result := self topezClientForwarder
defaultBlock: [ :interaction | result := self topezClientForwarder
interactWith:
(self objectSerializer toString: interaction copyAsTodeInteraction).
ex response: (self objectSerializer fromString: result) ];
inspectBlock: [ :interaction |
interaction theObject
inspectBlock: [ :interaction | interaction theObject
editUsing:
((TDEditorSpec topez: self editorAspect: #'inspect')
builderAspect: #'inspect';
builderAspect: #'view';
yourself).
ex response: interaction theObject ];
yourself.
Expand Down
Expand Up @@ -125,7 +125,7 @@
"openDebugger" : "dkh 04/29/2016 16:37",
"openWorkspaceForClientElement:" : "dkh 06/28/2014 10:27",
"persistentElementCache" : "dkh 08/18/2015 16:23",
"platformInitialize" : "dkh 09/01/2015 11:11",
"platformInitialize" : "dkh 01/01/2017 11:22",
"platformInitialize2x" : "dkh 06/25/2015 16:08",
"postLogin" : "dkh 10/17/2015 20:10",
"redirectObjIn:" : "dkh 05/15/2013 15:25",
Expand Down

Large diffs are not rendered by default.

0 comments on commit 5679e2f

Please sign in to comment.