* Fixes bug 159403: scripts choke when a definition follows an expression
This commit is contained in:
parent
431f768ab5
commit
37da0d75d4
Binary file not shown.
|
@ -2983,7 +2983,7 @@
|
||||||
r mr (reverse lex*) (reverse rhs*)))))
|
r mr (reverse lex*) (reverse rhs*)))))
|
||||||
|
|
||||||
(define library-body-expander
|
(define library-body-expander
|
||||||
(lambda (exp* imp* b*)
|
(lambda (exp* imp* b* top?)
|
||||||
(let-values (((exp-int* exp-ext*) (parse-exports exp*))
|
(let-values (((exp-int* exp-ext*) (parse-exports exp*))
|
||||||
((subst imp*) (parse-import-spec* imp*)))
|
((subst imp*) (parse-import-spec* imp*)))
|
||||||
(let ((rib (make-top-rib subst)))
|
(let ((rib (make-top-rib subst)))
|
||||||
|
@ -2993,7 +2993,7 @@
|
||||||
(parameterize ((inv-collector rtc)
|
(parameterize ((inv-collector rtc)
|
||||||
(vis-collector vtc))
|
(vis-collector vtc))
|
||||||
(let-values (((init* r mr lex* rhs*)
|
(let-values (((init* r mr lex* rhs*)
|
||||||
(chi-library-internal b* rib #f)))
|
(chi-library-internal b* rib top?)))
|
||||||
(seal-rib! rib)
|
(seal-rib! rib)
|
||||||
(let ((rhs* (chi-rhs* rhs* r mr))
|
(let ((rhs* (chi-rhs* rhs* r mr))
|
||||||
(init* (chi-expr* init* r mr)))
|
(init* (chi-expr* init* r mr)))
|
||||||
|
@ -3019,7 +3019,7 @@
|
||||||
(let-values (((name ver) (parse-library-name name*)))
|
(let-values (((name ver) (parse-library-name name*)))
|
||||||
(let-values (((imp* invoke-req* visit-req* invoke-code
|
(let-values (((imp* invoke-req* visit-req* invoke-code
|
||||||
visit-code export-subst export-env)
|
visit-code export-subst export-env)
|
||||||
(library-body-expander exp* imp* b*)))
|
(library-body-expander exp* imp* b* #f)))
|
||||||
(values name ver imp* invoke-req* visit-req*
|
(values name ver imp* invoke-req* visit-req*
|
||||||
invoke-code visit-code export-subst
|
invoke-code visit-code export-subst
|
||||||
export-env))))))
|
export-env))))))
|
||||||
|
@ -3035,7 +3035,7 @@
|
||||||
(let-values (((imp* b*) (parse-top-level-program e*)))
|
(let-values (((imp* b*) (parse-top-level-program e*)))
|
||||||
(let-values (((imp* invoke-req* visit-req* invoke-code
|
(let-values (((imp* invoke-req* visit-req* invoke-code
|
||||||
visit-code export-subst export-env)
|
visit-code export-subst export-env)
|
||||||
(library-body-expander '() imp* b*)))
|
(library-body-expander '() imp* b* #t)))
|
||||||
(values invoke-req* invoke-code)))))
|
(values invoke-req* invoke-code)))))
|
||||||
|
|
||||||
;;; An env record encapsulates a substitution and a set of
|
;;; An env record encapsulates a substitution and a set of
|
||||||
|
|
Loading…
Reference in New Issue