From a984f68a46bf7a491fdf0c1135078bf9565b8c35 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Wed, 4 Apr 2012 07:50:10 -0600 Subject: [PATCH] gui-debugger: update for submodules Closes PR 12668 --- collects/gui-debugger/annotator.rkt | 38 +++++++++++++++++------------ 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/collects/gui-debugger/annotator.rkt b/collects/gui-debugger/annotator.rkt index 2923911ddf..5a06aca296 100644 --- a/collects/gui-debugger/annotator.rkt +++ b/collects/gui-debugger/annotator.rkt @@ -160,19 +160,24 @@ (kernel:kernel-syntax-case/phase stx (namespace-base-phase) [(module identifier name mb) - (syntax-case (disarm #'mb) () - [(plain-module-begin . module-level-exprs) - (with-syntax ([(module . _) stx]) - (quasisyntax/loc stx (module identifier name - #,(rearm - #'mb - #`(plain-module-begin - #,@(map (lambda (e) (module-level-expr-iterator - e (list (syntax-e #'identifier) - (syntax-source #'identifier)))) - (syntax->list #'module-level-exprs)))))))])] + (module-annotate stx)] [else-stx (general-top-level-expr-iterator stx #f)])) + + (define (module-annotate stx) + (syntax-case stx () + [(_ identifier name mb) + (syntax-case (disarm #'mb) () + [(plain-module-begin . module-level-exprs) + (with-syntax ([(module . _) stx]) + (quasisyntax/loc stx (module identifier name + #,(rearm + #'mb + #`(plain-module-begin + #,@(map (lambda (e) (module-level-expr-iterator + e (list (syntax-e #'identifier) + (syntax-source #'identifier)))) + (syntax->list #'module-level-exprs)))))))])])) (define (module-level-expr-iterator stx module-name ) (kernel:kernel-syntax-case @@ -186,7 +191,6 @@ (kernel:kernel-syntax-case stx #f [(define-values (var ...) expr) - (begin (for-each (lambda (v) (record-bound-id 'bind v v)) (syntax->list #'(var ...))) @@ -198,9 +202,7 @@ [() var] [(v) (set! var v)])) ...) #'(#%plain-app void)) - (#%plain-app void))) - ) - ] + (#%plain-app void))))] [(define-syntaxes (var ...) expr) stx] [(begin-for-syntax . exprs) @@ -212,6 +214,12 @@ (syntax->list #'top-level-exprs))))] [(#%require . require-specs) stx] + [(module . _) + ;; a submodule: + (module-annotate stx)] + [(module* . _) + ;; a submodule: + (module-annotate stx)] [else (annotate stx '() #f module-name )]))