add scopes within boxes, vectors, hashes, and prefab structs

This commit is contained in:
AlexKnauth 2018-05-24 16:11:34 -04:00
parent 59754c3569
commit a992664ffb

View File

@ -1,6 +1,7 @@
#lang racket #lang racket
(require racket/syntax (require racket/syntax
racket/struct
racket/string racket/string
racket/format racket/format
debug-scopes/named-scopes-sli-parameter) debug-scopes/named-scopes-sli-parameter)
@ -114,6 +115,16 @@
[(syntax? e) (datum->syntax e (add-scopes (syntax-e e)) e e)] [(syntax? e) (datum->syntax e (add-scopes (syntax-e e)) e e)]
[(pair? e) (cons (add-scopes (car e)) [(pair? e) (cons (add-scopes (car e))
(add-scopes (cdr e)))] (add-scopes (cdr e)))]
[(box? e)
(box-immutable (add-scopes (unbox e)))]
[(vector? e)
(apply vector-immutable (map add-scopes (vector->list e)))]
[(hash? e)
(for/fold ([e e]) ([k (in-hash-keys e)])
(hash-update e k add-scopes))]
[(prefab-struct-key e)
(define key (prefab-struct-key e))
(apply make-prefab-struct key (map add-scopes (struct->list e)))]
[else e])) [else e]))
(define (sli/use whole-stx) (define (sli/use whole-stx)