# DO NOT EDIT; generated by go run testdata/gen.go
#
#name: index
#evalPartial
-- in.cue --
a: [2][0]
b: {foo:       "bar"}["foo"]
c: (*l | {"3": 3})["3"]
d: (*[] | [1])[0]
l: []
e1: [2][""]
e2: 2[2]
e3: [][true]
e4: [1, 2, 3][3]
e5: [1, 2, 3][-1]
e6: (*[] | {})[1]
def: {
	a:  1
	#b: 3
}
e7: def["b"]
-- out/def --
a: 2
b: "bar"
c: _|_ // invalid list index "3" (type string)
l: []
d:  _|_ // index 0 out of bounds
e1: _|_ // invalid list index "" (type string)
e2: _|_ // invalid operation: 2[2] (type int does not support indexing)
e3: _|_ // invalid list index true (type bool)
e4: _|_ // index 3 out of bounds
e5: _|_ // invalid list index -1 (index must be non-negative)
e6: _|_ // index 1 out of bounds
def: {
	a:  1
	#b: 3
}
e7: def["b"]
-- out/legacy-debug --
<0>{a: 2, b: "bar", c: _|_("3":invalid list index "3" (type string)), l: [], d: _|_([]:index 0 out of bounds), e1: _|_("":invalid list index "" (type string)), e2: _|_(2:invalid operation: 2[2] (type int does not support indexing)), e3: _|_(true:invalid list index true (type bool)), e4: _|_([1,2,3]:index 3 out of bounds), e5: _|_(-1:invalid list index -1 (index must be non-negative)), e6: _|_([]:index 1 out of bounds), def: <1>{a: 1, #b: 3}, e7: <2>.def["b"]}
-- out/compile --
--- in.cue
{
  a: [
    2,
  ][0]
  b: {
    foo: "bar"
  }["foo"]
  c: (*〈0;l〉|{
    "3": 3
  })["3"]
  d: (*[]|[
    1,
  ])[0]
  l: []
  e1: [
    2,
  ][""]
  e2: 2[2]
  e3: [][true]
  e4: [
    1,
    2,
    3,
  ][3]
  e5: [
    1,
    2,
    3,
  ][-1]
  e6: (*[]|{})[1]
  def: {
    a: 1
    #b: 3
  }
  e7: 〈0;def〉["b"]
}
-- out/eval --
Errors:
c: invalid list index "3" (type string):
    ./in.cue:3:20
d: undefined field 0:
    ./in.cue:4:16
e1: invalid list index _ (type string):
    ./in.cue:6:9
e2: invalid operand 2 (found int, want list or struct):
    ./in.cue:7:5
e3: invalid label type bool:
    ./in.cue:8:5
e4: undefined field 3:
    ./in.cue:9:15
e5: invalid negative index -1:
    ./in.cue:10:5
e6: invalid list index 1 (out of bounds):
    ./in.cue:11:16

Result:
(_|_){
  // [eval]
  a: (int){ 2 }
  b: (string){ "bar" }
  c: (_|_){
    // [eval] c: invalid list index "3" (type string):
    //     ./in.cue:3:20
  }
  d: (_|_){
    // [eval] d: undefined field 0:
    //     ./in.cue:4:16
  }
  l: (#list){
  }
  e1: (_|_){
    // [eval] e1: invalid list index _ (type string):
    //     ./in.cue:6:9
  }
  e2: (_|_){
    // [eval] e2: invalid operand 2 (found int, want list or struct):
    //     ./in.cue:7:5
  }
  e3: (_|_){
    // [eval] e3: invalid label type bool:
    //     ./in.cue:8:5
  }
  e4: (_|_){
    // [eval] e4: undefined field 3:
    //     ./in.cue:9:15
  }
  e5: (_|_){
    // [eval] e5: invalid negative index -1:
    //     ./in.cue:10:5
  }
  e6: (_|_){
    // [eval] e6: invalid list index 1 (out of bounds):
    //     ./in.cue:11:16
  }
  def: (struct){
    a: (int){ 1 }
    #b: (int){ 3 }
  }
  e7: (_|_){
    // [incomplete] e7: undefined field b:
    //     ./in.cue:16:9
  }
}
