Avoid dumb parsing bugs in require/typed.
original commit: 561fdc8db580c828a45dc27c4ca61b21dccad311
This commit is contained in:
parent
28406c5093
commit
db3c6bbbe0
16
collects/tests/typed-scheme/succeed/require-typed-parse.rkt
Normal file
16
collects/tests/typed-scheme/succeed/require-typed-parse.rkt
Normal file
|
@ -0,0 +1,16 @@
|
|||
#lang racket/load
|
||||
|
||||
(module m1 racket
|
||||
(define x (make-parameter 1))
|
||||
(define y 1)
|
||||
(provide y)
|
||||
(provide/contract [x (parameter/c number?)]))
|
||||
|
||||
(module m2 typed/racket
|
||||
(require/typed 'm1
|
||||
[y Number]
|
||||
[x (Parameterof Number)])
|
||||
(x 1)
|
||||
(x))
|
||||
|
||||
(require 'm2)
|
|
@ -84,9 +84,13 @@ This file defines two sorts of primitives. All of them are provided into any mod
|
|||
(raise-syntax-error #f "at least one specification is required" stx))
|
||||
#'(begin
|
||||
(require/opaque-type oc.ty oc.pred lib . oc.opt) ...
|
||||
(require/typed sc.nm sc.ty lib) ...
|
||||
(require/typed #:internal sc.nm sc.ty lib) ...
|
||||
(require-typed-struct strc.nm (strc.body ...) lib) ...)]
|
||||
[(_ nm:opt-rename ty lib (~optional [~seq #:struct-maker parent]) ...)
|
||||
#`(require/typed #:internal nm ty lib #,@(if (attribute parent)
|
||||
#'(#:struct-maker parent)
|
||||
#'()))]
|
||||
[(_ #:internal nm:opt-rename ty lib (~optional [~seq #:struct-maker parent]) ...)
|
||||
(with-syntax ([cnt* (generate-temporary #'nm.nm)]
|
||||
[sm (if (attribute parent)
|
||||
#'(#:struct-maker parent)
|
||||
|
|
Loading…
Reference in New Issue
Block a user