ProjectChecker.st
branchjv
changeset 3405 cec1fd1367ce
parent 3237 d24781ec9edc
child 3407 989191014bcd
--- a/ProjectChecker.st	Thu Sep 19 10:20:01 2013 +0100
+++ b/ProjectChecker.st	Fri Sep 20 11:37:11 2013 +0100
@@ -261,6 +261,38 @@
     "Modified: / 31-10-2012 / 17:40:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
+checkClassesAutoloadedSuperclasse: aCollection"of Class"
+    packageDef classNamesAndAttributesDo:[:clsnm :attributes|
+        | cls |
+
+        cls := Smalltalk at: clsnm.
+        (aCollection includes: cls) ifTrue:[
+            (attributes includes: #autoload) ifFalse:[
+                "/ Care for Object!!
+                cls superclass notNil ifTrue:[
+                    | superDef superNm |
+
+                    superDef := ProjectDefinition definitionClassForPackage: cls superclass package.
+                    superNm := cls superclass name.
+                    superDef classNamesAndAttributesDo:[:clsnm2 :attributes2|
+                        clsnm2 == superNm ifTrue:[
+                            (attributes2 includes: #autoload) ifTrue:[
+                                problems add:
+                                    (ProjectProblem newClassIsCompiledButSuperclassIsAutoloaded
+                                        package: package;
+                                        className: clsnm;
+                                        yourself)
+                            ].
+                        ].
+                    ]
+                ].
+            ].
+        ].
+    ].
+
+    "Created: / 20-09-2013 / 11:08:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 checkClassesForMethodsInNoProject:classesToCheck 
     | checker |
 
@@ -517,8 +549,10 @@
     self checkClassesListedInProjectDefinition: classesToCheck.
     self checkClassesForMethodsInNoProject:classesToCheck.
     self checkClassesForNonQualifiedSharedPools:classesToCheck.
+    self checkClassesAutoloadedSuperclasse:classesToCheck.
 
     "Created: / 13-02-2012 / 18:18:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 20-09-2013 / 11:08:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 checkMethod: method