# 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:
    ./in.cue:1:1
    ./in.cue:1:5
    ./in.cue:4:1
    ./in.cue:4:5
    ./in.cue:9:10
d: field `aaa` not allowed:
    ./in.cue:1:1
    ./in.cue:1:5
    ./in.cue:4:1
    ./in.cue:4:5
    ./in.cue:11:5
    ./in.cue:12:9

Result:
(_|_){
  // [eval]
  #A: (#struct){
  }
  #B: (#struct){
  }
  #C: (#struct){
  }
  c: (_|_){
    // [eval] c: field `aaa` not allowed:
    //     ./in.cue:1:1
    //     ./in.cue:1:5
    //     ./in.cue:4:1
    //     ./in.cue:4:5
    //     ./in.cue:9:10
    aaa: (int){ 3 }
  }
  #D: (#struct){
  }
  d: (_|_){
    // [eval] d: field `aaa` not allowed:
    //     ./in.cue:1:1
    //     ./in.cue:1:5
    //     ./in.cue:4:1
    //     ./in.cue:4:5
    //     ./in.cue:11:5
    //     ./in.cue:12:9
    aaa: (int){ 3 }
  }
}
