[squeak-dev] The Inbox: Kernel-fbs.735.mcz
commits at source.squeak.org
commits at source.squeak.org
Wed Jan 30 18:34:36 UTC 2013
Frank Shearar uploaded a new version of Kernel to project The Inbox:
http://source.squeak.org/inbox/Kernel-fbs.735.mcz
==================== Summary ====================
Name: Kernel-fbs.735
Author: fbs
Time: 30 January 2013, 6:33:47.078 pm
UUID: 18ffff61-cfcf-4843-8c64-caea3ceb3fbc
Ancestors: Kernel-fbs.734
Actually, return a Message, and find out the receiver of the Message from the signalercontext.
Also, _returning_ the value of #subclassResponsibility means that you can return to the original caller the value of your just implemented method.
=============== Diff against Kernel-fbs.734 ===============
Item was added:
+ ----- Method: ContextPart>>asMessage (in category 'converting') -----
+ asMessage
+ | sender selector args |
+ sender := self sender.
+ selector := sender method selector.
+ args := Array new: selector numArgs.
+ 1 to: selector numArgs do: [ :i | args at: i put: (sender tempAt: i)].
+ ^ Message selector: selector arguments: args.!
Item was removed:
- ----- Method: ContextPart>>asMessageSend (in category 'converting') -----
- asMessageSend
- | sender selector args |
- sender := self sender.
- selector := sender method selector.
- args := Array new: selector numArgs.
- 1 to: selector numArgs do: [ :i | args at: i put: (sender tempAt: i)].
- ^ MessageSend receiver: self receiver selector: selector arguments: args.!
Item was changed:
----- Method: ContextPart>>exceptionMessage (in category 'accessing') -----
exceptionMessage
^ self selector caseOf: {
[#doesNotUnderstand:] -> [self tempAt: 1].
+ [#subclassResponsibility] -> [self asMessage]}
- [#subclassResponsibility] -> [self asMessageSend]}
otherwise: [self error: 'This context is not the result of a message exception.'].!
Item was added:
+ ----- Method: ContextPart>>selectorCategory (in category 'accessing') -----
+ selectorCategory
+ "Return the category to which this message belongs (relative to the receiver). If no superclass categorises this message, use the default."
+ | organizers |
+ organizers := self receiver class withAllSuperclasses collect: [:ea | ea organization].
+ organizers addFirst: self receiver class organization.
+ ^ (organizers collect: [ :org | org categoryOfElement: self selector])
+ detect: [:ea | ea ~= ClassOrganizer default and: [ ea ~= nil]]
+ ifNone: [ClassOrganizer default]!
Item was removed:
- ----- Method: MessageSend>>selectorCategory (in category 'accessing') -----
- selectorCategory
- "Return the category to which this message belongs (relative to the receiver). If no superclass categorises this message, use the default."
- | organizers |
- organizers := receiver class withAllSuperclasses collect: [:ea | ea organization].
- organizers addFirst: receiver class organization.
- ^ (organizers collect: [ :org | org categoryOfElement: selector])
- detect: [:ea | ea ~= ClassOrganizer default and: [ ea ~= nil]]
- ifNone: [ClassOrganizer default]!
Item was changed:
----- Method: Object>>shouldBeImplemented (in category 'error handling') -----
shouldBeImplemented
"Announce that this message should be implemented"
+ ^ NotImplementedError signal: ('{1} or a superclass should implement {2}' format: {self className. thisContext sender selector})!
- NotImplementedError signal: ('{1} or a superclass should implement {2}' format: {self className. thisContext sender selector})!
Item was changed:
----- Method: Object>>subclassResponsibility (in category 'error handling') -----
subclassResponsibility
"This message sets up a framework for the behavior of the class' subclasses.
Announce that the subclass should have implemented this message."
+ ^ SubclassResponsibilityError
- SubclassResponsibilityError
signal: ('My {1} subclass should have overridden {2}'
format: {self className. thisContext sender selector}).!
More information about the Squeak-dev
mailing list
|