Let's just make some differently painted identifiers so that some
error messages won't reveal the non-similarly-named ids behind the curtain. (I have my hammer, and damn if I won't use it.) svn: r13107
This commit is contained in:
parent
5e325a6552
commit
12fc114993
|
@ -707,39 +707,40 @@
|
||||||
(var-info-id defid)))))
|
(var-info-id defid)))))
|
||||||
(syntax->list (localify #'ivars def-ctx)))
|
(syntax->list (localify #'ivars def-ctx)))
|
||||||
|
|
||||||
(with-syntax ([(defn-or-expr ...)
|
(let ([marker (make-syntax-introducer)])
|
||||||
(apply append
|
(with-syntax ([(defn-or-expr ...)
|
||||||
(map (λ (defn-or-expr)
|
(apply append
|
||||||
(syntax-case defn-or-expr (define-values)
|
(map (λ (defn-or-expr)
|
||||||
[(define-values (id ...) body)
|
(syntax-case defn-or-expr (define-values)
|
||||||
(let* ([ids (syntax->list #'(id ...))]
|
[(define-values (id ...) body)
|
||||||
[tmps (generate-temporaries ids)]
|
(let* ([ids (syntax->list #'(id ...))]
|
||||||
[do-one
|
[tmps (map marker ids)]
|
||||||
(λ (id tmp)
|
[do-one
|
||||||
(let ([var-info (bound-identifier-mapping-get
|
(λ (id tmp)
|
||||||
defined-names-table
|
(let ([var-info (bound-identifier-mapping-get
|
||||||
id)])
|
defined-names-table
|
||||||
(cond
|
id)])
|
||||||
[(var-info-exported? var-info)
|
(cond
|
||||||
=>
|
[(var-info-exported? var-info)
|
||||||
(λ (export-loc)
|
=>
|
||||||
(let ([add-ctc (var-info-add-ctc var-info)])
|
(λ (export-loc)
|
||||||
(list (quasisyntax/loc defn-or-expr
|
(let ([add-ctc (var-info-add-ctc var-info)])
|
||||||
(set-box! #,export-loc
|
(list (quasisyntax/loc defn-or-expr
|
||||||
(let ([#,id #,(if add-ctc (add-ctc tmp) tmp)])
|
(set-box! #,export-loc
|
||||||
#,id)))
|
(let ([#,id #,(if add-ctc (add-ctc tmp) tmp)])
|
||||||
(quasisyntax/loc defn-or-expr
|
#,id)))
|
||||||
(define-syntax #,id
|
(quasisyntax/loc defn-or-expr
|
||||||
(make-id-mapper (quote-syntax #,tmp)))))))]
|
(define-syntax #,id
|
||||||
[else (list (quasisyntax/loc defn-or-expr
|
(make-id-mapper (quote-syntax #,tmp)))))))]
|
||||||
(define-syntax #,id
|
[else (list (quasisyntax/loc defn-or-expr
|
||||||
(make-rename-transformer (quote-syntax #,tmp)))))])))])
|
(define-syntax #,id
|
||||||
(cons (quasisyntax/loc defn-or-expr
|
(make-rename-transformer (quote-syntax #,tmp)))))])))])
|
||||||
(define-values #,tmps body))
|
(cons (quasisyntax/loc defn-or-expr
|
||||||
(apply append (map do-one ids tmps))))]
|
(define-values #,tmps body))
|
||||||
[else (list defn-or-expr)]))
|
(apply append (map do-one ids tmps))))]
|
||||||
expanded-body))])
|
[else (list defn-or-expr)]))
|
||||||
#'(begin-with-definitions defn-or-expr ...)))))))
|
expanded-body))])
|
||||||
|
#'(begin-with-definitions defn-or-expr ...))))))))
|
||||||
|
|
||||||
(define-for-syntax (redirect-imports/exports import?)
|
(define-for-syntax (redirect-imports/exports import?)
|
||||||
(lambda (table-stx
|
(lambda (table-stx
|
||||||
|
|
Loading…
Reference in New Issue
Block a user