internal/core/adt: move cycle state saving logic to Expr
The and builtin uses EvaluateKeepState to weave
cycle information into further evaluation. This should
generally be done if Expr is used. We therefore move that
logic to Expr directly, so that this complicated piece
of code does not proliferate.
Issue #3649
Signed-off-by: Marcel van Lohuizen <mpvl@gmail.com>
Change-Id: Ib9460b0cf8e09065dc3a9b5a42f9f349c03d6fdc
Reviewed-on: https://review.gerrithub.io/c/cue-lang/cue/+/1208687
TryBot-Result: CUEcueckoo <cueckoo@cuelang.org>
Unity-Result: CUE porcuepine <cue.porcuepine@gmail.com>
Reviewed-by: Matthew Sackman <matthew@cue.works>