From 328c3d3276775b154a3a1531da8dd7a8d28d7d03 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Tue, 21 Jul 2015 13:07:53 -0600 Subject: [PATCH] racket/package: fix `package-begin` --- compatibility-lib/compatibility/package.rkt | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/compatibility-lib/compatibility/package.rkt b/compatibility-lib/compatibility/package.rkt index c97a7e0..19e7609 100644 --- a/compatibility-lib/compatibility/package.rkt +++ b/compatibility-lib/compatibility/package.rkt @@ -201,9 +201,13 @@ (find-ids #'(id ...) values)] [(#:all-defined-except (id ...)) (find-ids #'(id ...) not)])) - #`(define-syntax id (package (quote-syntax star-id) - (quote-syntax #,(map car mapping)) - (quote-syntax #,(map cdr mapping)))))])) + (cond + [(not (syntax-e #'id)) + #'(begin)] + [else + #`(define-syntax id (package (quote-syntax star-id) + (quote-syntax #,(map car mapping)) + (quote-syntax #,(map cdr mapping))))]))])) (define-for-syntax (do-open-package stx def-stxes) (check-definition-context stx) @@ -244,11 +248,11 @@ (syntax-case stx () [(_ form ...) #`(drive-top-level - (accumulate-package #f #f #f #,stx - #f - () - #,((make-syntax-introducer) - #'(form ...))))]))) + (accumulate-package #f id id #f #,stx + (#:only ()) + () + #,((make-syntax-introducer) + #'(form ...))))]))) (define-for-syntax (check-definition-context stx) (when (eq? 'expression (syntax-local-context))