Call locate-stx at the last minute, to avoid overeager duplicate detection.

original commit: d2a8a620b149d72ffac87ac980174c8afaa19a40
This commit is contained in:
Vincent St-Amour 2011-07-08 11:44:24 -04:00
parent 9596522404
commit eb9b012989

View File

@ -31,8 +31,7 @@
(define (log-optimization kind msg stx)
(let* ([stx (locate-stx stx)]
[new-entry (opt-log-entry kind msg stx (syntax-position stx))])
(let ([new-entry (opt-log-entry kind msg stx (syntax-position stx))])
(set! log-so-far (cons new-entry log-so-far))))
;;--------------------------------------------------------------------
@ -92,8 +91,7 @@
;; Attempts to merge the incoming missed optimization with existing ones.
;; Otherwise, adds the new one to the log.
(define (log-missed-optimization kind msg stx [irritants '()])
(let* ([stx (locate-stx stx)]
;; for convenience, if a single irritant is given, wrap it in a list
(let* (;; for convenience, if a single irritant is given, wrap it in a list
;; implicitly
[irritants (if (list? irritants) irritants (list irritants))]
[new
@ -186,7 +184,7 @@
;; For command-line printing purposes.
;; Not as user friendly as what's produced by the DrRacket tool.
(define (format-log-entry entry)
(define stx (log-entry-stx entry))
(define stx (locate-stx (log-entry-stx entry)))
(define msg
(format "~a ~a ~s -- ~a"
(syntax-source-file-name stx)