You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
internal/core/adt: use depth counters for ancestor tracking
This change uses depth counters to be able to find ancestor
nodes that are currently being processed.
The old mechanism used the evaluatingArcs status to
determine this, as well as walking up the parent tree.
The new mechanism replaces evaluatingArcs, but also tracks
some parent nodes where the Parent field may not be set.
For instance, when computing an inline struct, the parent
node is not set (it is non rooted), but for the purpose
of cycle detection, the computing node should be seen
as a parent.
We keep the use of evaluatingArcs around for now as a
definsive mechanism and remove it in a later CL to
allow finding possible negative consequences in a
bisection.
Issue #2854
Signed-off-by: Marcel van Lohuizen <mpvl@gmail.com>
Change-Id: I958905711a8bbcdb51b862c6ee60da06f1d9972c
Reviewed-on: https://review.gerrithub.io/c/cue-lang/cue/+/1202217
TryBot-Result: CUEcueckoo <cueckoo@cuelang.org>
Reviewed-by: Matthew Sackman <matthew@cue.works>
Unity-Result: CUE porcuepine <cue.porcuepine@gmail.com>
0 commit comments