-
Notifications
You must be signed in to change notification settings - Fork 278
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
internal/core/adt: unshare once Pending arc is known
If an arc for a comprehension is added, that arc would invalidate sharing if it would be certain that the comprehension will yield a result. We do not generally know this, though. Unset sharing as soon as an arc loses Pending status. This also means that at the time we need to indirect disjunctions, we cannot yet know whether arcs added by comprehensions are pending or not. So we need to indirect these two different types of indirections at different points in the unification algorithm. Note that issue990.txtar introduces a spurious structural cycle. The structural cycle algorithm is known to be low-fidelity at the moment, and as this fixes other issues, we can leave this to be addressed in another CL. In fact, this issue is fixed in an upcoming CL that is still WIP. Issue #2884 Issue #2854 Signed-off-by: Marcel van Lohuizen <mpvl@gmail.com> Change-Id: Ia7f7a31f861217ccf018f6d17c6d8fe30956a32f Reviewed-on: https://review.gerrithub.io/c/cue-lang/cue/+/1193674 Reviewed-by: Daniel Martí <mvdan@mvdan.cc> Unity-Result: CUE porcuepine <cue.porcuepine@gmail.com> TryBot-Result: CUEcueckoo <cueckoo@cuelang.org>
- Loading branch information
Showing
6 changed files
with
512 additions
and
86 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.