expander: keep reference that is needed after all

Part of e7744efb7d triggered a test failure (that I missed by somehow
running tests incorrectly). It turns out that phase -1 transformer
bindings can be used in phase-0 code via shifting.

This change does not effect the repair for building with
machine-independent bytecode.
This commit is contained in:
Matthew Flatt 2019-03-14 07:39:20 -06:00
parent e7744efb7d
commit b6a7f7bc38
2 changed files with 1 additions and 14 deletions

View File

@ -194,9 +194,6 @@
[(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))])))

View File

@ -37874,16 +37874,6 @@ static const char *startup_source =
"(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)"
@ -37894,7 +37884,7 @@ static const char *startup_source =
"(sub1"
" phase-level_0)"
" name_0"
" val_0))))))))"
" val_0)))))))"
"(make-module-body-instance-instance18.1"
" temp52_0))))"
"(let-values(((instantiate-body_0)"