| 
					
				 | 
			
			
				@@ -394,38 +394,44 @@ ClassBuilder is responsible for compiling new classes or modifying existing clas 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Rather than using ClassBuilder directly to compile a class, use `Class >> subclass:instanceVariableNames:package:`.! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-!ClassBuilder methodsFor: 'api'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+!ClassBuilder methodsFor: 'accessing'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-class: aClass instanceVariableNames: aString 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	self basicClass: aClass instanceVariableNames: aString. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    self setupClass: aClass. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+instanceVariableNamesFor: aString 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	^(aString tokenize: ' ') reject: [ :each | each isEmpty ] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+! ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+!ClassBuilder methodsFor: 'class definition'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+addSubclassOf: aClass named: aString instanceVariableNames: aCollection package: packageName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    | theClass | 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    SystemAnnouncer current 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    	announce: (ClassDefinitionChanged new 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        	theClass: aClass; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            yourself) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    theClass := Smalltalk current at: aString. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   	theClass ifNotNil: [  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    	theClass superclass == aClass ifFalse: [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    		^ self  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        		migrateClassNamed: aString  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+           	 	superclass: aClass  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+           	 	instanceVariableNames: aCollection  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            	package: packageName ] ]. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-installMethod: aCompiledMethod forClass: aBehavior category: aString 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	aCompiledMethod category: aString. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	aBehavior addCompiledMethod: aCompiledMethod. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    self setupClass: aBehavior. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	^aCompiledMethod 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	^ self  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    	basicAddSubclassOf: aClass  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        named: aString  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        instanceVariableNames: aCollection  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        package: packageName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-renameClass: aClass to: aString 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	self basicRenameClass: aClass to: aString. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+class: aClass instanceVariableNames: aString 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	self basicClass: aClass instanceVariableNames: aString. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    self setupClass: aClass. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     SystemAnnouncer current 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    	announce: (ClassRenamed new 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    	announce: (ClassDefinitionChanged new 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         	theClass: aClass; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             yourself) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-setupClass: aClass 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	<smalltalk.init(aClass);> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 superclass: aClass subclass: aString 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	^self superclass: aClass subclass: aString instanceVariableNames: '' package: nil 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ! 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -446,64 +452,60 @@ superclass: aClass subclass: aString instanceVariableNames: aString2 package: aS 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	^newClass 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ! ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-!ClassBuilder methodsFor: 'private'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+!ClassBuilder methodsFor: 'class migration'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-addSubclassOf: aClass named: aString instanceVariableNames: aCollection package: packageName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    | theClass | 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+migrateClass: aClass superclass: anotherClass 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	console log: aClass name. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	self  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    	migrateClassNamed: aClass name 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        superclass: anotherClass 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        instanceVariableNames: aClass instanceVariableNames 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        package: aClass package name 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+migrateClassNamed: aString superclass: aClass instanceVariableNames: aCollection package: packageName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	| oldClass newClass tmp | 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    theClass := Smalltalk current at: aString. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    tmp := 'new*', aString. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    oldClass := Smalltalk current at: aString. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   	theClass ifNotNil: [  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    	theClass superclass == aClass ifFalse: [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    		^ self  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        		migrateClassNamed: aString  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-           	 	superclass: aClass  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-           	 	instanceVariableNames: aCollection  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            	package: packageName ] ]. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	^ self  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    	basicAddSubclassOf: aClass  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        named: aString  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        instanceVariableNames: aCollection  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        package: packageName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    newClass := self  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		addSubclassOf: aClass 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		named: tmp 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		instanceVariableNames: aCollection 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		package: packageName. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-basicAddSubclassOf: aClass named: aString instanceVariableNames: aCollection package: packageName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	< 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		smalltalk.addClass(aString, aClass, aCollection, packageName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		return smalltalk[aString] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	self basicSwapClassNames: oldClass with: newClass. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-basicClass: aClass instanceVariableNames: aString 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	self basicClass: aClass instanceVariables: (self instanceVariableNamesFor: aString) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	[ self copyClass: oldClass to: newClass ] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		on: Error 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		do: [ :exception | 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			self 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            	basicSwapClassNames: oldClass with: newClass; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            	basicRemoveClass: newClass. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            exception signal ]. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-basicClass: aClass instanceVariables: aCollection 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	self 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		rawRenameClass: oldClass to: tmp; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        rawRenameClass: newClass to: aString. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	aClass isMetaclass ifFalse: [self error: aClass name, ' is not a metaclass']. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	aClass basicAt: 'iVarNames' put: aCollection 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	oldClass subclasses do: [ :each | 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    	self migrateClass: each superclass: newClass ]. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-basicRemoveClass: aClass 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	<smalltalk.removeClass(aClass)> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    self basicRemoveClass: oldClass. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	^newClass 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-basicRenameClass: aClass to: aString 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	< 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		smalltalk[aString] = aClass; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		delete smalltalk[aClass.className]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		aClass.className = aString; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+renameClass: aClass to: aString 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	self basicRenameClass: aClass to: aString. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    SystemAnnouncer current 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    	announce: (ClassRenamed new 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        	theClass: aClass; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            yourself) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+! ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-basicSwapClassNames: aClass with: anotherClass 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	< 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		var tmp = aClass.className; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		aClass.className = anotherClass.className; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        anotherClass.className = tmp; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+!ClassBuilder methodsFor: 'copying'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 copyClass: aClass named: aString 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	| newClass | 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -532,52 +534,54 @@ copyClass: aClass to: anotherClass 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		Compiler new install: each source forClass: anotherClass class category: each category ]. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	self setupClass: anotherClass 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+! ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-instanceVariableNamesFor: aString 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	^(aString tokenize: ' ') reject: [ :each | each isEmpty ] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+!ClassBuilder methodsFor: 'method definition'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-migrateClass: aClass superclass: anotherClass 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	console log: aClass name. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	self  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    	migrateClassNamed: aClass name 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        superclass: anotherClass 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        instanceVariableNames: aClass instanceVariableNames 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        package: aClass package name 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+installMethod: aCompiledMethod forClass: aBehavior category: aString 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	aCompiledMethod category: aString. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	aBehavior addCompiledMethod: aCompiledMethod. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    self setupClass: aBehavior. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	^aCompiledMethod 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+! ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+!ClassBuilder methodsFor: 'private'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+basicAddSubclassOf: aClass named: aString instanceVariableNames: aCollection package: packageName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	< 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		smalltalk.addClass(aString, aClass, aCollection, packageName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return smalltalk[aString] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-migrateClassNamed: aString superclass: aClass instanceVariableNames: aCollection package: packageName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	| oldClass newClass tmp | 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    tmp := 'new*', aString. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    oldClass := Smalltalk current at: aString. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    newClass := self  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		addSubclassOf: aClass 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		named: tmp 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		instanceVariableNames: aCollection 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		package: packageName. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+basicClass: aClass instanceVariableNames: aString 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	self basicClass: aClass instanceVariables: (self instanceVariableNamesFor: aString) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	self basicSwapClassNames: oldClass with: newClass. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+basicClass: aClass instanceVariables: aCollection 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	[ self copyClass: oldClass to: newClass ] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		on: Error 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		do: [ :exception | 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			self 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            	basicSwapClassNames: oldClass with: newClass; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            	basicRemoveClass: newClass. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            exception signal ]. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	aClass isMetaclass ifFalse: [self error: aClass name, ' is not a metaclass']. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	aClass basicAt: 'iVarNames' put: aCollection 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	self 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		rawRenameClass: oldClass to: tmp; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        rawRenameClass: newClass to: aString. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+basicRemoveClass: aClass 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	<smalltalk.removeClass(aClass)> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	oldClass subclasses do: [ :each | 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    	self migrateClass: each superclass: newClass ]. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+basicRenameClass: aClass to: aString 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	< 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		smalltalk[aString] = aClass; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		delete smalltalk[aClass.className]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		aClass.className = aString; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    self basicRemoveClass: oldClass. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	^newClass 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+basicSwapClassNames: aClass with: anotherClass 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	< 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		var tmp = aClass.className; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		aClass.className = anotherClass.className; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        anotherClass.className = tmp; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 rawRenameClass: aClass to: aString 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -586,6 +590,12 @@ rawRenameClass: aClass to: aString 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ! ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+!ClassBuilder methodsFor: 'public'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+setupClass: aClass 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	<smalltalk.init(aClass);> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+! ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Object subclass: #ClassCategoryReader 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	instanceVariableNames: 'class category' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	package: 'Kernel-Classes'! 
			 |