#OTHER by cg
class: Tools::NewSystemBrowser
changed: #spawnClassReferencesBrowserFor:label:in:
better search for class refs:
also search in projectDefinition specs.
--- a/Tools__NewSystemBrowser.st Wed Oct 05 17:54:28 2016 +0200
+++ b/Tools__NewSystemBrowser.st Wed Oct 05 18:29:10 2016 +0200
@@ -33944,10 +33944,9 @@
self class
findMethodsIn:setOfClasses
where:[:cls :mthdIn :sel |
- |mthd mSource isCandidate isReference usedGlobals|
+ |mthd mSource isCandidate isReference usedGlobals tryInLiterals|
mthd := mthdIn originalMethodIfWrapped.
-
"/ kludge: Lazy methods do not include symbols in the literal array - sigh
mthd isLazyMethod ifTrue:[
mSource := mthd source.
@@ -33978,7 +33977,13 @@
].
isReference ifFalse:[
"/ also search for class-refs in specs
- mthd hasCanvasResource ifTrue:[
+ tryInLiterals := mthd hasCanvasResource.
+ tryInLiterals ifFalse:[
+ tryInLiterals := mthd mclass isMeta
+ and:[ mthd mclass theNonMetaClass isProjectDefinition
+ and:[mthd selector == #classNamesAndAttributes]].
+ ].
+ tryInLiterals ifTrue:[
isReference := (mthd refersToLiteral:sym)
or:[(mthd refersToLiteral:fullNameSym)
or:[ localNameSym notNil