From 605e1b8c890d1a07c07ad6480c31c68552a007ab Mon Sep 17 00:00:00 2001 From: Robby Findler Date: Fri, 24 Aug 2012 09:47:18 -0500 Subject: [PATCH] adjust redex so that identifiers preserve their syntax-original ness --- collects/redex/private/judgment-form.rkt | 11 +++++++---- collects/redex/private/pict.rkt | 2 +- collects/redex/private/reduction-semantics.rkt | 2 +- collects/redex/private/term.rkt | 3 ++- 4 files changed, 11 insertions(+), 7 deletions(-) diff --git a/collects/redex/private/judgment-form.rkt b/collects/redex/private/judgment-form.rkt index 9912acde89..141f969318 100644 --- a/collects/redex/private/judgment-form.rkt +++ b/collects/redex/private/judgment-form.rkt @@ -497,10 +497,13 @@ [nts (definition-nts lang stx syn-err-name)] [judgment (syntax-case stx () [(_ judgment _) #'judgment])]) (check-judgment-arity stx judgment) - #`(sort #,(bind-withs syn-err-name '() lang nts (list judgment) - 'flatten #`(list (term #,#'tmpl #:lang #,lang)) '() '() #f) - string<=? - #:key (λ (x) (format "~s" x))))] + (syntax-property + #`(sort #,(bind-withs syn-err-name '() lang nts (list judgment) + 'flatten #`(list (term #,#'tmpl #:lang #,lang)) '() '() #f) + string<=? + #:key (λ (x) (format "~s" x))) + 'disappeared-use + (syntax-local-introduce #'form-name)))] [(_ (not-form-name . _) . _) (not (judgment-form-id? #'form-name)) (raise-syntax-error #f "expected a judgment form name" stx #'not-form-name)])) diff --git a/collects/redex/private/pict.rkt b/collects/redex/private/pict.rkt index 911b861f53..35f431123b 100644 --- a/collects/redex/private/pict.rkt +++ b/collects/redex/private/pict.rkt @@ -1129,7 +1129,7 @@ '#,(judgment-form-rule-names jf) #,(judgment-form-lang jf)) 'disappeared-use - form-name)) + (syntax-local-introduce form-name))) (define-syntax (render-judgment-form stx) (syntax-case stx () diff --git a/collects/redex/private/reduction-semantics.rkt b/collects/redex/private/reduction-semantics.rkt index ae75ce496d..12d3a57de5 100644 --- a/collects/redex/private/reduction-semantics.rkt +++ b/collects/redex/private/reduction-semantics.rkt @@ -1650,7 +1650,7 @@ (syntax-property #`(make-metafunction #,(term-fn-get-id v)) 'disappeared-use - (list #'id)) + (list (syntax-local-introduce #'id))) (raise-syntax-error #f "not bound as a metafunction" diff --git a/collects/redex/private/term.rkt b/collects/redex/private/term.rkt index c420d755dd..92948fb66b 100644 --- a/collects/redex/private/term.rkt +++ b/collects/redex/private/term.rkt @@ -104,7 +104,8 @@ (defined-term-id? #'x) (let ([ref (syntax-property (defined-term-value (syntax-local-value #'x)) - 'disappeared-use #'x)]) + 'disappeared-use + (syntax-local-introduce #'x))]) (check-id (syntax->datum #'x) stx) (with-syntax ([v #`(begin #,(defined-check ref "term" #:external #'x)