! cue eval errs.cue
cmp stderr expect-stderr
cmp stdout expect-stdout

-- expect-stdout --
-- expect-stderr --
bar: 2 errors in empty disjunction:
bar.a: conflicting values "str" and int (mismatched types string and int):
    ./errs.cue:5:10
    ./errs.cue:6:6
    ./errs.cue:6:16
bar.b: conflicting values 2 and string (mismatched types int and string):
    ./errs.cue:5:21
    ./errs.cue:6:6
    ./errs.cue:6:26
x.q: conflicting values "goodbye" and "hello":
    ./errs.cue:1:4
    ./errs.cue:2:4
    ./errs.cue:3:8
    ./errs.cue:3:14
-- errs.cue --
a: "hello"
b: "goodbye"
x: {q: a, q: b}

foo: {a: int} | {b: string}
bar: foo & {a: "str", b: 2}

