--- a/Tools_MethodCategoryList.st Sat Oct 10 08:01:44 2009 +0200
+++ b/Tools_MethodCategoryList.st Sat Oct 10 08:02:02 2009 +0200
@@ -28,7 +28,8 @@
Object subclass:#CachedMethodInfo
instanceVariableNames:'flags'
classVariableNames:'FlagObsolete FlagSendsSuper FlagIsUncommented
- FlagIsDocumentationMethod FlagIsLongMethod'
+ FlagIsDocumentationMethod FlagIsLongMethod FlagIsExtension
+ FlagIsOverride'
poolDictionaries:''
privateIn:MethodCategoryList
!
@@ -797,7 +798,7 @@
on:[:whatToDo |
|protocols
allProtocols superSendProtocols uncommentedProtocols obsoleteProtocols
- documentationProtocols longProtocols
+ documentationProtocols longProtocols extensionProtocols overrideProtocols
noCat static notStatic classSelectorPairsAlreadyDone
packages remainingClasses remainingCategories classesAlreadyDone noPackage|
@@ -818,6 +819,8 @@
obsoleteProtocols := protocols includes:(self class nameListEntryForObsolete).
documentationProtocols := protocols includes:(self class nameListEntryForDocumentation).
longProtocols := protocols includes:(self class nameListEntryForLong).
+ extensionProtocols := protocols includes:(self class nameListEntryForExtensions).
+ overrideProtocols := protocols includes:(self class nameListEntryForOverride).
"/ packages := packageFilter value value.
"/ (packages notNil and:[packages includes:(self class nameListEntryForALL)]) ifTrue:[
@@ -881,6 +884,14 @@
longProtocols ifTrue:[
info isNil ifTrue:[ info := self methodInfoFor:mthd ].
includeIt := info isLongMethod ]].
+ includeIt ifFalse:[
+ extensionProtocols ifTrue:[
+ info isNil ifTrue:[ info := self methodInfoFor:mthd ].
+ includeIt := info isExtensionMethod ]].
+ includeIt ifFalse:[
+ overrideProtocols ifTrue:[
+ info isNil ifTrue:[ info := self methodInfoFor:mthd ].
+ includeIt := info isOverride ]].
includeIt ifTrue:[
(methodVisibilityHolder value == #class) ifTrue:[
@@ -1005,7 +1016,8 @@
itemsInChangeSet itemsInRemoteChangeSet
packageFilterOnInput packageFilter nameListEntryForALL changeSet
emphasizedPlus emphasisForRef emphasisForMod
- numObsolete numSuper numUncommented numDocumentation numLong|
+ numObsolete numSuper numUncommented numDocumentation numLong numOverride
+ numExtension|
generator := inGeneratorHolder value.
generator isNil ifTrue:[ ^ #() ].
@@ -1034,6 +1046,7 @@
variablesToHighlight := variableFilter value.
classVarsToHighLight := filterClassVars value.
numObsolete := numSuper := numUncommented := numDocumentation := numLong := 0.
+ numOverride := numExtension := 0.
generator do:[:clsIn :catIn |
|emptyProtocols clsName doHighLight doHighLightRed suppress|
@@ -1087,6 +1100,8 @@
info isUncommented ifTrue:[ numUncommented := numUncommented + 1 ].
info isDocumentationMethod ifTrue:[ numDocumentation := numDocumentation + 1 ].
info isLongMethod ifTrue:[ numLong := numLong + 1 ].
+ info isExtensionMethod ifTrue:[ numExtension := numExtension + 1 ].
+ info isOverride ifTrue:[ numOverride := numOverride + 1 ].
]
].
].
@@ -1244,6 +1259,14 @@
categoryList add:((self class nameListEntryForObsolete bindWith:numObsolete) asText allItalic).
rawProtocolList add:self class nameListEntryForObsolete.
].
+ numExtension > 0 ifTrue:[
+ categoryList add:((self class nameListEntryForExtensions bindWith:numExtension) asText allItalic).
+ rawProtocolList add:self class nameListEntryForExtensions.
+ ].
+ numOverride > 0 ifTrue:[
+ categoryList add:((self class nameListEntryForOverride bindWith:numOverride) asText allItalic).
+ rawProtocolList add:self class nameListEntryForOverride.
+ ].
].
].
^ categoryList
@@ -1280,6 +1303,8 @@
info isUncommented:(aMethod comment isEmptyOrNil and:[aMethod isVersionMethod not]).
info isDocumentationMethod:( aMethod isDocumentationMethod).
info isLongMethod:( aMethod source asCollectionOfLines size > UserPreferences current numberOfLinesForLongMethod ).
+ info isExtensionMethod:( aMethod package ~= aMethod mclass package ).
+ info isOverride:( aMethod mclass superclass respondsTo:aMethod selector ).
].
info
]
@@ -1452,6 +1477,8 @@
FlagIsUncommented := 4.
FlagIsDocumentationMethod := 8.
FlagIsLongMethod := 16.
+ FlagIsExtension := 32.
+ FlagIsOverride := 64.
! !
!MethodCategoryList::CachedMethodInfo class methodsFor:'instance creation'!
@@ -1476,6 +1503,16 @@
ifFalse:[ flags bitClear: FlagIsDocumentationMethod]
!
+isExtensionMethod
+ ^ (flags ? 0) bitTest: FlagIsExtension
+!
+
+isExtensionMethod:aBoolean
+ flags := aBoolean
+ ifTrue:[ flags bitOr: FlagIsExtension ]
+ ifFalse:[ flags bitClear: FlagIsExtension]
+!
+
isLongMethod
^ (flags ? 0) bitTest: FlagIsLongMethod
!
@@ -1496,6 +1533,16 @@
ifFalse:[ flags bitClear: FlagObsolete]
!
+isOverride
+ ^ (flags ? 0) bitTest: FlagIsOverride
+!
+
+isOverride:aBoolean
+ flags := aBoolean
+ ifTrue:[ flags bitOr: FlagIsOverride ]
+ ifFalse:[ flags bitClear: FlagIsOverride]
+!
+
isUncommented
^ (flags ? 0) bitTest: FlagIsUncommented
!
@@ -1519,11 +1566,11 @@
!MethodCategoryList class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/Tools_MethodCategoryList.st,v 1.34 2009-10-04 15:08:55 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/Tools_MethodCategoryList.st,v 1.35 2009-10-10 06:02:02 cg Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libtool/Tools_MethodCategoryList.st,v 1.34 2009-10-04 15:08:55 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/Tools_MethodCategoryList.st,v 1.35 2009-10-10 06:02:02 cg Exp $'
! !
MethodCategoryList initialize!