# DO NOT EDIT; generated by go run testdata/gen.go | |
# | |
#name: combined definitions | |
#evalPartial | |
-- in.cue -- | |
// Allow combining of structs within a definition | |
#D1: { | |
env: a: "A" | |
env: b: "B" | |
#def: {a: "A"} | |
#def: {b: "B"} | |
} | |
d1: #D1 & {env: c: "C"} | |
#D2: { | |
a: int | |
} | |
#D2: { | |
b: int | |
} | |
#D3: { | |
env: a: "A" | |
} | |
#D3: { | |
env: b: "B" | |
} | |
#D4: { | |
env: #DC | |
env: b: int | |
} | |
#DC: {a: int} | |
-- out/def -- | |
// Allow combining of structs within a definition | |
#D1: { | |
env: { | |
a: "A" | |
b: "B" | |
} | |
#def: { | |
a: "A" | |
b: "B" | |
} | |
} | |
d1: #D1 & { | |
env: { | |
c: "C" | |
} | |
} | |
#D2: { | |
a: int | |
b: int | |
} | |
#D3: { | |
env: { | |
a: "A" | |
b: "B" | |
} | |
} | |
#D4: { | |
env: _|_ // field "b" not allowed in closed struct | |
} | |
#DC: { | |
a: int | |
} | |
-- out/legacy-debug -- | |
<0>{#D1: <1>C{env: <2>C{a: "A", b: "B"}, #def: <3>C{a: "A", b: "B"}}, d1: <4>C{env: _|_("C":field "c" not allowed in closed struct), #def: <5>C{a: "A", b: "B"}}, #D2: <6>C{a: int, b: int}, #D3: <7>C{env: <8>C{a: "A", b: "B"}}, #D4: <9>C{env: _|_(int:field "b" not allowed in closed struct)}, #DC: <10>C{a: int}} | |
-- out/compile -- | |
--- in.cue | |
{ | |
#D1: { | |
env: { | |
a: "A" | |
} | |
env: { | |
b: "B" | |
} | |
#def: { | |
a: "A" | |
} | |
#def: { | |
b: "B" | |
} | |
} | |
d1: (〈0;#D1〉 & { | |
env: { | |
c: "C" | |
} | |
}) | |
#D2: { | |
a: int | |
} | |
#D2: { | |
b: int | |
} | |
#D3: { | |
env: { | |
a: "A" | |
} | |
} | |
#D3: { | |
env: { | |
b: "B" | |
} | |
} | |
#D4: { | |
env: 〈1;#DC〉 | |
env: { | |
b: int | |
} | |
} | |
#DC: { | |
a: int | |
} | |
} | |
-- out/eval -- | |
Errors: | |
field `b` not allowed | |
field `c` not allowed | |
Result: | |
(_|_){ | |
// [eval] | |
#D1: (#struct){ | |
env: (#struct){ | |
a: (string){ "A" } | |
b: (string){ "B" } | |
} | |
#def: (#struct){ | |
a: (string){ "A" } | |
b: (string){ "B" } | |
} | |
} | |
d1: (_|_){ | |
// [eval] | |
env: (_|_){ | |
// [eval] field `c` not allowed | |
a: (string){ "A" } | |
b: (string){ "B" } | |
c: (string){ "C" } | |
} | |
#def: (#struct){ | |
a: (string){ "A" } | |
b: (string){ "B" } | |
} | |
} | |
#D2: (#struct){ | |
a: (int){ int } | |
b: (int){ int } | |
} | |
#D3: (#struct){ | |
env: (#struct){ | |
a: (string){ "A" } | |
b: (string){ "B" } | |
} | |
} | |
#D4: (_|_){ | |
// [eval] | |
env: (_|_){ | |
// [eval] field `b` not allowed | |
a: (int){ int } | |
b: (int){ int } | |
} | |
} | |
#DC: (#struct){ | |
a: (int){ int } | |
} | |
} |