dep.lisp (%dep-value): Document why this is a separate function.
[lisp] / dep.lisp
index c437538..ecd1628 100644 (file)
--- a/dep.lisp
+++ b/dep.lisp
               (progn (setf (dep-flags dep) flags) nil))))))
 
 (defun %dep-value (dep)
-  "Do the difficult work of retrieving the current value of a DEP."
+  "Do the difficult work of retrieving the current value of a DEP.
+
+   This is the unhappy path of `dep-value'."
+  (force-dep-value dep)
   (when *evaluating-dep*
     (pushnew (dep-weak-pointer *evaluating-dep*) (dep-dependents dep))
-    (pushnew dep (dep-dependencies *evaluating-dep*)))
-  (force-dep-value dep))
+    (pushnew dep (dep-dependencies *evaluating-dep*))))
 
 (export 'dep-value)
 (declaim (inline dep-value))