Added safety checks

This commit is contained in:
Justin Ethier 2019-09-19 13:16:04 -04:00
parent 7ed21d9c7a
commit ff65b5d2ed

View file

@ -1959,8 +1959,14 @@
))))))
(with-handler
(lambda (err)
(trace:error `(error transforming CC loop ,err))
result)
(cond
(replace
((and replace
(tagged-list? '%closure (car result)) ;; TODO: see above, not always a closure, what to do then?
)
(define (clo->lambda-body sexp)
(car (ast:lambda-body (cadr sexp))))
@ -1973,7 +1979,7 @@
(set-cdr! outer-body `((cell ,set-clo))) ;; Relocate the closure
result
))
(else result))
(else result)))
))
((lambda? fn) (error `(Unexpected lambda in closure-convert ,exp)))
(else