added: #checkPrerequisitesForLoading
authorClaus Gittinger <cg@exept.de>
Tue, 13 Oct 2009 18:50:24 +0200
changeset 12262 24861bbf25fc
parent 12261 7ecada6b94dc
child 12263 c6d50824fbba
added: #checkPrerequisitesForLoading changed: #loadAsAutoloaded: #rememberOverwrittenExtensionMethods
ProjectDefinition.st
--- a/ProjectDefinition.st	Tue Oct 13 18:44:38 2009 +0200
+++ b/ProjectDefinition.st	Tue Oct 13 18:50:24 2009 +0200
@@ -2802,6 +2802,8 @@
     self projectIsLoaded ifTrue:[^ false].
     thisContext isRecursive ifTrue:[^ false].
 
+    self checkPrerequisitesForLoading.
+
     newStuffHasBeenLoaded := false.
 
     (self infoPrinting and:[Smalltalk silentLoading not]) ifTrue:[
@@ -4047,6 +4049,9 @@
         |class oldMethod oldPackage defClass|
 
         class := Smalltalk classNamed:className.
+        class isNil ifTrue:[
+            self error:'missing class for extension: ', className
+        ].
         oldMethod := class compiledMethodAt:selector.
         oldMethod notNil ifTrue:[
             oldPackage := oldMethod package.
@@ -4103,6 +4108,18 @@
 
 !ProjectDefinition class methodsFor:'private-loading'!
 
+checkPrerequisitesForLoading
+    self extensionMethodNames 
+        pairWiseDo:[:className :selector |
+            |class |
+
+            class := Smalltalk classNamed:className.
+            class isNil ifTrue:[
+                self error:'missing class for extension: ', className
+            ].
+        ]
+!
+
 loadAllClassesAsAutoloaded:asAutoloaded
     "load (fileIn) classes that should be present -
      install as autoloaded classes marked to be autoloaded.
@@ -4651,11 +4668,11 @@
 !ProjectDefinition class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/ProjectDefinition.st,v 1.246 2009-10-13 08:47:33 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/ProjectDefinition.st,v 1.247 2009-10-13 16:50:24 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libbasic/ProjectDefinition.st,v 1.246 2009-10-13 08:47:33 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/ProjectDefinition.st,v 1.247 2009-10-13 16:50:24 cg Exp $'
 ! !
 
 ProjectDefinition initialize!