diff --git a/pkgs/racket-pkgs/racket-test/tests/racket/macro.rktl b/pkgs/racket-pkgs/racket-test/tests/racket/macro.rktl index c7220d6e85..87440317a6 100644 --- a/pkgs/racket-pkgs/racket-test/tests/racket/macro.rktl +++ b/pkgs/racket-pkgs/racket-test/tests/racket/macro.rktl @@ -1085,6 +1085,14 @@ (error 'test "bad expansion: ~e" e)]))]) (m)) +(test 10 values + (let-syntax ([#%top (lambda (stx) + (syntax-case stx () + [(_ . id) #'10]))]) + (let-syntax ([m (lambda (stx) + (local-expand #'nonsuch 'expression null))]) + (m)))) + ;; ---------------------------------------- (report-errs) diff --git a/racket/src/racket/src/compile.c b/racket/src/racket/src/compile.c index 4b769001dd..436cd04a70 100644 --- a/racket/src/racket/src/compile.c +++ b/racket/src/racket/src/compile.c @@ -4817,6 +4817,7 @@ scheme_compile_expand_expr(Scheme_Object *form, Scheme_Comp_Env *env, } else { if (!rec[drec].comp && (rec[drec].depth == -2) /* local-expand */ + && SAME_OBJ(var, normal) && SAME_OBJ(SCHEME_STX_VAL(stx), top_symbol)) { rec[drec].pre_unwrapped = 1; } else {