[squeak-dev] The Trunk: Kernel-tfel.1040.mcz

commits at source.squeak.org commits at source.squeak.org
Tue Sep 27 12:57:56 UTC 2016


Tim Felgentreff uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-tfel.1040.mcz

==================== Summary ====================

Name: Kernel-tfel.1040
Author: tfel
Time: 27 September 2016, 2:57:29.665629 pm
UUID: e6781812-fc7b-a546-818b-0b16c5d62e88
Ancestors: Kernel-tfel.1039

refactor newSubclass to go through the more general newUniqueClassInstVars:classInstVars: method.

=============== Diff against Kernel-tfel.1039 ===============

Item was changed:
  ----- Method: Class>>newSubclass (in category 'subclass creation') -----
  newSubclass
- 	| i className |
- 	i := 1.
- 	[className := (self name , i printString) asSymbol.
- 	 self environment includesKey: className]
- 		whileTrue: [i := i + 1].
  
+ 	^ self newUniqueClassInstVars: '' classInstVars: ''
- 	^ self subclass: className
- 		instanceVariableNames: ''
- 		classVariableNames: ''
- 		poolDictionaries: ''
- 		category: Object categoryForUniclasses
  
  "Point newSubclass new"!

Item was changed:
  ----- Method: Object class>>newUniqueClassInstVars:classInstVars: (in category 'instance creation') -----
  newUniqueClassInstVars: instVarString classInstVars: classInstVarString
  	"Create a unique class for the receiver"
  
  	| aName aClass |
  	self isSystemDefined ifFalse:
  		[^ superclass newUniqueClassInstVars: instVarString classInstVars: classInstVarString].
  	aName := self chooseUniqueClassName.
  	aClass := self subclass: aName instanceVariableNames: instVarString 
  		classVariableNames: '' poolDictionaries: '' category: self categoryForUniclasses.
+ 	classInstVarString size > 0 ifTrue:
+ 		[aClass class instanceVariableNames: classInstVarString].
  	self flag: #todo. self flag: #uniclasses. "Discuss if we really want to hide uniclasses again"
  	aClass environment forgetClass: aClass logged: false.
  	self removeSubclass: aClass.
- 	classInstVarString size > 0 ifTrue:
- 		[aClass class instanceVariableNames: classInstVarString].
  	^ aClass!



More information about the Squeak-dev mailing list