Use locations from typed identifiers for type-generated contracts.

This commit is contained in:
Vincent St-Amour 2013-02-05 11:04:36 -05:00
parent 459c731bb9
commit ff3d785da2

View File

@ -10,7 +10,7 @@
(utils tc-utils)
(for-syntax syntax/parse racket/base)
racket/contract/private/provide unstable/list
syntax/id-table racket/dict
syntax/id-table syntax/location racket/dict
racket/syntax racket/struct-info racket/match
"def-binding.rkt" syntax/parse
(for-template racket/base "def-export.rkt" racket/contract))
@ -96,7 +96,15 @@
(define-syntax cnt-id
(make-provide/contract-transformer
(quote-syntax the-contract)
(datum->syntax ; preserve source location in expanded code
(quote-syntax id)
(syntax->datum (quote-syntax id))
(list (quote-source-file id)
(quote-line-number id)
(quote-column-number id)
(quote-character-position id)
(quote-character-span id))
(quote-syntax id))
(quote-syntax export-id)
(quote-syntax module-source)))
(def-export export-id id cnt-id)))