[Pkg] The Trunk: Traits-cwp.293.mcz

commits at source.squeak.org commits at source.squeak.org
Mon Apr 29 18:08:50 UTC 2013

Colin Putney uploaded a new version of Traits to project The Trunk:

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

Name: Traits-cwp.293
Author: cwp
Time: 29 April 2013, 11:07:42.535 am
UUID: f3c6cade-2e61-41c9-904d-9c77f00030a8
Ancestors: Traits-cwp.292

When registering a Trait, catch and resume AttemptToWriteReadOnlyGlobal, since there may already be a class binding.

=============== Diff against Traits-cwp.292 ===============

Item was changed:
  ----- Method: Trait>>setName:andRegisterInCategory:environment: (in category 'initialize') -----
  setName: aSymbol andRegisterInCategory: categorySymbol environment: aSystemDictionary
  	(self isValidTraitName: aSymbol) ifFalse: [self error:'Invalid trait name'].
  	(self environment == aSystemDictionary
  		and: [self name = aSymbol
  			and: [self category = categorySymbol]]) ifTrue: [^self].
  	((aSystemDictionary includesKey: aSymbol) and: [(aSystemDictionary at: aSymbol) ~~ self])
  		ifTrue: [self error: 'The name ''' , aSymbol , ''' is already used'].
  	(self environment notNil and: [self name notNil and: [self name ~= aSymbol]]) ifTrue: [
  		self environment renameClass: self as: aSymbol].
  	self name: aSymbol.
  	self environment: aSystemDictionary.	
+ 	[self environment at: self name put: self]
+ 		on: AttemptToWriteReadOnlyGlobal
+ 		do: [:n | n resume: true].
- 	self environment at: self name put: self.
  	self environment organization classify: self name under: categorySymbol.
  	^ true!

More information about the Packages mailing list