cs: fix schemify of non-rator call-with-values
This commit is contained in:
parent
4068b9097d
commit
caf28648e3
|
@ -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
|
||||
|
|
|
@ -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)))]
|
||||
|
|
Loading…
Reference in New Issue
Block a user