# DO NOT EDIT; generated by go run testdata/gen.go
#
#name: comparison against bottom
#evalFull
-- in.cue --
a: _|_ == _|_
b: err == 1 & 2 // not a literal error, so not allowed
c: err == _|_   // allowed
d: err != _|_   // allowed
e: err != 1 & 3
// z: err == err // TODO: should infer to be true?
f: ({a:        1} & {a: 2}) == _|_
g: ({a:        1} & {b: 2}) == _|_
h: _|_ == ({a: 1} & {a: 2})
i: _|_ == ({a: 1} & {b: 2})

err: 1 & 2
-- out/def --
a:   true
b:   _|_ // conflicting values 1 and 2
err: _|_ // conflicting values 1 and 2
c:   true
d:   false
e:   _|_ // conflicting values 1 and 2
// z: err == err // TODO: should infer to be true?
f: true
g: false
h: true
i: false
-- out/legacy-debug --
<0>{a: true, b: _|_((1 & 2):conflicting values 1 and 2), err: _|_((1 & 2):conflicting values 1 and 2), c: true, d: false, e: _|_((1 & 2):conflicting values 1 and 2), f: true, g: false, h: true, i: false}
-- out/compile --
--- in.cue
{
  a: (_|_(from source) == _|_(from source))
  b: ((〈0;err〉 == 1) & 2)
  c: (〈0;err〉 == _|_(from source))
  d: (〈0;err〉 != _|_(from source))
  e: ((〈0;err〉 != 1) & 3)
  f: (({
    a: 1
  } & {
    a: 2
  }) == _|_(from source))
  g: (({
    a: 1
  } & {
    b: 2
  }) == _|_(from source))
  h: (_|_(from source) == ({
    a: 1
  } & {
    a: 2
  }))
  i: (_|_(from source) == ({
    a: 1
  } & {
    b: 2
  }))
  err: (1 & 2)
}
-- out/eval --
Errors:
err: incompatible values 2 and 1:
    ./in.cue:2:4

Result:
(_|_){
  // [eval]
  a: (bool){ true }
  b: (_|_){
    // [eval] err: incompatible values 2 and 1:
    //     ./in.cue:2:4
  }
  c: (bool){ true }
  d: (bool){ false }
  e: (_|_){
    // [eval] err: incompatible values 2 and 1:
    //     ./in.cue:2:4
  }
  f: (bool){ true }
  g: (bool){ false }
  h: (bool){ true }
  i: (bool){ false }
  err: (_|_){
    // [eval] err: incompatible values 2 and 1:
    //     ./in.cue:2:4
  }
}
