From 5304ff53276384cdbbc2a1c71cbc25457b665c97 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Wed, 21 Oct 2020 11:02:03 -0600 Subject: [PATCH] expander: fix malformed linklet A linklet generated for deserializing syntax objects shadowed a local variable, which is not allowed. --- racket/src/cs/schemified/expander.scm | 4 ++-- racket/src/expander/compile/header.rkt | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/racket/src/cs/schemified/expander.scm b/racket/src/cs/schemified/expander.scm index 1808fb564d..7d74dbb825 100644 --- a/racket/src/cs/schemified/expander.scm +++ b/racket/src/cs/schemified/expander.scm @@ -37673,12 +37673,12 @@ 'let-values (list (list - '(stx) + '(new-stx) (list* 'unsafe-vector*-ref syntax-literals-id '(pos)))) - '((if stx stx (loop)))))))) + '((if new-stx new-stx (loop)))))))) '((loop)))))))))))))))))) (define generate-lazy-syntax-literals-data! (lambda (sl_0 mpis_0) diff --git a/racket/src/expander/compile/header.rkt b/racket/src/expander/compile/header.rkt index d82be9d85b..92e770bfbe 100644 --- a/racket/src/expander/compile/header.rkt +++ b/racket/src/expander/compile/header.rkt @@ -127,9 +127,9 @@ (lambda () (begin (vector-cas! ,syntax-literals-id pos #f stx) - (let-values ([(stx) (unsafe-vector*-ref ,syntax-literals-id pos)]) - (if stx - stx + (let-values ([(new-stx) (unsafe-vector*-ref ,syntax-literals-id pos)]) + (if new-stx + new-stx (loop)))))]) (loop))))))))))