blob: 7f92529f26e678eca8bd3d82c7c71e3be153860d [file] [log] [blame]
-- in.cue --
package deps
a: {
#A: {
n: string
depends_on: [...#AnyA]
}
#AnyA: {
n: string
depends_on: [...#AnyA]
...
}
#A1: {
#A
x: int
y: z: string // Comment to avoid error
}
#A2: {
#A
i: string
}
s: [Name=string]: #AnyA & { n: Name }
s: foo: #A1 & {
x: 10
y: z: "z" // Comment to avoid error
}
s: bar: #A2 & {
i: "hello bar"
depends_on: [s.foo]
}
}
b: {
#A: {
f: {...}
}
#A1: {
#A
// f: {...} // Uncomment to fix
}
#C: {
d: {...}
}
s: [string]: #A1
s: foo: {
f: #C & {
d: foo: "bar"
}
}
}
-- out/eval --
(struct){
a: (struct){
#A: (#struct){
n: (string){ string }
depends_on: (list){
}
}
#AnyA: (#struct){
n: (string){ string }
depends_on: (list){
}
}
#A1: (#struct){
n: (string){ string }
depends_on: (list){
}
x: (int){ int }
y: (#struct){
z: (string){ string }
}
}
#A2: (#struct){
n: (string){ string }
depends_on: (list){
}
i: (string){ string }
}
s: (struct){
foo: (#struct){
n: (string){ "foo" }
depends_on: (list){
}
x: (int){ 10 }
y: (#struct){
z: (string){ "z" }
}
}
bar: (#struct){
n: (string){ "bar" }
depends_on: (#list){
0: (#struct){
n: (string){ "foo" }
depends_on: (list){
}
x: (int){ 10 }
y: (#struct){
z: (string){ "z" }
}
}
}
i: (string){ "hello bar" }
}
}
}
b: (struct){
#A: (#struct){
f: (#struct){
}
}
#A1: (#struct){
f: (#struct){
}
}
#C: (#struct){
d: (#struct){
}
}
s: (struct){
foo: (#struct){
f: (#struct){
d: (#struct){
foo: (string){ "bar" }
}
}
}
}
}
}
-- out/compile --
--- in.cue
{
a: {
#A: {
n: string
depends_on: [
...〈1;#AnyA〉,
]
}
#AnyA: {
n: string
depends_on: [
...〈1;#AnyA〉,
]
...
}
#A1: {
1;#A
x: int
y: {
z: string
}
}
#A2: {
1;#A
i: string
}
s: {
[string]: (〈1;#AnyA & {
n: 1;-〉
})
}
s: {
foo: (〈1;#A1 & {
x: 10
y: {
z: "z"
}
})
}
s: {
bar: (〈1;#A2 & {
i: "hello bar"
depends_on: [
2;s〉.foo,
]
})
}
}
b: {
#A: {
f: {
...
}
}
#A1: {
1;#A
}
#C: {
d: {
...
}
}
s: {
[string]: 1;#A1
}
s: {
foo: {
f: (〈2;#C & {
d: {
foo: "bar"
}
})
}
}
}
}