[squeak-dev] The Trunk: Traits-fbs.295.mcz

commits at source.squeak.org commits at source.squeak.org
Wed Jul 10 10:43:46 UTC 2013


Frank Shearar uploaded a new version of Traits to project The Trunk:
http://source.squeak.org/trunk/Traits-fbs.295.mcz

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

Name: Traits-fbs.295
Author: fbs
Time: 10 July 2013, 11:42:55.221 am
UUID: f1faa043-81f6-3d40-ab8e-2dcf8a0079a4
Ancestors: Traits-fbs.294

#requirement, #isRequired, etc. are Trait things, so belong in the Trait package.

=============== Diff against Traits-fbs.294 ===============

Item was added:
+ ----- Method: CompiledMethod class>>conflictMarker (in category '*Traits-constants') -----
+ conflictMarker
+ 	^ #traitConflict!

Item was added:
+ ----- Method: CompiledMethod class>>explicitRequirementMarker (in category '*Traits-constants') -----
+ explicitRequirementMarker
+ 	^ #explicitRequirement!

Item was added:
+ ----- Method: CompiledMethod class>>implicitRequirementMarker (in category '*Traits-constants') -----
+ implicitRequirementMarker
+ 	^ #requirement!

Item was added:
+ ----- Method: CompiledMethod>>isConflict (in category '*Traits-testing') -----
+ isConflict
+ 	^ self markerOrNil == self class conflictMarker!

Item was added:
+ ----- Method: CompiledMethod>>isExplicitlyRequired (in category '*Traits-testing') -----
+ isExplicitlyRequired
+ 	^ self isExplicitlyRequired: self markerOrNil!

Item was added:
+ ----- Method: CompiledMethod>>isExplicitlyRequired: (in category '*Traits-testing') -----
+ isExplicitlyRequired: marker
+ 	^ marker == self class explicitRequirementMarker!

Item was added:
+ ----- Method: CompiledMethod>>isImplicitlyRequired: (in category '*Traits-testing') -----
+ isImplicitlyRequired: marker
+ 	^ marker == self class implicitRequirementMarker!

Item was added:
+ ----- Method: CompiledMethod>>isProvided (in category '*Traits-testing') -----
+ isProvided
+ 	^ self isProvided: self markerOrNil!

Item was added:
+ ----- Method: CompiledMethod>>isProvided: (in category '*Traits-testing') -----
+ isProvided: marker
+ 	marker ifNil: [^ true].
+ 	^ (self isRequired: marker) not and: [(self isDisabled: marker) not]!

Item was added:
+ ----- Method: CompiledMethod>>isRequired (in category '*Traits-testing') -----
+ isRequired
+ 	^ self isRequired: self markerOrNil!

Item was added:
+ ----- Method: CompiledMethod>>isRequired: (in category '*Traits-testing') -----
+ isRequired: marker
+ 	marker ifNil: [^ false].
+ 	(self isImplicitlyRequired: marker) ifTrue: [^ true].
+ 	(self isExplicitlyRequired: marker) ifTrue: [^ true]. 
+ 	(self isSubclassResponsibility: marker) ifTrue: [^ true]. 
+ 	^ false!

Item was added:
+ ----- Method: Object>>explicitRequirement (in category '*Traits') -----
+ explicitRequirement
+ 	self error: 'Explicitly required method'!

Item was added:
+ ----- Method: Object>>requirement (in category '*Traits') -----
+ requirement
+ 	| sender |
+ 	sender := thisContext sender.
+ 	^ NotImplemented signal: ('{1} or a superclass should implement {2} from trait {3}' format: {self className. sender selector. sender method originalTraitMethod methodClass})!



More information about the Squeak-dev mailing list