# DO NOT EDIT; generated by go run testdata/gen.go
#
#name: cannot resolve references that would be ambiguous
#evalFull
-- in.cue --
a1: *0 | 1
a1: a3 - a2
a2: *0 | 1
a2: a3 - a1
a3: 1

b1: (*0 | 1) & b2
b2: (0 | *1) & b1

c1: (*{a: 1} | {b: 1}) & c2
c2: (*{a: 2} | {b: 2}) & c1
-- out/def --
a1: (*0 | 1) & a3-a2
a3: 1
a2: (*0 | 1) & a3-a1
b1: (*0 | 1) & b2
b2: (0 | *1) & b1
c1: (*{
	a: 1
} | {
	b: 1
}) & c2
c2: (*{
	a: 2
} | {
	b: 2
}) & c1
-- out/legacy-debug --
<0>{a1: ((*0 | 1) & (<1>.a3 - <1>.a2)), a3: 1, a2: ((*0 | 1) & (<1>.a3 - <1>.a1)), b1: (0 | 1), b2: (0 | 1), c1: (<2>{a: 1, b: 2} | <3>{a: 2, b: 1}), c2: (<4>{a: 2, b: 1} | <5>{a: 1, b: 2})}
-- out/compile --
--- in.cue
{
  a1: (*0|1)
  a1: (〈0;a3〉 - 〈0;a2〉)
  a2: (*0|1)
  a2: (〈0;a3〉 - 〈0;a1〉)
  a3: 1
  b1: ((*0|1) & 〈0;b2〉)
  b2: ((0|*1) & 〈0;b1〉)
  c1: ((*{
    a: 1
  }|{
    b: 1
  }) & 〈0;c2〉)
  c2: ((*{
    a: 2
  }|{
    b: 2
  }) & 〈0;c1〉)
}
-- out/eval --
(struct){
  a1: (_|_){
    // [incomplete] incomplete cause disjunction
  }
  a2: (_|_){
    // [incomplete] incomplete cause disjunction
  }
  a3: (int){ 1 }
  b1: (int){ |((int){ 0 }, (int){ 1 }) }
  b2: (int){ |((int){ 1 }, (int){ 0 }) }
  c1: (struct){ |((struct){
      a: (int){ 1 }
      b: (int){ 2 }
    }, (struct){
      b: (int){ 1 }
      a: (int){ 2 }
    }) }
  c2: (struct){ |((struct){
      a: (int){ 2 }
      b: (int){ 1 }
    }, (struct){
      b: (int){ 2 }
      a: (int){ 1 }
    }) }
}
