src/class-output.lisp, src/output-impl.lisp: Warn about unused items.
[sod] / src / output-impl.lisp
index f668fef..d85d77d 100644 (file)
     (pushnew function (sequencer-item-functions item))))
 
 (defmethod invoke-sequencer-items ((sequencer sequencer) &rest arguments)
-  (dolist (item (merge-lists (reverse (sequencer-constraints sequencer))))
-    (dolist (function (reverse (sequencer-item-functions item)))
-      (apply function arguments))))
+  (let ((seen (make-hash-table)))
+    (dolist (item (merge-lists (reverse (sequencer-constraints sequencer))))
+      (setf (gethash item seen) t)
+      (dolist (function (reverse (sequencer-item-functions item)))
+       (apply function arguments)))
+    (maphash (lambda (name item)
+              (unless (gethash item seen)
+                (warn "Unused output item ~S" name)))
+            (sequencer-table sequencer))))
 
 ;;;----- That's all, folks --------------------------------------------------