#name: top-level definition with struct and disjunction
#evalPartial
-- in.cue --
#def: {
	Type: string
	Text: string
	Size: int
}

#def: {
	Type: "B"
	Size: 0
} | {
	Type: "A"
	Size: 1
}
-- out/def --
#def: {
	Size: 0
	Type: "B"
	Text: string
} | {
	Size: 1
	Type: "A"
	Text: string
}
-- out/export --

-- out/yaml --
{}
-- out/json --
{}
-- out/legacy-debug --
<0>{#def: (<1>C{Size: (0 & int), Type: ("B" & string), Text: string} | <2>C{Size: (1 & int), Type: ("A" & string), Text: string})}
-- out/compile --
--- in.cue
{
  #def: {
    Type: string
    Text: string
    Size: int
  }
  #def: ({
    Type: "B"
    Size: 0
  }|{
    Type: "A"
    Size: 1
  })
}
-- out/eval/stats --
Leaks:  0
Freed:  10
Reused: 5
Allocs: 5
Retain: 0

Unifications: 8
Conjuncts:    15
Disjuncts:    10
-- out/eval --
(struct){
  #def: (#struct){ |((#struct){
      Type: (string){ "B" }
      Text: (string){ string }
      Size: (int){ 0 }
    }, (#struct){
      Type: (string){ "A" }
      Text: (string){ string }
      Size: (int){ 1 }
    }) }
}
