svn: r9039

original commit: 02c33947263e79ecb3a3fea436f91d023b94d899
This commit is contained in:
Eli Barzilay 2008-03-21 13:13:31 +00:00
parent 0b86826a0d
commit 1e11cd39f8

View File

@ -1,5 +1,4 @@
#lang mzscheme
(module etc mzscheme
(require (lib "main-collects.ss" "setup") (require (lib "main-collects.ss" "setup")
scheme/local scheme/local
@ -316,11 +315,7 @@
ids) ids)
(let ([dup (check-duplicate-identifier ids)]) (let ([dup (check-duplicate-identifier ids)])
(when dup (when dup
(raise-syntax-error (raise-syntax-error #f "duplicate identifier" stx dup)))
#f
"duplicate identifier"
stx
dup)))
;; We'd like to check the `defns', but that requires ;; We'd like to check the `defns', but that requires
;; and expansion in a different phase. So we move ;; and expansion in a different phase. So we move
@ -359,11 +354,7 @@
(apply (apply
append append
(map (lambda (expr) (map (lambda (expr)
(let ([expr (local-expand (let ([expr (local-expand expr ctx kernel-forms def-ctx)])
expr
ctx
kernel-forms
def-ctx)])
(syntax-case expr (begin define-syntaxes define-values) (syntax-case expr (begin define-syntaxes define-values)
[(begin . rest) [(begin . rest)
(loop (syntax->list #'rest))] (loop (syntax->list #'rest))]
@ -431,4 +422,4 @@
#'(let ([name (begin expr0 expr ...)]) #'(let ([name (begin expr0 expr ...)])
name))) name)))
(syntax-local-lift-expression (syntax-local-lift-expression
#'(begin expr0 expr ...))))]))) #'(begin expr0 expr ...))))]))