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! |
Free forum by Nabble | Edit this page |