From b6a4c4ed65ee74a013ba57f14eb392f84bcfbaee Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Tue, 20 Jul 2010 06:35:58 -0600 Subject: [PATCH] extend decompiler to handle #%variable-reference original commit: 5cc0baa01e353d5c523ab54d3729da6aef410c14 --- collects/compiler/decompile.rkt | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/collects/compiler/decompile.rkt b/collects/compiler/decompile.rkt index b011c988ab..6c8c75d4a4 100644 --- a/collects/compiler/decompile.rkt +++ b/collects/compiler/decompile.rkt @@ -176,14 +176,21 @@ [(struct boxenv (pos body)) (extract-ids! body ids)] [else #f])) + +(define (decompile-tl expr globs stack closed no-check?) + (match expr + [(struct toplevel (depth pos const? ready?)) + (let ([id (list-ref/protect globs pos 'toplevel)]) + (if (or no-check? const? ready?) + id + `(#%checked ,id)))])) (define (decompile-expr expr globs stack closed) (match expr [(struct toplevel (depth pos const? ready?)) - (let ([id (list-ref/protect globs pos 'toplevel)]) - (if (or const? ready?) - id - `(#%checked ,id)))] + (decompile-tl expr globs stack closed #f)] + [(struct varref (tl)) + `(#%variable-reference ,(decompile-tl tl globs stack closed #t))] [(struct topsyntax (depth pos midpt)) (list-ref/protect globs (+ midpt pos) 'topsyntax)] [(struct primval (id))