internal/core/adt: avoid finalizing too early
unify pro-actively evaluates pending arcs. This
pro-active finalization could lead to tasks being
forcibly unblocked too early, leaving values to
function as "undefined".
We now only "require" pending arcs (yield) and
do not finalize. Note that if this results in blocks, this
will have the same effect as finalization.
This does uncover a situation where a value may
"yield" oustside of an underlying tasks. In this case,
we can simply "fall back" to finalization.
Added "related" issue, to show that this change does
not break that test.
Fixes #3919
Signed-off-by: Marcel van Lohuizen <mpvl@gmail.com>
Change-Id: Ifb6f6374edd9a5a93a43c83bfa002b3b4ee703fc
Reviewed-on: https://review.gerrithub.io/c/cue-lang/cue/+/1214950
Reviewed-by: Daniel Martí <mvdan@mvdan.cc>
TryBot-Result: CUEcueckoo <cueckoo@cuelang.org>
Unity-Result: CUE porcuepine <cue.porcuepine@gmail.com>
authored by