internal/core/adt: allow hidden fields alongside embedded lists

Fixes #794

Change-Id: Idf9f342347563ea5be19c84004586a4df30b02b8
Reviewed-on: https://cue-review.googlesource.com/c/cue/+/8921
Reviewed-by: CUE cueckoo <cueckoo@gmail.com>
Reviewed-by: Marcel van Lohuizen <mpvl@golang.org>
diff --git a/cue/testdata/scalars/embed.txtar b/cue/testdata/scalars/embed.txtar
index 86089e5..fe0424f 100644
--- a/cue/testdata/scalars/embed.txtar
+++ b/cue/testdata/scalars/embed.txtar
@@ -93,6 +93,13 @@
         other: 3
     }
 }
+
+hidden: {
+    issue794: {
+        _foo: "foo"
+        [_foo]
+    }
+}
 -- out/eval --
 Errors:
 listEmbed.b6: invalid list index 5 (out of bounds):
@@ -194,6 +201,12 @@
       other: (int){ 3 }
     }
   }
+  hidden: (struct){
+    issue794: (#list){
+      _foo: (string){ "foo" }
+      0: (string){ "foo" }
+    }
+  }
 }
 -- out/compile --
 --- in.cue
@@ -301,4 +314,12 @@
       other: 3
     }
   }
+  hidden: {
+    issue794: {
+      _foo: "foo"
+      [
+        〈0;_foo〉,
+      ]
+    }
+  }
 }
diff --git a/internal/core/adt/context.go b/internal/core/adt/context.go
index 0eacb24..ce4fcc8 100644
--- a/internal/core/adt/context.go
+++ b/internal/core/adt/context.go
@@ -743,7 +743,7 @@
 				return nil
 			}
 
-		case l.IsDef():
+		case l.IsDef(), l.IsHidden():
 
 		default:
 			c.addErrf(0, pos, "invalid list index %s (type string)", l)