#BUGFIX by cg
class: DoWhatIMeanSupport
changed: #addClassesOfVariable:inExpression:inClass:to:
--- a/DoWhatIMeanSupport.st Wed Jun 13 11:06:01 2018 +0200
+++ b/DoWhatIMeanSupport.st Wed Jun 13 15:47:41 2018 +0200
@@ -6111,6 +6111,8 @@
!
addClassesOfVariable:varName inExpression:expr inClass:classOrNil to:setOfPossibleClasses
+ "expr is either a variable-node or a message in which varName is the selector"
+
|varScope instVarClass classVarClass privateClass poolVarClass
sym topNameSpace exprVal|
@@ -6135,21 +6137,23 @@
varScope := expr whoDefines: varName.
(varScope notNil) ifTrue:[
- varScope isSequence ifTrue:[
- varScope := varScope parent.
+ expr isVariable ifTrue:[
+ varScope isSequence ifTrue:[
+ varScope := varScope parent.
+ ].
+
+ (varScope isBlock) ifTrue:[
+ self addClassesOfBlockVarForWellknownBlocks:expr inScope:varScope to:setOfPossibleClasses.
+ self addClassesFromAssignmentTo:varName in:varScope to:setOfPossibleClasses.
+ self addClassesFromMessagesSentTo:expr in:varScope to:setOfPossibleClasses.
+ ^ setOfPossibleClasses
+ ].
+ (varScope isMethod) ifTrue:[
+ self addClassesFromAssignmentTo:varName in:varScope to:setOfPossibleClasses.
+ self addClassesFromMessagesSentTo:expr in:varScope to:setOfPossibleClasses.
+ ^ setOfPossibleClasses
+ ].
].
-
- (varScope isBlock) ifTrue:[
- self addClassesOfBlockVarForWellknownBlocks:expr inScope:varScope to:setOfPossibleClasses.
- self addClassesFromAssignmentTo:varName in:varScope to:setOfPossibleClasses.
- self addClassesFromMessagesSentTo:expr in:varScope to:setOfPossibleClasses.
- ^ setOfPossibleClasses
- ].
- (varScope isMethod) ifTrue:[
- self addClassesFromAssignmentTo:varName in:varScope to:setOfPossibleClasses.
- self addClassesFromMessagesSentTo:expr in:varScope to:setOfPossibleClasses.
- ^ setOfPossibleClasses
- ].
].
classOrNil notNil ifTrue:[
@@ -6201,6 +6205,7 @@
^ setOfPossibleClasses
"Created: / 13-06-2018 / 10:17:42 / Claus Gittinger"
+ "Modified (comment): / 13-06-2018 / 12:41:28 / Claus Gittinger"
!
classOfNode:aNode