[squeak-dev] The Trunk: Kernel-tonyg.1344.mcz

commits at source.squeak.org commits at source.squeak.org
Thu Oct 8 21:35:50 UTC 2020


Tony Garnock-Jones uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-tonyg.1344.mcz

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

Name: Kernel-tonyg.1344
Author: tonyg
Time: 8 October 2020, 11:35:47.705963 pm
UUID: d68b8946-be04-4e8c-9a2d-76e31736aa4b
Ancestors: Kernel-dtl.1343

Avoid explicit mention of Promise in a handful of places, preferring instead some means of specifying "the currently-relevant kind of Promise". Useful for subclasses of Promise.

=============== Diff against Kernel-dtl.1343 ===============

Item was changed:
  ----- Method: Promise class>>ifRejected: (in category 'instance creation') -----
  ifRejected: aBlock
+ 	^ self basicNew initializeWithIfRejected: aBlock.!
- 	^ Promise basicNew initializeWithIfRejected: aBlock.!

Item was changed:
  ----- Method: Promise class>>unit: (in category 'instance creation') -----
  unit: anObject
  	"Return a resolved Promise. #new is the other half of Promise's unit function; #new returns an unresolved Promise."
+ 	^ self basicNew initializeWithResolvedValue: anObject.!
- 	^ Promise basicNew initializeWithResolvedValue: anObject.!

Item was changed:
  ----- Method: Promise>>then:ifRejected: (in category 'monad') -----
  then: resolvedBlock ifRejected: errBlock
  	"Return a Promise that, if it resolves, runs the resolvedBlock. If resolution throws an Exception, it runs the errBlock."
  	| p |
+ 	p := self species new.
- 	p := Promise new.
  	resolvedBlock
  		ifNil: [self whenResolved: [:v | p resolveWith: v]]
  		ifNotNil: [
  			self whenResolved: [:v |
  				[p resolveWith: (resolvedBlock value: v)]
  					on: Error do: [:e | p rejectWith: e]]].
  	errBlock
  		ifNil: [self whenRejected: [:e | p rejectWith: e]]
  		ifNotNil: [
  			self whenRejected: [:e |
  				[p resolveWith: (errBlock value: e)]
  					on: Error do: [:e2 | p rejectWith: e2]]].
  	^ p.!



More information about the Squeak-dev mailing list