force: avoid double promise-forcer test

This commit is contained in:
Matthew Flatt 2020-05-14 19:12:52 -06:00
parent 272271f36f
commit 90e708d78e

View File

@ -113,10 +113,11 @@
v)))) v))))
;; dispatcher for composable promises, generic promises, and other values ;; dispatcher for composable promises, generic promises, and other values
(define (force promise) (define (force v)
(if (promise? promise) (let ([forcer (promise-forcer v #f)])
((promise-forcer promise) promise) ; dispatch to specific forcer (if forcer
promise)) ; different from srfi-45: identity for non-promises (forcer v) ; dispatch to specific forcer
v))) ; different from srfi-45: identity for non-promises
;; ---------------------------------------------------------------------------- ;; ----------------------------------------------------------------------------
;; Struct definitions ;; Struct definitions