# HG changeset patch # User Claus Gittinger # Date 1255452624 -7200 # Node ID 24861bbf25fcd606039ba87c554ce192917cf91c # Parent 7ecada6b94dc5ddf6a2ec63bc1b35a4fab31f21f added: #checkPrerequisitesForLoading changed: #loadAsAutoloaded: #rememberOverwrittenExtensionMethods diff -r 7ecada6b94dc -r 24861bbf25fc 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!