class: ProjectChecker
comment/format in: #check
changed:
#addProblem:
#checkClassListConsistency
--- 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 $'
! !