clean up check-module-form

- truly ignore expected-module (in err msgs) to match docs
- remove dead code
This commit is contained in:
Stephen Chang 2016-08-23 11:15:49 -04:00 committed by Matthew Flatt
parent d6fe30156c
commit 8620bc50be

View File

@ -10,11 +10,6 @@
[read-accept-compiled #t])
(thunk)))))
(define (raise-wrong-module-name filename expected-name name)
(error 'load-handler
"expected a `module' declaration for `~a' in ~s, found: ~a"
expected-name filename name))
(define (check-module-form exp expected-module filename)
(unless (or (syntax? exp) (eof-object? exp))
(raise-argument-error 'check-module-form "(or/c syntax? eof-object?)" exp))
@ -26,17 +21,10 @@
(cond [(or (eof-object? exp) (eof-object? (syntax-e exp)))
(and filename
(error 'load-handler
"expected a `module' declaration for `~a' in ~s, but found end-of-file"
expected-module filename))]
"expected a `module' declaration in ~s, but found end-of-file"
filename))]
[(compiled-module-expression? (syntax-e exp))
(if (or #t ; we don't check the name anymore
(eq? (module-compiled-name (syntax-e exp)) expected-module))
;; It's fine:
exp
;; Wrong name:
(and filename (raise-wrong-module-name
filename expected-module
(module-compiled-name (syntax-e exp)))))]
exp]
[(and (syntax? exp)
(syntax-case exp ()
[(mod nm . _)
@ -44,17 +32,13 @@
[_else #f]))
;; It's ok; need to install a specific `module' binding:
(with-syntax ([(mod nm . _) exp])
(when #f ; we don't check the name anymore
(unless (eq? (syntax-e #'nm) expected-module)
(raise-wrong-module-name filename expected-module
(syntax-e #'nm))))
(datum->syntax exp
(cons (namespace-module-identifier)
(cdr (syntax-e exp)))
exp
exp))]
(cons (namespace-module-identifier)
(cdr (syntax-e exp)))
exp
exp))]
[else
(and filename
(error 'load-handler
"expected a `module' declaration for `~a' in ~s, but found something else"
expected-module filename))])))
"expected a `module' declaration in ~s, but found something else"
filename))])))