Document surprising control flow.

This commit is contained in:
Vincent St-Amour 2014-11-07 15:11:47 -05:00
parent 424e896da5
commit 629b3119b8

View File

@ -82,6 +82,7 @@
;; run code in an extended env and with replaced props. Requires the body to return a tc-results. ;; run code in an extended env and with replaced props. Requires the body to return a tc-results.
;; TODO make this only add the new prop instead of the entire environment once tc-id is fixed to ;; TODO make this only add the new prop instead of the entire environment once tc-id is fixed to
;; include the interesting props in its filter. ;; include the interesting props in its filter.
;; WARNING: this may bail out when code is unreachable
(define-syntax (with-lexical-env/extend-props stx) (define-syntax (with-lexical-env/extend-props stx)
(define-splicing-syntax-class unreachable? (define-splicing-syntax-class unreachable?
(pattern (~seq #:unreachable form:expr)) (pattern (~seq #:unreachable form:expr))
@ -92,6 +93,7 @@
(if new-env (if new-env
(with-lexical-env new-env (with-lexical-env new-env
(add-unconditional-prop (let () . b) (apply -and (append atoms (env-props new-env))))) (add-unconditional-prop (let () . b) (apply -and (append atoms (env-props new-env)))))
;; unreachable, bail out
(let () (let ()
u.form u.form
(ret -Bottom))))])) (ret -Bottom))))]))