#name: types
#evalPartial
-- in.cue --
i:  int
j:  int & 3
s:  string
t:  "s" & string
e:  int & string
e2: 1 & string
b:  !int
p:  +true
m:  -false
-- out/def --
i:  int
j:  3
s:  string
t:  "s"
e:  _|_ // conflicting values int and string (mismatched types int and string)
e2: _|_ // conflicting values 1 and string (mismatched types int and string)
b:  _|_ // invalid operation !int (! int)
p:  _|_ // invalid operation +true (+ bool)
m:  _|_ // invalid operation -false (- bool)
-- out/legacy-debug --
<0>{i: int, j: 3, s: string, t: "s", e: _|_((int & string):conflicting values int and string (mismatched types int and string)), e2: _|_((1 & string):conflicting values 1 and string (mismatched types int and string)), b: _|_(!int:invalid operation !int (! int)), p: _|_(+true:invalid operation +true (+ bool)), m: _|_(-false:invalid operation -false (- bool))}
-- out/compile --
--- in.cue
{
  i: int
  j: (int & 3)
  s: string
  t: ("s" & string)
  e: (int & string)
  e2: (1 & string)
  b: !int
  p: +true
  m: -false
}
-- out/eval/stats --
Leaks:  0
Freed:  10
Reused: 8
Allocs: 2
Retain: 0

Unifications: 10
Conjuncts:    14
Disjuncts:    10
-- out/eval --
Errors:
b: invalid operand int ('!' requires concrete value):
    ./in.cue:7:6
e: conflicting values int and string (mismatched types int and string):
    ./in.cue:5:5
    ./in.cue:5:11
e2: conflicting values 1 and string (mismatched types int and string):
    ./in.cue:6:5
    ./in.cue:6:9
p: invalid operation +true (+ bool):
    ./in.cue:8:5
m: invalid operation -false (- bool):
    ./in.cue:9:5

Result:
(_|_){
  // [eval]
  i: (int){ int }
  j: (int){ 3 }
  s: (string){ string }
  t: (string){ "s" }
  e: (_|_){
    // [eval] e: conflicting values int and string (mismatched types int and string):
    //     ./in.cue:5:5
    //     ./in.cue:5:11
  }
  e2: (_|_){
    // [eval] e2: conflicting values 1 and string (mismatched types int and string):
    //     ./in.cue:6:5
    //     ./in.cue:6:9
  }
  b: (_|_){
    // [eval] b: invalid operand int ('!' requires concrete value):
    //     ./in.cue:7:6
  }
  p: (_|_){
    // [eval] p: invalid operation +true (+ bool):
    //     ./in.cue:8:5
  }
  m: (_|_){
    // [eval] m: invalid operation -false (- bool):
    //     ./in.cue:9:5
  }
}
