From caf28648e3cb2f1e72cd336ebbe499aa8e6331ba Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Wed, 14 Nov 2018 19:38:42 -0700 Subject: [PATCH] cs: fix schemify of non-rator `call-with-values` --- racket/src/cs/rumble/procedure.ss | 17 ++++++++++------- racket/src/schemify/schemify.rkt | 2 ++ 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/racket/src/cs/rumble/procedure.ss b/racket/src/cs/rumble/procedure.ss index c5b9c44915..49a8f92ac8 100644 --- a/racket/src/cs/rumble/procedure.ss +++ b/racket/src/cs/rumble/procedure.ss @@ -57,13 +57,16 @@ (with-syntax ([n-args (length #'(rand ...))]) #'((extract-procedure rator n-args) rand ...))])) -(define (|#%call-with-values| generator receiver) - (call-with-values (if (#%procedure? generator) - generator - (lambda () (|#%app| generator))) - (if (#%procedure? receiver) - receiver - (lambda args (apply receiver args))))) +(define |#%call-with-values| + (|#%name| + call-with-values + (lambda (generator receiver) + (call-with-values (if (#%procedure? generator) + generator + (lambda () (|#%app| generator))) + (if (#%procedure? receiver) + receiver + (lambda args (apply receiver args))))))) (define (extract-procedure f n-args) (cond diff --git a/racket/src/schemify/schemify.rkt b/racket/src/schemify/schemify.rkt index 93aa4236a7..38d9c5dbfe 100644 --- a/racket/src/schemify/schemify.rkt +++ b/racket/src/schemify/schemify.rkt @@ -650,6 +650,8 @@ (cond [(not (symbol? u-v)) v] + [(eq? u-v 'call-with-values) + '#%call-with-values] [(and (via-variable-mutated-state? (hash-ref mutated u-v #f)) (hash-ref exports u-v #f)) => (lambda (ex) `(variable-ref ,(export-id ex)))]