parent
e391bb1755
commit
2178fbf4d4
|
@ -1,5 +1,6 @@
|
||||||
#lang racket/base
|
#lang racket/base
|
||||||
(require racket/promise
|
(require (for-syntax racket/base)
|
||||||
|
racket/promise
|
||||||
racket/list
|
racket/list
|
||||||
syntax/modcode
|
syntax/modcode
|
||||||
syntax/modresolve
|
syntax/modresolve
|
||||||
|
@ -199,13 +200,6 @@
|
||||||
[(begin-for-syntax . _)
|
[(begin-for-syntax . _)
|
||||||
(eval/compile stx)]
|
(eval/compile stx)]
|
||||||
[(define-values (id ...) . _)
|
[(define-values (id ...) . _)
|
||||||
(with-syntax ([defvals (stx-car stx)]
|
(eval/compile #'(define-syntaxes (id ...) (values)))]
|
||||||
[undefined (letrec ([x x]) x)])
|
|
||||||
(for ([id (syntax->list #'(id ...))])
|
|
||||||
(with-syntax ([id id])
|
|
||||||
(eval/compile #'(defvals (id) undefined)))))
|
|
||||||
;; Following doesn't work (namespace mismatch)
|
|
||||||
;; (eval/compile #'(define-values (id ...) (let ([id #f] ...) (values id ...))))
|
|
||||||
]
|
|
||||||
[_else
|
[_else
|
||||||
(void)]))
|
(void)]))
|
||||||
|
|
|
@ -193,10 +193,11 @@
|
||||||
|
|
||||||
(test-case "macro def within begin"
|
(test-case "macro def within begin"
|
||||||
(let ([rs (reductions
|
(let ([rs (reductions
|
||||||
|
(parameterize ((current-namespace testing-namespace))
|
||||||
(trace '(begin
|
(trace '(begin
|
||||||
(define-syntax-rule (m x e)
|
(define-syntax-rule (m x e)
|
||||||
(define x e))
|
(define x e))
|
||||||
(m y 12))))])
|
(m y 12)))))])
|
||||||
(check-pred list? rs)
|
(check-pred list? rs)
|
||||||
(check-false (ormap misstep? rs))
|
(check-false (ormap misstep? rs))
|
||||||
(check-true (for/or ([step rs])
|
(check-true (for/or ([step rs])
|
||||||
|
|
Loading…
Reference in New Issue
Block a user