From 4ac05ce5bd5a848281fe149042e21c27ebc0c3cd Mon Sep 17 00:00:00 2001 From: Sam Tobin-Hochstadt Date: Thu, 10 Jun 2010 18:57:51 -0400 Subject: [PATCH] Use emit-local-step with match expanders. --- collects/racket/match/parse-helper.rkt | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/collects/racket/match/parse-helper.rkt b/collects/racket/match/parse-helper.rkt index 8ad524ede8..a69f065301 100644 --- a/collects/racket/match/parse-helper.rkt +++ b/collects/racket/match/parse-helper.rkt @@ -4,6 +4,7 @@ syntax/boundmap syntax/stx scheme/struct-info + macro-debugger/emit "patterns.rkt" "compiler.rkt") @@ -135,18 +136,19 @@ ;; produces a parsed pattern (define (match-expander-transform parse/cert cert expander stx accessor error-msg) - (let* ([expander (syntax-local-value (cert expander))] - [transformer (accessor expander)] + (let* ([expander* (syntax-local-value (cert expander))] + [transformer (accessor expander*)] [transformer (if (set!-transformer? transformer) (set!-transformer-procedure transformer) transformer)]) - (unless transformer (raise-syntax-error #f error-msg expander)) + (unless transformer (raise-syntax-error #f error-msg expander*)) (let* ([introducer (make-syntax-introducer)] - [certifier (match-expander-certifier expander)] + [certifier (match-expander-certifier expander*)] [mstx (introducer (syntax-local-introduce stx))] [mresult (transformer mstx)] [result (syntax-local-introduce (introducer mresult))] [cert* (lambda (id) (certifier (cert id) #f introducer))]) + (emit-local-step stx result #:id expander) (parse/cert result cert*)))) ;; raise an error, blaming stx