--- a/SystemBrowser.st Sun May 15 17:51:42 2016 +0200
+++ b/SystemBrowser.st Mon May 16 09:17:47 2016 +0200
@@ -5498,7 +5498,7 @@
"/ and used symbols/globals first...
allUsedSymbolsInLiteralArray := usedSymbols isEmptyOrNil or:[ literalsInMethod includesAll:usedSymbols ].
allUsedSymbolsInLiteralArray ifTrue:[
- "/ not true, but I am lazy: if ANY string is in match, ANY string must be in method
+ "/ if ANY string is in match, ANY string must be in method (not true, but I am lazy)
"/ that does not work for stc compiled code, because it does not put strings into the literal array
isSTCCompiled := m byteCode isNil.
isSTCCompiled ifTrue:[
@@ -5510,44 +5510,42 @@
allStringsInLiteralArray ifTrue:[
allGlobalsReferenced := globalVariablesUsed conform:[:varNames | varNames contains:[:varName | m referencesGlobal:varName]].
allGlobalsReferenced ifTrue:[
- allMessagesSent := sentMessages isEmptyOrNil or:[ m messages includesAll:sentMessages ].
+ allMessagesSent := sentMessages isEmptyOrNil
+ or:[ m messagesSent includesAll:sentMessages ].
allMessagesSent ifTrue:[
- allSent := sentMessages conform:[:sel | (m sends:sel)].
- allSent ifTrue:[
- src := m source.
- src isNil ifTrue:[
- ('Browser [info]: no source for ' , m printString) infoPrintCR.
- ] ifFalse:[
- isSTCCompiled ifTrue:[
- usedStrings notEmptyOrNil ifTrue:[
- "/ now that we have the source, scan the source for the literal strings,
- "/ before doing a slow parse
- allStringsInLiteralArray := usedStrings conform:[:eachString | src includesString:eachString].
- ]
- ].
- allStringsInLiteralArray ifTrue:[
- (searcher canQuicklyReject:src) ifTrue:[
- "/ Transcript show:'qReject: '; showCR:m whoString.
- ] ifFalse:[
- "/ the rest is done by the slower RB-match process...
- parseTree :=
- RBParser
- parseSearchMethod:src
- onError: [:str :pos |
- "/ self halt.
- Transcript show:'Error during search in '; showCR:m.
- Transcript showCR:str.
- Transcript showCR:pos.
- nil
- ].
-
- parseTree notNil ifTrue:[
- searcher executeTree:parseTree.
- "/ notice: searcher sets foundMatch !!
- ].
+ src := m source.
+ src isNil ifTrue:[
+ ('Browser [info]: no source for ' , m printString) infoPrintCR.
+ ] ifFalse:[
+ isSTCCompiled ifTrue:[
+ usedStrings notEmptyOrNil ifTrue:[
+ "/ now that we have the source, scan the source for the literal strings,
+ "/ before doing a slow parse
+ allStringsInLiteralArray := usedStrings conform:[:eachString | src includesString:eachString].
+ ]
+ ].
+ allStringsInLiteralArray ifTrue:[
+ (searcher canQuicklyReject:src) ifTrue:[
+ "/ Transcript show:'qReject: '; showCR:m whoString.
+ ] ifFalse:[
+ "/ the rest is done by the slower RB-match process...
+ parseTree :=
+ RBParser
+ parseSearchMethod:src
+ onError: [:str :pos |
+ "/ self halt.
+ Transcript show:'Error during search in '; showCR:m.
+ Transcript showCR:str.
+ Transcript showCR:pos.
+ nil
+ ].
+
+ parseTree notNil ifTrue:[
+ searcher executeTree:parseTree.
+ "/ notice: searcher sets foundMatch !!
].
].
- ]
+ ].
]
]
]