#name: definitions with disjunctions recurisive
#evalPartial
-- in.cue --
#Foo: {
	x: {
		field: int

		{a: 1} |
		{b: 2}
	}
	x: c: 3
}
-- out/def --
#Foo: {
	x: {
		field: int
		a:     1
		c:     3
	} | {
		field: int
		b:     2
		c:     3
	}
}
-- out/export --

-- out/yaml --
{}
-- out/json --
{}
-- out/legacy-debug --
<0>{#Foo: <1>C{x: (<2>C{field: int, a: 1, c: 3} | <3>C{field: int, b: 2, c: 3})}}
-- out/compile --
--- in.cue
{
  #Foo: {
    x: {
      field: int
      ({
        a: 1
      }|{
        b: 2
      })
    }
    x: {
      c: 3
    }
  }
}
-- out/eval/stats --
Leaks:  0
Freed:  11
Reused: 5
Allocs: 6
Retain: 0

Unifications: 9
Conjuncts:    13
Disjuncts:    11
-- out/eval --
(struct){
  #Foo: (#struct){
    x: (#struct){ |((#struct){
        field: (int){ int }
        c: (int){ 3 }
        a: (int){ 1 }
      }, (#struct){
        field: (int){ int }
        c: (int){ 3 }
        b: (int){ 2 }
      }) }
  }
}
