- (loop for node = (ctran-next this-cont) then (ctran-next (node-next node))
- until (eq node last)
- do (record-node-xrefs node functional))
- ;; Properly record the deferred macroexpansion information
- ;; that's been stored in the block.
- (dolist (xref-data (block-macroexpands block))
- (record-xref :macroexpands
- (car xref-data)
- ;; We use the debug-name of the functional
- ;; as an identifier. This works quite nicely,
- ;; except for (fast/slow)-methods with non-symbol,
- ;; non-number eql specializers, for which
- ;; the debug-name doesn't map exactly
- ;; to the fdefinition of the method.
- functional
- nil
- (cdr xref-data)))))
+ (loop for ctran = start then (node-next (ctran-next ctran))
+ while ctran
+ do (record-node-xrefs (ctran-next ctran) functional))
+ ;; Properly record the deferred macroexpansion and source
+ ;; transform information that's been stored in the block.
+ (dolist (xref-data (block-xrefs block))
+ (destructuring-bind (kind what path) xref-data
+ (record-xref kind what
+ ;; We use the debug-name of the functional
+ ;; as an identifier. This works quite nicely,
+ ;; except for (fast/slow)-methods with non-symbol,
+ ;; non-number eql specializers, for which
+ ;; the debug-name doesn't map exactly
+ ;; to the fdefinition of the method.
+ functional
+ nil
+ path)))))