This fixes sugar and pollen to work with the new expander. I believe that it will work on 6.2 as well. #11

Merged
samth merged 3 commits from fix-new-expander into master 9 years ago

@ -7,15 +7,16 @@
(define-syntax (module-test-external stx)
(syntax-case stx ()
[(_ expr ...)
(with-syntax ([mod-name (generate-temporary)])
#'(begin
(module* mod-name racket/base
(require (submod ".."))
(require rackunit)
expr ...)
(module+ test
(require (submod ".." mod-name)))))]))
(let ([mod-name (syntax-e (generate-temporary))])
(datum->syntax stx
`(begin
(module* ,mod-name racket/base
(require (submod ".."))
(require rackunit)
,@(syntax->datum #'(expr ...)))
(module+ test
(require (submod ".." ,mod-name))))
stx))]))
(define-syntax (module-test-internal stx)
(syntax-case stx ()

@ -4,27 +4,31 @@
(define-syntax (eval-as-untyped stx)
(syntax-case stx ()
[(_ exprs ...)
(with-syntax ([sym (generate-temporary)]
[sym2 (generate-temporary)])
#'(begin
(module sym racket
(require rackunit "../main.rkt" net/url)
exprs ...)
(require 'sym)
(module sym2 racket
(require rackunit (submod "../main.rkt" safe) net/url)
exprs ...)
(require 'sym2)))]))
(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))))]))
(define-syntax (eval-as-typed stx)
(syntax-case stx ()
[(_ exprs ...)
(with-syntax ([sym (generate-temporary)])
#'(begin
(module sym typed/racket
(require typed/rackunit "../../typed/sugar.rkt" typed/net/url)
exprs ...)
(require 'sym)))]))
(let ([sym (generate-temporary)])
(datum->syntax stx
`(begin
(module ,sym typed/racket
(require typed/rackunit "../../typed/sugar.rkt" typed/net/url)
,@(syntax->datum #'(exprs ...)))
(require ',sym))
stx))]))
(define-syntax-rule (eval-as-typed-and-untyped exprs ...)
(begin
@ -59,7 +63,7 @@
(check-equal? (->list '(1 2 3)) '(1 2 3))
(check-equal? (->list (list->vector '(1 2 3))) '(1 2 3))
(check-equal? (->list (set 1 2 3)) '(3 2 1))
(check-not-false (andmap (lambda (e) (member e '(1 2 3))) (->list (set 1 2 3))))
(check-equal? (->list "foo") (list "foo"))
(check-true (->boolean #t))

Loading…
Cancel
Save