|
|
|
@ -1,22 +1,21 @@
|
|
|
|
|
#lang racket
|
|
|
|
|
(require (for-syntax racket/syntax))
|
|
|
|
|
(require (for-syntax racket/syntax syntax/strip-context))
|
|
|
|
|
|
|
|
|
|
(define-syntax (eval-as-untyped stx)
|
|
|
|
|
(syntax-case stx ()
|
|
|
|
|
[(_ exprs ...)
|
|
|
|
|
(let ([sym (generate-temporary)]
|
|
|
|
|
[sym2 (generate-temporary)])
|
|
|
|
|
(datum->syntax
|
|
|
|
|
stx
|
|
|
|
|
`(begin
|
|
|
|
|
(module ,sym racket
|
|
|
|
|
(require rackunit "../main.rkt" net/url)
|
|
|
|
|
,@(syntax->datum #'(exprs ...)))
|
|
|
|
|
(require ',sym)
|
|
|
|
|
(module ,sym2 racket
|
|
|
|
|
(require rackunit (submod "../main.rkt" safe) net/url)
|
|
|
|
|
,@(syntax->datum #'(exprs ...)))
|
|
|
|
|
(require ',sym2))))]))
|
|
|
|
|
(with-syntax ([module-without-contracts (generate-temporary)]
|
|
|
|
|
[module-with-contracts (generate-temporary)])
|
|
|
|
|
(replace-context stx
|
|
|
|
|
#'(begin
|
|
|
|
|
(module module-without-contracts racket
|
|
|
|
|
(require rackunit "../main.rkt" net/url)
|
|
|
|
|
exprs ...)
|
|
|
|
|
(require 'module-without-contracts)
|
|
|
|
|
(module module-with-contracts racket
|
|
|
|
|
(require rackunit (submod "../main.rkt" safe) net/url)
|
|
|
|
|
exprs ...)
|
|
|
|
|
(require 'module-with-contracts))))]))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(eval-as-untyped
|
|
|
|
|