@@ -177,19 +177,25 @@ public class Task<Progress, Value, Error>
177
177
// TODO: how to nest these inside StateMachine's initClosure? (using `self` is not permitted)
178
178
self . machine. addEventHandler ( . Progress, order: 90 ) { [ weak self] context in
179
179
if let progress = context. userInfo as? Progress {
180
- self !. progress = progress
180
+ if let self_ = self {
181
+ self_. progress = progress
182
+ }
181
183
}
182
184
}
183
185
// NOTE: use order < 100 (default) to let fulfillHandler be invoked after setting value
184
186
self . machine. addEventHandler ( . Fulfill, order: 90 ) { [ weak self] context in
185
187
if let value = context. userInfo as? Value {
186
- self !. value = value
188
+ if let self_ = self {
189
+ self_. value = value
190
+ }
187
191
}
188
192
configuration. clear ( )
189
193
}
190
194
self . machine. addEventHandler ( . Reject, order: 90 ) { [ weak self] context in
191
195
if let errorInfo = context. userInfo as? ErrorInfo {
192
- self !. errorInfo = errorInfo
196
+ if let self_ = self {
197
+ self_. errorInfo = errorInfo
198
+ }
193
199
configuration. cancel ? ( ) // NOTE: call configured cancellation on reject as well
194
200
}
195
201
configuration. clear ( )
@@ -272,22 +278,24 @@ public class Task<Progress, Value, Error>
272
278
configure. cancel = { innerTask. cancel ( ) ; return }
273
279
}
274
280
275
- switch self !. machine. state {
276
- case . Fulfilled:
277
- bind ( self !. value!, nil )
278
- case . Rejected:
279
- bind ( nil , self !. errorInfo!)
280
- default :
281
- self !. machine. addEventHandler ( . Fulfill) { context in
282
- if let value = context. userInfo as? Value {
283
- bind ( value, nil )
281
+ if let self_ = self {
282
+ switch self_. machine. state {
283
+ case . Fulfilled:
284
+ bind ( self_. value!, nil )
285
+ case . Rejected:
286
+ bind ( nil , self_. errorInfo!)
287
+ default :
288
+ self_. machine. addEventHandler ( . Fulfill) { context in
289
+ if let value = context. userInfo as? Value {
290
+ bind ( value, nil )
291
+ }
284
292
}
285
- }
286
- self ! . machine . addEventHandler ( . Reject ) { context in
287
- if let errorInfo = context . userInfo as? ErrorInfo {
288
- bind ( nil , errorInfo )
293
+ self_ . machine . addEventHandler ( . Reject ) { context in
294
+ if let errorInfo = context. userInfo as? ErrorInfo {
295
+ bind ( nil , errorInfo )
296
+ }
289
297
}
290
- }
298
+ }
291
299
}
292
300
293
301
}
@@ -325,22 +333,24 @@ public class Task<Progress, Value, Error>
325
333
configure. cancel = { innerTask. cancel ( ) ; return }
326
334
}
327
335
328
- switch self !. machine. state {
329
- case . Fulfilled:
330
- bind ( self !. value!)
331
- case . Rejected:
332
- _reject ( self !. errorInfo!)
333
- default :
334
- self !. machine. addEventHandler ( . Fulfill) { context in
335
- if let value = context. userInfo as? Value {
336
- bind ( value)
336
+ if let self_ = self {
337
+ switch self_. machine. state {
338
+ case . Fulfilled:
339
+ bind ( self_. value!)
340
+ case . Rejected:
341
+ _reject ( self_. errorInfo!)
342
+ default :
343
+ self_. machine. addEventHandler ( . Fulfill) { context in
344
+ if let value = context. userInfo as? Value {
345
+ bind ( value)
346
+ }
337
347
}
338
- }
339
- self ! . machine . addEventHandler ( . Reject ) { context in
340
- if let errorInfo = context . userInfo as? ErrorInfo {
341
- _reject ( errorInfo )
348
+ self_ . machine . addEventHandler ( . Reject ) { context in
349
+ if let errorInfo = context. userInfo as? ErrorInfo {
350
+ _reject ( errorInfo )
351
+ }
342
352
}
343
- }
353
+ }
344
354
}
345
355
346
356
}
@@ -378,23 +388,25 @@ public class Task<Progress, Value, Error>
378
388
configure. cancel = { innerTask. cancel ( ) ; return }
379
389
}
380
390
381
- switch self !. machine. state {
382
- case . Fulfilled:
383
- fulfill ( self !. value!)
384
- case . Rejected:
385
- let errorInfo = self !. errorInfo!
386
- bind ( errorInfo)
387
- default :
388
- self !. machine. addEventHandler ( . Fulfill) { context in
389
- if let value = context. userInfo as? Value {
390
- fulfill ( value)
391
+ if let self_ = self {
392
+ switch self_. machine. state {
393
+ case . Fulfilled:
394
+ fulfill ( self_. value!)
395
+ case . Rejected:
396
+ let errorInfo = self_. errorInfo!
397
+ bind ( errorInfo)
398
+ default :
399
+ self_. machine. addEventHandler ( . Fulfill) { context in
400
+ if let value = context. userInfo as? Value {
401
+ fulfill ( value)
402
+ }
391
403
}
392
- }
393
- self ! . machine . addEventHandler ( . Reject ) { context in
394
- if let errorInfo = context . userInfo as? ErrorInfo {
395
- bind ( errorInfo )
404
+ self_ . machine . addEventHandler ( . Reject ) { context in
405
+ if let errorInfo = context. userInfo as? ErrorInfo {
406
+ bind ( errorInfo )
407
+ }
396
408
}
397
- }
409
+ }
398
410
}
399
411
400
412
}
0 commit comments