--- 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 $'
! !