blob: 3666ce8a3463a8f3508e9b205178015707f3dc29 [file] [log] [blame]
# 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/eval --
(struct){
list: (list){ |(*(#list){
0: (int){ 1 }
}, (#list){
0: (int){ 2 }
}) }
condition: (bool){ |(*(bool){ true }, (bool){ false }) }
num: (int){ |(*(int){ 1 }, (int){ 2 }) }
object: (struct){ |(*(struct){
a: (int){ 1 }
}, (struct){
a: (int){ 2 }
}) }
forLoop: (#list){
0: (string){ "count: 1" }
}
conditional: (struct){
a: (int){ 3 }
b: (int){ 3 }
}
selector: (struct){
a: (int){ 1 }
}
index: (struct){
a: (int){ 1 }
}
binOp: (struct){
a: (int){ 5 }
}
unaryOp: (struct){
a: (int){ -1 }
}
}
-- out/compile --
--- in.cue
{
list: (*[
1,
]|[
2,
])
condition: (*true|false)
num: (*1|2)
object: (*{
a: 1
}|{
a: 2
})
forLoop: [
for _, e in 0;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
}
}