# DO NOT EDIT; generated by go run testdata/gen.go
#
#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 --
(_|_){
  // [eval]
  i: (int){ int }
  j: (int){ 3 }
  s: (string){ string }
  t: (string){ "s" }
  e: (_|_){
    // [eval] invalid value *adt.BasicType (mismatched types string and int)
  }
  e2: (_|_){
    // [eval] invalid value *adt.BasicType (mismatched types string and int)
  }
  b: (_|_){
    // [eval] value can never become concrete:
    //     ./in.cue:7:5
  }
  p: (_|_){
    // [eval] invalid operation +*adt.UnaryExpr (+ bool):
    //     ./in.cue:8:5
  }
  m: (_|_){
    // [eval] invalid operation -*adt.UnaryExpr (- bool):
    //     ./in.cue:9:5
  }
}
