--- a/ContextInspectorView.st Mon Nov 03 16:20:13 1997 +0100
+++ b/ContextInspectorView.st Tue Nov 11 15:04:48 1997 +0100
@@ -58,7 +58,7 @@
|homeContext method homeNames rec sel implementorClass
argNames varNames tmpNames m argsOnly blockNode vars
numVarsInSource numVarsInContext isDoIt
- numArgs numVars n|
+ numArgs numVars n tempNames realTempNames|
(aContext == inspectedContext) ifTrue:[
listView selection notNil ifTrue:[
@@ -202,10 +202,53 @@
n := homeNames size.
n < (homeContext numVars + homeContext numArgs) ifTrue:[
+ "/ its a context which includes locals from
+ "/ inlined sub-blocks.
+ "/ First, generate synthetic varNames ...
+
homeNames := homeNames asOrderedCollection.
+ tempNames := OrderedCollection new.
n to:(homeContext numVars + homeContext numArgs - 1) do:[:inlinedTempIdx |
- homeNames add:('*t' , (inlinedTempIdx - n + 1) printString)
- ]
+ tempNames add:('*t' , (inlinedTempIdx - n + 1) printString)
+ ].
+
+ "/ now, see if we can find out more
+ "/ (failes, if source is not available)
+
+ method notNil ifTrue:[
+ (isDoIt and:[tempNames size > 0]) ifTrue:[
+ "/ special for #doIt
+ "/ my source is found in the method.
+ blockNode := Compiler
+ blockAtLine:(aContext lineNumber)
+ in:nil
+ orSource:('[' , method source , '\]') withCRs
+ numArgs:numArgs
+ numVars:numVars.
+ ] ifFalse:[
+ blockNode := Compiler
+ blockAtLine:(homeContext lineNumber)
+ in:method
+ orSource:nil
+ numArgs:numArgs
+ numVars:numVars.
+ ].
+
+ realTempNames := OrderedCollection new.
+ [blockNode notNil] whileTrue:[
+ blockNode variables notNil ifTrue:[
+ realTempNames := (blockNode variables collect:[:aVar | aVar name]) , realTempNames.
+ ].
+ blockNode arguments notNil ifTrue:[
+ realTempNames := (blockNode arguments collect:[:aVar | aVar name]) , realTempNames.
+ ].
+ blockNode := blockNode home.
+ ].
+ tempNames replaceFrom:1 to:tempNames size with:realTempNames.
+ ].
+
+ homeNames := homeNames asOrderedCollection.
+ homeNames addAll:tempNames.
]
].
@@ -292,7 +335,7 @@
workspace contents:nil.
self setDoitActionIn:workspace for:aContext.
- "Modified: 26.6.1997 / 10:33:53 / cg"
+ "Modified: / 8.11.1997 / 19:39:53 / cg"
!
release
@@ -460,5 +503,5 @@
!ContextInspectorView class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/ContextInspectorView.st,v 1.36 1997-10-29 16:06:16 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/ContextInspectorView.st,v 1.37 1997-11-11 14:04:48 cg Exp $'
! !