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

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