From 9a9c7d3d916399fa11f9212be1ab66033d8d8b8a Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Sun, 7 Aug 2016 15:57:40 -0600 Subject: [PATCH] work with macros that use `syntax-local-lift-values-expression` Using `syntax-local-lift-values-expression` creates a lifted `define-values` form with multiple binding variables. --- typed-racket-lib/typed-racket/utils/lift.rkt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/typed-racket-lib/typed-racket/utils/lift.rkt b/typed-racket-lib/typed-racket/utils/lift.rkt index 02372af6..c8cf3cec 100644 --- a/typed-racket-lib/typed-racket/utils/lift.rkt +++ b/typed-racket-lib/typed-racket/utils/lift.rkt @@ -16,12 +16,12 @@ (define stx* (local-expand/capture-lifts stx ctx stop-ids)) (syntax-parse stx* #:literal-sets (kernel-literals) - [(begin (define-values (n) e) ... e*) + [(begin (define-values (n ...) e) ... e*) (define-values (sub-defss defs) (for/lists (_1 _2) ([e (in-list (syntax->list #'(e ...)))] - [n (in-list (syntax->list #'(n ...)))]) + [ns (in-list (syntax->list #'((n ...) ...)))]) ;; lifted expressions may re-lift, so recur (define-values (sub-defs e-expanded) (loop e)) - (values sub-defs #`(define-values (#,n) #,e-expanded)))) + (values sub-defs #`(define-values #,ns #,e-expanded)))) (values (append (apply append sub-defss) defs) #'e*)]))) #`(begin #,@defs #,expr))