free-vars: nicer error on submodules
This commit is contained in:
parent
715bdbb49e
commit
22caaad944
|
@ -49,7 +49,9 @@
|
||||||
(define (free-vars e [code-insp
|
(define (free-vars e [code-insp
|
||||||
(variable-reference->module-declaration-inspector
|
(variable-reference->module-declaration-inspector
|
||||||
(#%variable-reference))])
|
(#%variable-reference))])
|
||||||
;; It would be nicers to have a functional mapping:
|
(define (submodule-error e)
|
||||||
|
(error 'free-vars "submodules not supported: ~a" e))
|
||||||
|
;; It would be nicer to have a functional mapping:
|
||||||
(define bindings (make-bound-identifier-mapping))
|
(define bindings (make-bound-identifier-mapping))
|
||||||
(merge
|
(merge
|
||||||
(let free-vars ([e e])
|
(let free-vars ([e e])
|
||||||
|
@ -89,5 +91,9 @@
|
||||||
(list #'if #'begin #'begin0 #'set! #'#%plain-app #'#%expression
|
(list #'if #'begin #'begin0 #'set! #'#%plain-app #'#%expression
|
||||||
#'#%variable-reference #'with-continuation-mark))
|
#'#%variable-reference #'with-continuation-mark))
|
||||||
(map free-vars (syntax->list #'(expr ...)))]
|
(map free-vars (syntax->list #'(expr ...)))]
|
||||||
|
[(module . _)
|
||||||
|
(submodule-error e)]
|
||||||
|
[(module* . _)
|
||||||
|
(submodule-error e)]
|
||||||
[(kw . _)
|
[(kw . _)
|
||||||
(error 'free-vars "unknown core form: ~a" (syntax->datum #'kw))]))))
|
(error 'free-vars "unknown core form: ~a" (syntax->datum #'kw))]))))
|
||||||
|
|
Loading…
Reference in New Issue
Block a user