From 90e708d78e4158a848fbfc1fbc9ad20c36fdb650 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Thu, 14 May 2020 19:12:52 -0600 Subject: [PATCH] force: avoid double `promise-forcer` test --- racket/collects/racket/private/promise.rkt | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/racket/collects/racket/private/promise.rkt b/racket/collects/racket/private/promise.rkt index e08ca2d451..a94762273e 100644 --- a/racket/collects/racket/private/promise.rkt +++ b/racket/collects/racket/private/promise.rkt @@ -113,10 +113,11 @@ v)))) ;; dispatcher for composable promises, generic promises, and other values -(define (force promise) - (if (promise? promise) - ((promise-forcer promise) promise) ; dispatch to specific forcer - promise)) ; different from srfi-45: identity for non-promises +(define (force v) + (let ([forcer (promise-forcer v #f)]) + (if forcer + (forcer v) ; dispatch to specific forcer + v))) ; different from srfi-45: identity for non-promises ;; ---------------------------------------------------------------------------- ;; Struct definitions