Tools_MethodCategoryList.st
changeset 8990 437c2f8eb9a5
parent 8989 b0d23a8ca15b
child 8992 d7a42a5b9be4
--- a/Tools_MethodCategoryList.st	Wed Oct 14 16:51:29 2009 +0200
+++ b/Tools_MethodCategoryList.st	Wed Oct 14 20:11:22 2009 +0200
@@ -1309,43 +1309,6 @@
 "/    ChangeSet removeDependent:self.
 !
 
-methodInfoFor:aMethod in:mclass selector:selector
-    |info|
-
-    "/ the first at:ifAbsent: is aktually not needed - it is here to
-    "/ reduce the average blocking time, and to allow for debugging the info generating
-    "/ code without deadlock
-    info := MethodInfoCache at:(mclass name,'>>',selector) ifAbsent:nil.
-    info isNil ifTrue:[
-        true "aMethod mclass language isSmalltalk" ifTrue:[
-            info := CachedMethodInfo new.
-            info isObsolete:(aMethod isObsolete).
-            info sendsSuper:(aMethod superMessages notEmptyOrNil).
-            info isUncommented:(self methodIsMarkedAsUncommented:aMethod).
-            info isDocumentationMethod:( aMethod isDocumentationMethod).
-            info isLongMethod:( self methodIsMarkedAsLong:aMethod ).
-
-            aMethod package ~= mclass package ifTrue:[
-                aMethod package ~= #'__NoProject__' ifTrue:[
-                    info isExtensionMethod:true.
-                    info isOverride:( aMethod package asPackageId projectDefinitionClass 
-                                        methodOverwrittenBy:aMethod ) notNil
-                ]
-            ] ifFalse:[
-                info isExtensionMethod:false.
-                info isOverride:false.
-            ].
-            info isRedefine:( mclass superclass notNil
-                             and:[ (mclass superclass whichClassIncludesSelector:selector ) notNil ]).
-
-            MethodInfoCacheAccessLock critical:[
-                MethodInfoCache at:(mclass name,'>>',selector) put:info
-            ].
-        ].
-    ].
-    ^ info
-!
-
 release
     super release.
 
@@ -1417,6 +1380,47 @@
 
 !MethodCategoryList methodsFor:'private-info'!
 
+methodInfoFor:aMethod in:mclass selector:selector
+    |info isDocumentationMethod isVersionMethod|
+
+    "/ the first at:ifAbsent: is aktually not needed - it is here to
+    "/ reduce the average blocking time, and to allow for debugging the info generating
+    "/ code without deadlock
+    info := MethodInfoCache at:(mclass name,'>>',selector) ifAbsent:nil.
+    info isNil ifTrue:[
+        true "aMethod mclass language isSmalltalk" ifTrue:[
+            info := CachedMethodInfo new.
+            info isObsolete:(aMethod isObsolete).
+            info sendsSuper:(aMethod superMessages notEmptyOrNil).
+            info isUncommented:(self methodIsMarkedAsUncommented:aMethod).
+            isVersionMethod := aMethod isVersionMethod.
+            isDocumentationMethod := isVersionMethod not and:[aMethod isDocumentationMethod].
+            info isDocumentationMethod:isDocumentationMethod.
+            info isLongMethod:( self methodIsMarkedAsLong:aMethod ).
+
+            aMethod package ~= mclass package ifTrue:[
+                aMethod package ~= #'__NoProject__' ifTrue:[
+                    info isExtensionMethod:true.
+                    info isOverride:( aMethod package asPackageId projectDefinitionClass 
+                                        methodOverwrittenBy:aMethod ) notNil
+                ]
+            ] ifFalse:[
+                info isExtensionMethod:false.
+                info isOverride:false.
+            ].
+            info isRedefine:( isVersionMethod not
+                              and:[ isDocumentationMethod not
+                              and:[ mclass superclass notNil
+                              and:[ (mclass superclass whichClassIncludesSelector:selector ) notNil ]]]).
+
+            MethodInfoCacheAccessLock critical:[
+                MethodInfoCache at:(mclass name,'>>',selector) put:info
+            ].
+        ].
+    ].
+    ^ info
+!
+
 methodIsMarkedAsLong:aMethod
     "if true, it will be also categorized under the pseudo category 'long'"
 
@@ -1648,11 +1652,11 @@
 !MethodCategoryList class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/Tools_MethodCategoryList.st,v 1.40 2009-10-14 14:51:29 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Tools_MethodCategoryList.st,v 1.41 2009-10-14 18:11:22 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libtool/Tools_MethodCategoryList.st,v 1.40 2009-10-14 14:51:29 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Tools_MethodCategoryList.st,v 1.41 2009-10-14 18:11:22 cg Exp $'
 ! !
 
 MethodCategoryList initialize!