blob: 12c2c823809f5d5c83dc3c18e44599418b0a7860 [file] [log] [blame]
# Allow otherField
-- in.cue --
#T: {
#Schema: [_]: #D
concrete: #Schema
}
#D: {
fieldWithDefault: *0 | int
...
}
s: #T & {
#Schema: {
foo: otherField: string
}
concrete: foo: otherField: "hello"
}
#Container: {
Env: [Name=string]: {
name: string
value: string
}
}
#Deployment: {
#Containers: [Name=string]: #Container
containers: [ for c in #Containers { c } ] // Problem is here.
}
Something: {
#Deployment
#Containers: {
// Does not allow entries other than value. Either add ... or embed
"a thing": Env: foobar: value: "foo"
}
}
x: Something & #Deployment
-- out/eval --
(struct){
#T: (#struct){
#Schema: (#struct){
}
concrete: (#struct){
}
}
#D: (#struct){
fieldWithDefault: (int){ |(*(int){ 0 }, (int){ int }) }
}
s: (#struct){
#Schema: (#struct){
foo: (#struct){
otherField: (string){ string }
fieldWithDefault: (int){ |(*(int){ 0 }, (int){ int }) }
}
}
concrete: (#struct){
foo: (#struct){
otherField: (string){ "hello" }
fieldWithDefault: (int){ |(*(int){ 0 }, (int){ int }) }
}
}
}
#Container: (#struct){
Env: (#struct){
}
}
#Deployment: (#struct){
#Containers: (#struct){
}
containers: (#list){
}
}
Something: (#struct){
#Containers: (#struct){
"a thing": (#struct){
Env: (#struct){
foobar: (#struct){
value: (string){ "foo" }
name: (string){ string }
}
}
}
}
containers: (#list){
0: (#struct){
Env: (#struct){
foobar: (#struct){
value: (string){ "foo" }
name: (string){ string }
}
}
}
}
}
x: (#struct){
#Containers: (#struct){
"a thing": (#struct){
Env: (#struct){
foobar: (#struct){
value: (string){ "foo" }
name: (string){ string }
}
}
}
}
containers: (#list){
0: (#struct){
Env: (#struct){
foobar: (#struct){
value: (string){ "foo" }
name: (string){ string }
}
}
}
}
}
}
-- out/export --
#T: {
#Schema: [_]: #D
concrete: #Schema
}
#D: {
fieldWithDefault: *0 | int
...
}
s: #T & {
#Schema: {
foo: otherField: string
}
concrete: foo: otherField: "hello"
}
#Container: {
Env: [Name=string]: {
name: string
value: string
}
}
#Deployment: {
#Containers: [Name=string]: #Container
containers: [ for c in #Containers {c}] // Problem is here.
}
Something: {
#Deployment
#Containers: {
// Does not allow entries other than value. Either add ... or embed
"a thing": Env: foobar: value: "foo"
}
}
x: Something & #Deployment
-- out/compile --
--- in.cue
{
#T: {
#Schema: {
[_]: 2;#D
}
concrete: 0;#Schema
}
#D: {
fieldWithDefault: (*0|int)
...
}
s: (〈0;#T & {
#Schema: {
foo: {
otherField: string
}
}
concrete: {
foo: {
otherField: "hello"
}
}
})
#Container: {
Env: {
[string]: {
name: string
value: string
}
}
}
#Deployment: {
#Containers: {
[string]: 2;#Container
}
containers: [
for _, c in 0;#Containers {
1;c
},
]
}
Something: {
1;#Deployment
#Containers: {
"a thing": {
Env: {
foobar: {
value: "foo"
}
}
}
}
}
x: (〈0;Something & 0;#Deployment〉)
}