[squeak-dev] The Trunk: Traits-laza.234.mcz

commits at source.squeak.org commits at source.squeak.org
Wed Oct 7 04:43:39 UTC 2009


Alexander Lazarević uploaded a new version of Traits to project The Trunk:
http://source.squeak.org/trunk/Traits-laza.234.mcz

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

Name: Traits-laza.234
Author: laza
Time: 7 October 2009, 6:43:30 am
UUID: b3ecf2a3-b313-5a49-ac6e-2186d6f766d3
Ancestors: Traits-ar.233

This fixes Mantis bug 0007090: "TraitsTests pollutes ProtoObject subclasses" by filing in TraitsTestSubclassesCleanup-M7090.1.cs

=============== Diff against Traits-ar.233 ===============

Item was changed:
  ----- Method: TraitsResource>>setUpTwoLevelRequiresFixture (in category 'as yet unclassified') -----
  setUpTwoLevelRequiresFixture
  	self c4: (self 
  				createClassNamed: #C4
  				superclass: ProtoObject
  				uses: { }).
+ 	ProtoObject removeSubclass: self c4.
  	self c4 superclass: nil.
  	self c5: (self 
  				createClassNamed: #C5
  				superclass: self c4
  				uses: { }).
  	self c4 compile: 'foo ^self blew' classified: #accessing.
  	self c5 compile: 'foo ^self blah' classified: #accessing!

Item was changed:
  ----- Method: RequiresTestCase>>testSins (in category 'as yet unclassified') -----
  testSins
  	| caa cab cac cad |
  	caa := self 
  				createClassNamed: #CAA
  				superclass: ProtoObject
  				uses: { }.
+ 	ProtoObject removeSubclass: caa.
  	caa superclass: nil.
  	cab := self 
  				createClassNamed: #CAB
  				superclass: caa
  				uses: {}.
  	cac := self 
  				createClassNamed: #CAC
  				superclass: cab
  				uses: {}.
  	cad := self 
  				createClassNamed: #CAD
  				superclass: cac
  				uses: { }.
  
  	caa compile: 'ma self foo'.
  	caa compile: 'md self explicitRequirement'.
  	cac compile: 'mb self bar'.
  	self noteInterestsFor: cad.
  	self assert: (cad requiredSelectors = (Set withAll: #(foo bar md))).
  	cab compile: 'mc ^3'.
  	self assert: (cad requiredSelectors = (Set withAll: #(foo bar md))).
  	self loseInterestsFor: cad.!

Item was changed:
  ----- Method: TraitsResource>>setUpTranslatingRequiresFixture (in category 'as yet unclassified') -----
  setUpTranslatingRequiresFixture
  	self c6: (self 
  				createClassNamed: #C6
  				superclass: ProtoObject
  				uses: { }).
+ 	ProtoObject removeSubclass: self c6.
  	self c6 superclass: nil.
  	self c7: (self 
  				createClassNamed: #C7
  				superclass: self c6
  				uses: { }).
  	self c8: (self 
  				createClassNamed: #C8
  				superclass: self c7
  				uses: { }).
  	self c6 compile: 'foo ^self x' classified: #accessing.
  	self c7 compile: 'foo ^3' classified: #accessing.
  	self c7 compile: 'bar ^super foo' classified: #accessing.
  	self c8 compile: 'bar ^self blah' classified: #accessing!

Item was changed:
  Object subclass: #TraitMethodDescription
  	instanceVariableNames: 'selector locatedMethods'
+ 	classVariableNames: 'ConflictMethods RequiredMethods'
- 	classVariableNames: 'RequiredMethods ConflictMethods'
  	poolDictionaries: ''
  	category: 'Traits-Composition'!
  
  !TraitMethodDescription commentStamp: '<historical>' prior: 0!
  Used by TraitComposition to encapsulates a collection of methods for one particular selector when querying for changes. According to the number and kind of those methods a provided method exists, there is a conflict or there are no provided nor conflicting methods at all. I provide the interface to query for those situations, e.g., effectiveMethod returns the provided method or the conflict marker method.
  !

Item was changed:
  ----- Method: TraitsResource>>setUpTrivialRequiresFixture (in category 'as yet unclassified') -----
  setUpTrivialRequiresFixture
  	self c3: (self 
  				createClassNamed: #C3
  				superclass: ProtoObject
  				uses: { }).
+ 	ProtoObject removeSubclass: self c3.
  	self c3 superclass: nil.
  	self c3 compile: 'foo ^self bla' classified: #accessing!




More information about the Squeak-dev mailing list