internal/core/dep: first stab at precise dependency analyzer

Change-Id: I0bf5de9a1b2421ddffa4108c6dbffd38dae2cfe0
Reviewed-on: https://cue-review.googlesource.com/c/cue/+/7604
Reviewed-by: CUE cueckoo <cueckoo@gmail.com>
Reviewed-by: Marcel van Lohuizen <mpvl@golang.org>
diff --git a/internal/core/dep/testdata/structcomprehension.txtar b/internal/core/dep/testdata/structcomprehension.txtar
new file mode 100644
index 0000000..62ffd8f
--- /dev/null
+++ b/internal/core/dep/testdata/structcomprehension.txtar
@@ -0,0 +1,19 @@
+-- in.cue --
+a: b: {
+    for i, x in c
+    let y = x
+    if y > 0 {
+        "\(e)\(i)": x + d
+    }
+}
+
+c: [1, 2]
+d: 2
+e: "t"
+-- out/dependencies/field --
+c
+e
+-- out/dependencies/all --
+c
+e
+d