# DO NOT EDIT; generated by go run testdata/gen.go
#
#name: conjunction of optional sets
#evalFull
-- in.cue --
#A: {
	[=~"^[a-s]*$"]: int
}
#B: {
	[=~"^[m-z]*$"]: int
}

#C: #A & #B
c:  #C & {aaa: 3}

#D: {#A & #B}
d: #D & {aaa: 3}
-- out/def --
#A: {
	[=~"^[a-s]*$"]: int
}
#B: {
	[=~"^[m-z]*$"]: int
}
#C: #A & #B
c:  _|_ // field "aaa" not allowed in closed struct
#D: {
	#A & #B
}
d: _|_ // field "aaa" not allowed in closed struct
-- out/legacy-debug --
<0>{#A: <1>C{[=~"^[a-s]*$"]: <2>(_: string)->int, }, #B: <3>C{[=~"^[m-z]*$"]: <4>(_: string)->int, }, #C: <5>C{(C{[=~"^[a-s]*$"]: <6>(_: string)->int} & C{[=~"^[m-z]*$"]: <7>(_: string)->int}), }, c: _|_(3:field "aaa" not allowed in closed struct), #D: <8>C{(C{[=~"^[a-s]*$"]: <9>(_: string)->int} & C{[=~"^[m-z]*$"]: <10>(_: string)->int}), }, d: _|_(3:field "aaa" not allowed in closed struct)}
-- out/compile --
--- in.cue
{
  #A: {
    [=~"^[a-s]*$"]: int
  }
  #B: {
    [=~"^[m-z]*$"]: int
  }
  #C: (〈0;#A〉 & 〈0;#B〉)
  c: (〈0;#C〉 & {
    aaa: 3
  })
  #D: {
    (〈1;#A〉 & 〈1;#B〉)
  }
  d: (〈0;#D〉 & {
    aaa: 3
  })
}
-- out/eval --
Errors:
c: field `aaa` not allowed
d: field `aaa` not allowed

Result:
(_|_){
  // [eval]
  #A: (#struct){
  }
  #B: (#struct){
  }
  #C: (#struct){
  }
  c: (_|_){
    // [eval] c: field `aaa` not allowed
    aaa: (int){ 3 }
  }
  #D: (#struct){
  }
  d: (_|_){
    // [eval] d: field `aaa` not allowed
    aaa: (int){ 3 }
  }
}
