- (let ((cont1 (make-continuation))
- (cont2 (make-continuation)))
- (continuation-starts-block cont1)
- (link-node-to-previous-continuation bind cont1)
- (use-continuation bind cont2)
- (ir1-convert-special-bindings cont2 result body
- aux-vars aux-vals (svars)))
-
- (let ((block (continuation-block result)))
- (when block
- (let ((return (make-return :result result :lambda lambda))
- (tail-set (make-tail-set :funs (list lambda)))
- (dummy (make-continuation)))
- (setf (lambda-tail-set lambda) tail-set)
- (setf (lambda-return lambda) return)
- (setf (continuation-dest result) return)
- (flush-continuation-externally-checkable-type result)
- (setf (block-last block) return)
- (link-node-to-previous-continuation return result)
- (use-continuation return dummy))
- (link-blocks block (component-tail *current-component*))))))
+ (let ((block (continuation-starts-block result)))
+ (let ((return (make-return :result result :lambda lambda))
+ (tail-set (make-tail-set :funs (list lambda)))
+ (dummy (make-continuation)))
+ (setf (lambda-tail-set lambda) tail-set)
+ (setf (lambda-return lambda) return)
+ (setf (continuation-dest result) return)
+ (flush-continuation-externally-checkable-type result)
+ (setf (block-last block) return)
+ (link-node-to-previous-continuation return result)
+ (use-continuation return dummy))
+ (link-blocks block (component-tail *current-component*)))
+
+ (with-component-last-block (*current-component*
+ (continuation-block result))
+ (let ((cont1 (make-continuation))
+ (cont2 (make-continuation)))
+ (continuation-starts-block cont1)
+ (link-node-to-previous-continuation bind cont1)
+ (use-continuation bind cont2)
+ (ir1-convert-special-bindings cont2 result body
+ aux-vars aux-vals (svars))))))