added: #checkPrerequisitesForLoading
changed:
#loadAsAutoloaded:
#rememberOverwrittenExtensionMethods
--- 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!