blob: a95a0e013493d8700d7b7a7522a524036d22bc0c [file] [log] [blame]
// Treat fields of different files as belonging to the same struct.
// This means that a closed embedding in one file should not restrict the
// fields of another.
-- in.cue --
#theme: {
color: string
ctermbg: string
}
dark: #theme & {
color: "dark"
ctermbg: "239"
}
light: #theme & {
color: "light"
ctermbg: "254"
}
#Config: {
console: dark | *light
}
-- box.cue --
#Config & {
console: dark
}
-- out/eval --
(#struct){
#theme: (#struct){
color: (string){ string }
ctermbg: (string){ string }
}
dark: (#struct){
color: (string){ "dark" }
ctermbg: (string){ "239" }
}
light: (#struct){
color: (string){ "light" }
ctermbg: (string){ "254" }
}
#Config: (#struct){
console: (struct){ |(*(#struct){
color: (string){ "light" }
ctermbg: (string){ "254" }
}, (#struct){
color: (string){ "dark" }
ctermbg: (string){ "239" }
}) }
}
console: (#struct){
color: (string){ "dark" }
ctermbg: (string){ "239" }
}
}
-- out/compile --
--- in.cue
{
#theme: {
color: string
ctermbg: string
}
dark: (〈0;#theme & {
color: "dark"
ctermbg: "239"
})
light: (〈0;#theme & {
color: "light"
ctermbg: "254"
})
#Config: {
console: (〈1;dark〉|*〈1;light〉)
}
}
--- box.cue
{
(〈0;#Config & {
console: 1;dark
})
}