Eliot Miranda uploaded a new version of System to project The Trunk: http://source.squeak.org/trunk/System-eem.1194.mcz
==================== Summary ====================
Name: System-eem.1194 Author: eem Time: 2 December 2020, 9:58:22.669121 pm UUID: e3212f4a-d84c-4e35-b05e-ab5e16af91c0 Ancestors: System-tonyg.1193
When computing SystemNavigation>>allSentMessagesWithout: use anyAndAllSelectorsDo: which does a much better job than the existing code, and uses (indirectly) Scanner>>isMessageSelector: which provides a single point of definition to maintain cnsistency across tools, etc.
=============== Diff against System-tonyg.1193 ===============
Item was changed: ----- Method: SystemNavigation>>allSentMessagesWithout: (in category 'query') ----- allSentMessagesWithout: classesAndMessagesPair "Answer the set of selectors which are sent somewhere in the system, computed in the absence of the supplied classes and messages." | sent absentClasses absentSelectors | sent := IdentitySet new: CompiledMethod instanceCount. absentClasses := classesAndMessagesPair first. absentSelectors := classesAndMessagesPair second. "sd 29/04/03" + Cursor execute showWhile: + [self environment allClassesAndTraitsDo: + [:cls | + ((absentClasses includes: cls) ifTrue: [{}] ifFalse: [{cls. cls classSide}]) do: + [:each | + (absentSelectors isEmpty - Cursor execute showWhile: [ - self environment allClassesAndTraitsDo: [:cls | - ((absentClasses includes: cls) - ifTrue: [{}] - ifFalse: [{cls. cls classSide}]) - do: [:each | (absentSelectors isEmpty ifTrue: [each selectors] + ifFalse: [each selectors copyWithoutAll: absentSelectors]) do: + [:sel | "Include all sels, but not if sent by self" + (each compiledMethodAt: sel) anyAndAllSelectorsDo: + [:m| + m == sel ifFalse: + [sent add: m]]]]]]. - ifFalse: [each selectors copyWithoutAll: absentSelectors]) - do: [:sel | "Include all sels, but not if sent by self" - (each compiledMethodAt: sel) allLiteralsDo: [:m | - self flag: #dicuss. "mt: How to distinguish a symbol from a selector?" - (m isSymbol and: [m size > 0 and: [m first isLowercase]]) - ifTrue: ["might be sent" - m == sel ifFalse: [sent add: m]]. - ]]]]]. "The following may be sent without being in any literal frame" Smalltalk specialSelectorNames do: [:sel | sent add: sel]. + Smalltalk presumedSentMessages do: [:sel | sent add: sel]. + ^sent! - Smalltalk presumedSentMessages do: [:sel | sent add: sel]. - ^ sent.!
packages@lists.squeakfoundation.org