diff -r c48d8c45c740 -r c7c69123fd48 Class.st --- a/Class.st Tue Jul 18 11:19:26 2000 +0200 +++ b/Class.st Thu Jul 20 16:02:47 2000 +0200 @@ -1055,11 +1055,29 @@ ]. ]. + "/ cannot unload, if non-autoloaded subclasses exist ... self allSubclassesDo:[:aClass | - aClass unload + aClass wasAutoloaded ifFalse:[ + aClass isPrivate ifFalse:[ + self warn:('cannot unload ' , self name , ' (' , aClass name , ' requires it'). + ^ self. + ] + ] + ]. + + self allSubclassesDo:[:aClass | + aClass wasAutoloaded ifTrue:[ + aClass unload + ] ifFalse:[ + aClass removeFromSystem. + ] + ]. + self privateClasses do:[:aClass | + aClass removeFromSystem. ]. Transcript showCR:'unloading ' , name , ' ...'. + "/ reinstall as autoloaded Autoload removeClass:self. nm := name. Smalltalk at:nm put:nil. @@ -4434,5 +4452,5 @@ !Class class methodsFor:'documentation'! version - ^ '$Header: /cvs/stx/stx/libbasic/Class.st,v 1.373 2000-07-17 17:01:22 cg Exp $' + ^ '$Header: /cvs/stx/stx/libbasic/Class.st,v 1.374 2000-07-20 14:02:47 cg Exp $' ! !