diff --git a/racket/src/expander/eval/module.rkt b/racket/src/expander/eval/module.rkt index ca9254551d..220676f861 100644 --- a/racket/src/expander/eval/module.rkt +++ b/racket/src/expander/eval/module.rkt @@ -190,8 +190,16 @@ (define module-body-instance-instance (make-module-body-instance-instance - #:set-transformer! (lambda (name val) - (namespace-set-transformer! ns (sub1 phase-level) name val)))) + #:set-transformer! (cond + [(zero-phase? phase-level) + (lambda (name val) + (error 'define-syntax "should not happen at phase level 0"))] + [(zero-phase? (phase+ phase-shift phase-level)) + ;; No use for phase -1 bindings + (lambda (name val) (void))] + [else + (lambda (name val) + (namespace-set-transformer! ns (sub1 phase-level) name val))]))) (define (instantiate-body) (instantiate-linklet phase-linklet diff --git a/racket/src/racket/src/startup.inc b/racket/src/racket/src/startup.inc index 51e3106534..2cdd0218a6 100644 --- a/racket/src/racket/src/startup.inc +++ b/racket/src/racket/src/startup.inc @@ -37864,14 +37864,37 @@ static const char *startup_source = "(values))))" "(let-values(((module-body-instance-instance_0)" "(let-values(((temp52_0)" +"(if(zero-phase?" +" phase-level_0)" +"(let-values()" "(lambda(name_0" " val_0)" +"(begin" +" 'temp52" +"(error" +" 'define-syntax" +" \"should not happen at phase level 0\"))))" +"(if(zero-phase?" +"(phase+" +" phase-shift_0" +" phase-level_0))" +"(let-values()" +"(lambda(name_0" +" val_0)" +"(begin" +" 'temp52" +"(void))))" +"(let-values()" +"(lambda(name_0" +" val_0)" +"(begin" +" 'temp52" "(namespace-set-transformer!" " ns_2" "(sub1" " phase-level_0)" " name_0" -" val_0))))" +" val_0))))))))" "(make-module-body-instance-instance18.1" " temp52_0))))" "(let-values(((instantiate-body_0)"