The Inbox: Kernel-fbs.734.mcz

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

The Inbox: Kernel-fbs.734.mcz

commits-2
Frank Shearar uploaded a new version of Kernel to project The Inbox:
http://source.squeak.org/inbox/Kernel-fbs.734.mcz

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

Name: Kernel-fbs.734
Author: fbs
Time: 30 January 2013, 12:29:05.829 pm
UUID: ef47c409-cc2c-4e5f-a903-d71ead6268e5
Ancestors: Kernel-fbs.733

Implement Eliot's suggestions:
* make the throwing of a NotImplementedError the standard behvaiour for these related selectors;
* I went with "exceptionMessage" rather than "messageException" because the latter sounds like something that returns an exception.
* Pulled asMessageSend out because it makes the caseOf: easier to read and (YAGNI alert) it's more generally useful.

=============== Diff against Kernel-fbs.733 ===============

Item was added:
+ ----- 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 added:
+ ----- Method: ContextPart>>exceptionMessage (in category 'accessing') -----
+ exceptionMessage
+ ^ self selector caseOf: {
+ [#doesNotUnderstand:] -> [self tempAt: 1].
+ [#subclassResponsibility] -> [self asMessageSend]}
+ otherwise: [self error: 'This context is not the result of a message exception.'].!

Item was removed:
- ----- Method: ContextPart>>invocationMessage (in category 'accessing') -----
- invocationMessage
- "Upon sending messages like #doesNotUnderstand: or #subclassResponsibility - methods that will pop up a Debugger - return the Message that prompted the Debugger."
- | sender selector args |
- (self method selector == #doesNotUnderstand:) ifTrue: [^ self tempAt: 1].
- 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: 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})!
- self error: 'This message should be implemented'!

Item was changed:
  ----- Method: Object>>shouldNotImplement (in category 'error handling') -----
  shouldNotImplement
  "Announce that, although the receiver inherits this message, it should
  not implement it."
 
+ NotImplementedError signal: ('{1} is not a message appropriate for a {2}' format: {thisContext sender selector. self className}).!
- self error: 'This message is not appropriate for this object'!