# This file tests disjunctions used as operands.
-- in.cue --
list: *[1] | [2]
condition: *true | false
num:       *1 | 2
object: *{a: 1} | {a: 2}

forLoop: [
	for e in list {
		"count: \(e)"
	},
]

conditional: {
	if condition {
		a: 3
	}
	if num < 5 {
		b: 3
	}
}

selector: {
	a: object.a
}

index: {
	a: list[0]
}

binOp: {
	a: num + 4
}

unaryOp: {
	a: -num
}
-- out/compile --
--- in.cue
{
  list: (*[
    1,
  ]|[
    2,
  ])
  condition: (*true|false)
  num: (*1|2)
  object: (*{
    a: 1
  }|{
    a: 2
  })
  forLoop: [
    for _, e in 〈1;list〉 {
      "count: \(〈1;e〉)"
    },
  ]
  conditional: {
    if 〈1;condition〉 {
      a: 3
    }
    if (〈1;num〉 < 5) {
      b: 3
    }
  }
  selector: {
    a: 〈1;object〉.a
  }
  index: {
    a: 〈1;list〉[0]
  }
  binOp: {
    a: (〈1;num〉 + 4)
  }
  unaryOp: {
    a: -〈1;num〉
  }
}
