diff --git a/collects/redex/private/term.rkt b/collects/redex/private/term.rkt index 748bfe1050..f2bf65f772 100644 --- a/collects/redex/private/term.rkt +++ b/collects/redex/private/term.rkt @@ -174,7 +174,7 @@ [x (and (identifier? #'x) (not (free-identifier=? (quote-syntax ...) #'x))) - (let ([new-name (car (generate-temporaries (list #'x)))]) + (let ([new-name (datum->syntax #'here (syntax-e #'x))]) (values (list #'x) (list new-name) (list depth) diff --git a/collects/redex/tests/tl-test.rkt b/collects/redex/tests/tl-test.rkt index cff229504c..27b1afdb0c 100644 --- a/collects/redex/tests/tl-test.rkt +++ b/collects/redex/tests/tl-test.rkt @@ -2328,6 +2328,35 @@ (test (sorted-counts c) '(1 0)) (test (sorted-counts c*) '(1 0))))) + +; +; +; +; ; +; ; ; ; +; ; ; ; +; ;;; ;;; ; ;; ;;;;; ; ;;; ;;; +; ; ; ; ;; ; ; ; ; ;;;;; ; ; ; ; +; ; ;;;;; ; ; ; ; ; ; ;;;;; ; +; ; ; ; ; ; ; ; ; ; +; ; ; ; ; ; ; ; ; ; ; ; +; ;; ;;; ; ; ; ; ;; ;;; ;; +; +; +; + +(test (parameterize ([current-namespace syn-err-test-namespace]) + (with-handlers ([exn:fail:syntax? + (λ (exn) + (match (exn:fail:syntax-exprs exn) + [(list e) (syntax->datum e)] + [_ (gensym 'wrong)]))]) + (expand + '(term-let ([((label ...) ...) '()]) + (term (label ...)))) + (gensym 'wrong))) + 'label) + ; ; ;