The Trunk: Traits-fbs.295.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

The Trunk: Traits-fbs.295.mcz

commits-2
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})!