diff --git a/collects/errortrace/errortrace-lib.rkt b/collects/errortrace/errortrace-lib.rkt index 0b45eb5779..0e028cfdff 100644 --- a/collects/errortrace/errortrace-lib.rkt +++ b/collects/errortrace/errortrace-lib.rkt @@ -53,8 +53,9 @@ (free-identifier=? a b phase 0)) [(begin-for-syntax body ...) (syntax-rearm - (map (handle-top-form (add1 phase)) - (syntax->list #'(body ...))) + #`(begin-for-syntax + #,@(map (handle-top-form (add1 phase)) + (syntax->list #'(body ...)))) expr)] [(module . _) (transform-all-modules expr proc #f)] diff --git a/collects/tests/errortrace/begin.rkt b/collects/tests/errortrace/begin.rkt new file mode 100644 index 0000000000..c4e282fb1d --- /dev/null +++ b/collects/tests/errortrace/begin.rkt @@ -0,0 +1,14 @@ +#lang racket/base + +(provide begin-for-syntax-tests) + +(define (begin-for-syntax-tests) + (define ns (make-base-namespace)) + (parameterize ([current-namespace ns]) + (dynamic-require 'errortrace #f) + (eval '(module m racket/base + (require (for-syntax racket/base)) + (begin-for-syntax 1 2))))) + +(module+ main + (begin-for-syntax-tests)) diff --git a/collects/tests/errortrace/main.rkt b/collects/tests/errortrace/main.rkt index 07c7dc0e8a..efab7fc4b4 100644 --- a/collects/tests/errortrace/main.rkt +++ b/collects/tests/errortrace/main.rkt @@ -4,7 +4,8 @@ "wrap.rkt" "alert.rkt" "phase-1.rkt" - "phase-1-eval.rkt") + "phase-1-eval.rkt" + "begin.rkt") (wrap-tests) @@ -12,3 +13,4 @@ (phase-1-tests) (phase-1-eval-tests) +(begin-for-syntax-tests)