[squeak-dev] The Trunk: PackageInfo-Base-eem.76.mcz

Marcel Taeumel marcel.taeumel at hpi.de
Tue Jun 14 10:18:14 UTC 2022


Thanks! :-)

Best,
Marcel
Am 11.06.2022 19:44:45 schrieb commits at source.squeak.org <commits at source.squeak.org>:
Eliot Miranda uploaded a new version of PackageInfo-Base to project The Trunk:
http://source.squeak.org/trunk/PackageInfo-Base-eem.76.mcz

==================== Summary ====================

Name: PackageInfo-Base-eem.76
Author: eem
Time: 11 June 2022, 10:44:36.386912 am
UUID: 0a39fe04-3bdd-45ae-94d1-8aff909211ce
Ancestors: PackageInfo-Base-mt.75

Fix PackageInfo>>#externalRefsSelect:thenCollect: to answer associations whose values include all external users, not just the last one.


[This has no effect on feature freeze since there are no senders of the two senders externalCallers & externalUsers. So for me it does count as a bug fix.]

=============== Diff against PackageInfo-Base-mt.75 ===============

Item was changed:
----- Method: PackageInfo>>externalRefsSelect:thenCollect: (in category 'dependencies') -----
externalRefsSelect: selBlock thenCollect: colBlock
| pkgMethods dependents extMethods otherClasses otherMethods classNames |

classNames := self classes collect: [:c | c name].
extMethods := self extensionMethods collect: [:mr | mr methodSymbol].
otherClasses := self externalClasses difference: self externalSubclasses.
otherMethods := otherClasses gather: [:c | c selectors].
pkgMethods := self methods asSet collect: [:mr | mr methodSymbol].
pkgMethods removeAllFoundIn: otherMethods.

dependents := Set new.
+ otherClasses do:
+ [:c |
- otherClasses do: [:c |
c selectorsAndMethodsDo:
+ [:sel :compiled | | refs |
- [:sel :compiled |
- | refs |
(extMethods includes: sel) ifFalse:
[refs := compiled literals select: selBlock thenCollect: colBlock.
+ refs := refs select: [:ea | (classNames includes: ea) or: [pkgMethods includes: ea]].
+ refs isEmpty ifFalse:
+ [dependents add: (self referenceForMethod: sel ofClass: c) -> (refs size = 1 ifTrue: [refs anyOne] ifFalse: [refs])]]]].
+ ^dependents!
- refs do: [:ea |
- ((classNames includes: ea) or: [pkgMethods includes: ea])
- ifTrue: [dependents add: (self referenceForMethod: sel ofClass: c) -> ea]]]]].
- ^ dependents!


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20220614/9940c8e9/attachment.html>


More information about the Squeak-dev mailing list