Provide srcloc when constructing define in define/contract. (#1660)

This commit is contained in:
Sam Tobin-Hochstadt 2017-04-08 14:38:59 -04:00 committed by GitHub
parent 73d28d88d2
commit 9d26d675a7
2 changed files with 14 additions and 2 deletions

View File

@ -346,4 +346,15 @@
(->* (integer?) (#:y integer?) integer?)
x)
(f 3 #:y #f))
"top-level"))
"top-level"))
(parameterize ([current-namespace (make-base-namespace)])
(namespace-require 'racket/base)
(namespace-require 'racket/contract)
(eval (datum->syntax #f
'(define/contract ((f x) y) any/c (+ x y))
(vector "x.rkt" 1 0 1 0)))
(test 'x.rkt:1:0 object-name (eval '(f 1)))
(eval (datum->syntax #f '(define ((g x) y) y) (vector "x.rkt" 1 0 1 0)))
(test 'x.rkt:1:0 object-name (eval '(f 1))))

View File

@ -98,7 +98,8 @@
(let-values ([(name body-expr)
(normalize-definition
(datum->syntax #'define-stx (list* 'define/contract #'name+arg-list
#'body0 #'(body ...)))
#'body0 #'(body ...))
define-stx define-stx)
#'lambda #t #t)])
(with-syntax ([name name]
[body-expr body-expr])