class: ProjectChecker
authorClaus Gittinger <cg@exept.de>
Sat, 30 Mar 2013 17:01:17 +0100
changeset 3167 56a8d17b6987
parent 3166 42bf0adbded2
child 3168 9e97b3ddbc71
class: ProjectChecker changed: #checkExtensionsListConsistency
ProjectChecker.st
--- a/ProjectChecker.st	Sat Mar 30 16:40:06 2013 +0100
+++ b/ProjectChecker.st	Sat Mar 30 17:01:17 2013 +0100
@@ -94,12 +94,6 @@
     "Created: / 11-01-2012 / 16:46:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
-!ProjectChecker class methodsFor:'others'!
-
-version_CVS
-    ^ '$Header: /cvs/stx/stx/libbasic3/ProjectChecker.st,v 1.15 2013-03-29 23:56:05 cg Exp $'
-! !
-
 !ProjectChecker methodsFor:'accessing'!
 
 checkExtensionsOnly:aBoolean
@@ -351,9 +345,25 @@
     ].
 
     (extensionsListed \ extensionsPresent) do:[:clsAndSel|
-         self addProblem: 
-            (ProjectProblem newExtensionMethodListedButDoesNotExist
-                className: clsAndSel first selector: clsAndSel second).                            
+        |cls clsName selector|
+
+        clsName := clsAndSel first.
+        selector := clsAndSel second.
+        (cls := Smalltalk classNamed: clsName) isNil ifTrue:[
+            self addProblem: 
+                (ProjectProblem newExtensionMethodsClassDoesNotExist
+                    className: clsName selector: selector).                            
+        ] ifFalse:[
+            (cls compiledMethodAt:selector) isNil ifTrue:[
+                self addProblem: 
+                    (ProjectProblem newExtensionMethodListedButDoesNotExist
+                        className: clsName selector: selector). 
+            ] ifFalse:[
+                self addProblem: 
+                    (ProjectProblem newExtensionMethodListedButInDifferentPackage
+                        className: clsName selector: selector). 
+            ]
+        ]
     ].
 
     (extensionsPresent \ extensionsListed) do:[:clsAndSel|
@@ -597,7 +607,11 @@
 !ProjectChecker class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic3/ProjectChecker.st,v 1.15 2013-03-29 23:56:05 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic3/ProjectChecker.st,v 1.16 2013-03-30 16:01:17 cg Exp $'
+!
+
+version_CVS
+    ^ '$Header: /cvs/stx/stx/libbasic3/ProjectChecker.st,v 1.16 2013-03-30 16:01:17 cg Exp $'
 !
 
 version_SVN