# DO NOT EDIT; generated by go run testdata/gen.go
#
#name: lists
#evalPartial
-- in.cue --
list: [1, 2, 3]
index: [1, 2, 3][1]
unify: [1, 2, 3] & [_, 2, 3]
e:     [] & 4
e2:    [3]["d"]
e3:    [3][-1]
e4:    [1, 2, ...>=4 & <=5] & [1, 2, 4, 8]
e5:    [1, 2, 4, 8] & [1, 2, ...>=4 & <=5]
-- out/def --
list: [1, 2, 3]
index: 2
unify: [1, 2, 3]
e:  _|_ // conflicting values [] and 4 (mismatched types list and int)
e2: _|_ // invalid list index "d" (type string)
e3: _|_ // invalid list index -1 (index must be non-negative)
e4: [1, 2, 4, _|_, // invalid value 8 (out of bound <=5)
]
e5: [1, 2, 4, _|_, // invalid value 8 (out of bound <=5)
]
-- out/legacy-debug --
<0>{list: [1,2,3], index: 2, unify: [1,2,3], e: _|_(([] & 4):conflicting values [] and 4 (mismatched types list and int)), e2: _|_("d":invalid list index "d" (type string)), e3: _|_(-1:invalid list index -1 (index must be non-negative)), e4: [1,2,4,_|_((<=5 & 8):invalid value 8 (out of bound <=5))], e5: [1,2,4,_|_((<=5 & 8):invalid value 8 (out of bound <=5))]}
-- out/compile --
--- in.cue
{
  list: [
    1,
    2,
    3,
  ]
  index: [
    1,
    2,
    3,
  ][1]
  unify: ([
    1,
    2,
    3,
  ] & [
    _,
    2,
    3,
  ])
  e: ([] & 4)
  e2: [
    3,
  ]["d"]
  e3: [
    3,
  ][-1]
  e4: ([
    1,
    2,
    ...(>=4 & <=5),
  ] & [
    1,
    2,
    4,
    8,
  ])
  e5: ([
    1,
    2,
    4,
    8,
  ] & [
    1,
    2,
    ...(>=4 & <=5),
  ])
}
-- out/eval --
Errors:
e: conflicting types list and int
e2: invalid list index d (type string):
    ./in.cue:5:12
e3: invalid negative index -1:
    ./in.cue:6:8
e4.3: invalid value 8 (out of bound <=5):
    ./in.cue:7:24
e5.3: invalid value 8 (out of bound <=5):
    ./in.cue:8:39

Result:
(_|_){
  // [eval]
  list: (#list){
    0: (int){ 1 }
    1: (int){ 2 }
    2: (int){ 3 }
  }
  index: (int){ 2 }
  unify: (#list){
    0: (int){ 1 }
    1: (int){ 2 }
    2: (int){ 3 }
  }
  e: (_|_){
    // [eval] e: conflicting types list and int
  }
  e2: (_|_){
    // [eval] e2: invalid list index d (type string):
    //     ./in.cue:5:12
  }
  e3: (_|_){
    // [eval] e3: invalid negative index -1:
    //     ./in.cue:6:8
  }
  e4: (_|_){
    // [eval]
    0: (int){ 1 }
    1: (int){ 2 }
    2: (int){ 4 }
    3: (_|_){
      // [eval] e4.3: invalid value 8 (out of bound <=5):
      //     ./in.cue:7:24
    }
  }
  e5: (_|_){
    // [eval]
    0: (int){ 1 }
    1: (int){ 2 }
    2: (int){ 4 }
    3: (_|_){
      // [eval] e5.3: invalid value 8 (out of bound <=5):
      //     ./in.cue:8:39
    }
  }
}
