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)