-- in.cue --
o1: {a: 1} & {b: 2}          @test(eq, {a: 1, b: 2})
o2: {a: 1, b: 2} & {b: 2}    @test(eq, {a: 1, b: 2})
o3: {a: 1} & {a: 1, b: 2}    @test(eq, {a: 1, b: 2})
o4: {a: 1} & {b: 2}
o4: {a: 1, b: 2} & {b: 2}
o4: {a: 1} & {a: 1, b: 2}    @test(eq, {a: 1, b: 2})

e: 1      @test(err, code=eval, pos=[0:4, 1:4], contains="conflicting values")
e: {a: 3}
-- out/errors.txt --
[eval] e: conflicting values 1 and {a:3} (mismatched types int and struct):
    ./in.cue:8:4
    ./in.cue:9:4
-- out/eval/stats --
Leaks:  0
Freed:  15
Reused: 12
Allocs: 3
Retain: 0

Unifications: 15
Conjuncts:    32
Disjuncts:    15
