class: ProjectChecker
authorClaus Gittinger <cg@exept.de>
Wed, 25 Feb 2015 00:50:29 +0100
changeset 3807 9746e6873402
parent 3806 47cbd61e441e
child 3808 c9927a70b702
class: ProjectChecker comment/format in: #check changed: #addProblem: #checkClassListConsistency
ProjectChecker.st
--- a/ProjectChecker.st	Wed Feb 25 00:48:50 2015 +0100
+++ b/ProjectChecker.st	Wed Feb 25 00:50:29 2015 +0100
@@ -144,8 +144,7 @@
         currentPackage := each.
         currentPackageDef := ProjectDefinition definitionClassForPackage: currentPackage.
         currentPackageDef isNil ifTrue:[
-            self addProblem: 
-                (ProjectProblem newProjectDefinitionDoesNotExist package: currentPackage).
+            self addProblem: (ProjectProblem newProjectDefinitionDoesNotExist package: currentPackage).
             ^self    
         ].
 
@@ -177,10 +176,11 @@
     "Checks whether all classes listed in #classNamesAndAttributes are present
     and if all present classes are listed"
 
-    |classesInImage classesInDescription classesInDescriptionChecked onlyInDescription|
+    |classesInImage classesInDescription classesInDescriptionChecked onlyInDescription onlyInImage|
     "WARNING: Copy/paste of ProjectDefinition>>validateDescription"
 
     classesInImage := Smalltalk allClasses select:[:cls | (cls package = currentPackage) and:[cls isPrivate not]].
+
     "/ classesInDescription := self classes asIdentitySet.
     classesInDescription := OrderedCollection new.
     ( (currentPackageDef compiled_classNames_common)
@@ -190,19 +190,20 @@
 
         cls := Smalltalk at:nm asSymbol.
         cls isNil ifTrue:[
-            self addProblem: 
-                (ProjectProblem newClassListedButDoesNotExist className: nm)
+            self addProblem: (ProjectProblem newClassListedButDoesNotExist className: nm)
         ] ifFalse:[
-            classesInDescription add:cls.
+            cls package ~= currentPackage ifTrue:[
+                self addProblem: (ProjectProblem newClassListedButInOtherPackage className: nm)
+            ] ifFalse:[
+                classesInDescription add:cls.
+            ]
         ].
     ].
 
-    classesInDescriptionChecked := OrderedCollection new.
+    classesInDescriptionChecked := Set new.
     classesInDescription do:[:eachClass |
         (classesInDescriptionChecked includes: eachClass) ifTrue:[
-                    self addProblem: 
-                        (ProjectProblem newClassListedMultipleTimes
-                            className: eachClass name)
+            self addProblem: (ProjectProblem newClassListedMultipleTimes className: eachClass name)
         ].
 
         eachClass sharedPoolNames do:[:eachPoolName |
@@ -257,7 +258,7 @@
 "/        onlyInImage := (classesInImage reject:[:cls | classesInDescription includes:cls]).
 "/        onlyInImage do:[:cls|
 "/            self addProblem: 
-"/                (ProjectProblem newClassNotListed className: cls name).
+"/                (ProjectProblem newClassListedButInOtherPackage className: cls name).
 "/        ].
         onlyInDescription := (classesInDescription reject:[:cls | classesInImage includes:cls]).
         onlyInDescription do:[:cls|
@@ -749,6 +750,7 @@
 !ProjectChecker methodsFor:'reporting'!
 
 addProblem: aProjectProblem
+Transcript showCR:aProjectProblem.
     aProjectProblem package: currentPackage.
     problems isNil ifTrue:[problems := OrderedCollection new].
     problems add: aProjectProblem.
@@ -761,14 +763,14 @@
 !ProjectChecker class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic3/ProjectChecker.st,v 1.32 2015-02-24 17:53:06 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic3/ProjectChecker.st,v 1.33 2015-02-24 23:50:29 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libbasic3/ProjectChecker.st,v 1.32 2015-02-24 17:53:06 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic3/ProjectChecker.st,v 1.33 2015-02-24 23:50:29 cg Exp $'
 !
 
 version_SVN
-    ^ '$Id: ProjectChecker.st,v 1.32 2015-02-24 17:53:06 cg Exp $'
+    ^ '$Id: ProjectChecker.st,v 1.33 2015-02-24 23:50:29 cg Exp $'
 ! !