From 232c80e3408acd6d71c72f1ac66d830bd49d5766 Mon Sep 17 00:00:00 2001 From: Alexis King Date: Wed, 17 Aug 2016 14:50:56 -0700 Subject: [PATCH] Record disappeared uses from syntax/parse/experimental/template (#1423) --- racket/collects/syntax/parse/experimental/template.rkt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/racket/collects/syntax/parse/experimental/template.rkt b/racket/collects/syntax/parse/experimental/template.rkt index d415813f97..ce8c864a90 100644 --- a/racket/collects/syntax/parse/experimental/template.rkt +++ b/racket/collects/syntax/parse/experimental/template.rkt @@ -42,6 +42,7 @@ A HeadTemplate (H) is one of: (begin-for-syntax (define (do-template ctx tstx quasi? loc-id) + (with-disappeared-uses (parameterize ((current-syntax-context ctx) (quasi (and quasi? (box null)))) (let*-values ([(guide deps props-guide) (parse-template tstx loc-id)] @@ -74,7 +75,7 @@ A HeadTemplate (H) is one of: (substitute (quote-syntax t) 'props-guide 'guide - vars-vector)))]))))))) + vars-vector)))])))))))) (define-syntax (template stx) (syntax-case stx () @@ -599,7 +600,8 @@ instead of integers and integer vectors. (values drivers #f guide props-guide))])) (define (lookup id depth) - (let ([v (syntax-local-value id (lambda () #f))]) + (let ([v (syntax-local-value/record id (lambda (v) (or (syntax-pattern-variable? v) + (template-metafunction? v))))]) (cond [(syntax-pattern-variable? v) (let* ([pvar-depth (syntax-mapping-depth v)] [attr (syntax-local-value (syntax-mapping-valvar v) (lambda () #f))]