# DO NOT EDIT; generated by go run testdata/gen.go | |
# | |
#name: non-closed definition carries over closedness to enclosed template | |
#evalPartial | |
-- in.cue -- | |
#S: { | |
[string]: {a: int} | |
} | |
a: #S & { | |
v: {b: int} | |
} | |
#Q: { | |
[string]: {a: int} | {b: int} | |
} | |
b: #Q & { | |
w: {c: int} | |
} | |
#R: { | |
[string]: [{a: int}, {b: int}] | |
} | |
c: #R & { | |
w: [{d: int}, ...] | |
} | |
-- out/def -- | |
#S: { | |
[string]: { | |
a: int | |
} | |
} | |
a: #S & { | |
v: { | |
b: int | |
} | |
} | |
b: #Q & { | |
w: { | |
c: int | |
} | |
} | |
#Q: { | |
[string]: { | |
a: int | |
} | { | |
b: int | |
} | |
} | |
c: #R & { | |
w: [{ | |
d: int | |
}, ...] | |
} | |
#R: { | |
[string]: [{ | |
a: int | |
}, { | |
b: int | |
}] | |
} | |
-- out/legacy-debug -- | |
<0>{#S: <1>{[]: <2>(_: string)-><3>C{a: int}, }, a: <4>{[]: <5>(_: string)-><6>C{a: int}, v: _|_(int:field "b" not allowed in closed struct)}, b: <7>{[]: <8>(_: string)->(<9>C{a: int} | <10>C{b: int}), w: _|_(int:empty disjunction: field "c" not allowed in closed struct)}, #Q: <11>{[]: <12>(_: string)->(<13>C{a: int} | <14>C{b: int}), }, c: <15>{[]: <16>(_: string)->[<17>C{a: int},<18>C{b: int}], w: [_|_(int:field "d" not allowed in closed struct),<19>C{b: int}]}, #R: <20>{[]: <21>(_: string)->[<22>C{a: int},<23>C{b: int}], }} | |
-- out/compile -- | |
--- in.cue | |
{ | |
#S: { | |
[string]: { | |
a: int | |
} | |
} | |
a: (〈0;#S〉 & { | |
v: { | |
b: int | |
} | |
}) | |
#Q: { | |
[string]: ({ | |
a: int | |
}|{ | |
b: int | |
}) | |
} | |
b: (〈0;#Q〉 & { | |
w: { | |
c: int | |
} | |
}) | |
#R: { | |
[string]: [ | |
{ | |
a: int | |
}, | |
{ | |
b: int | |
}, | |
] | |
} | |
c: (〈0;#R〉 & { | |
w: [ | |
{ | |
d: int | |
}, | |
..., | |
] | |
}) | |
} | |
-- out/eval -- | |
Errors: | |
field `b` not allowed | |
field `c` not allowed | |
field `d` not allowed | |
Result: | |
(_|_){ | |
// [eval] | |
#S: (#struct){ | |
} | |
a: (_|_){ | |
// [eval] | |
v: (_|_){ | |
// [eval] field `b` not allowed | |
b: (int){ int } | |
a: (int){ int } | |
} | |
} | |
#Q: (#struct){ | |
} | |
b: (_|_){ | |
// [eval] | |
w: (_|_){ | |
// [eval] field `c` not allowed | |
c: (int){ int } | |
b: (int){ int } | |
} | |
} | |
#R: (#struct){ | |
} | |
c: (_|_){ | |
// [eval] | |
w: (_|_){ | |
// [eval] | |
0: (_|_){ | |
// [eval] field `d` not allowed | |
d: (int){ int } | |
a: (int){ int } | |
} | |
1: (#struct){ | |
b: (int){ int } | |
} | |
} | |
} | |
} |