# DO NOT EDIT; generated by go run testdata/gen.go
#
#name: list types
#evalPartial
-- in.cue --
l0: 3 * [int]
l0: [1, 2, 3]
l2: [...{a: int}]
l2: [{a: 1}, {a: 2, b: 3}]

// TODO: work out a decent way to specify length ranges of lists.
// l3: <=10*[int]
// l3: [1, 2, 3, ...]

s1: (6 * [int])[2:3]
s2: [0, 2, 3][1:2]

i1: (6 * [int])[2]
i2: [0, 2, 3][2]

t0: [...{a: 8}]
t0: [{}]
t1: [...]
t1: [...int]

e0: 2 * [{}]
e0: [{}]
e1: [...int]
e1: [...float]
-- out/def --
l0: [1, 2, 3]
l2: [{
	a: 1
}, {
	a: 2
	b: 3
}]
s1: [int]
s2: [2]
i1: [int, int, int, int, int, int][2]
i2: 3
t0: [{
	a: 8
}]
t1: [...int]
e0: _|_ // conflicting list lengths: conflicting values 2 and 1
e1: [..._|_ // conflicting values int and float (mismatched types int and float),
]
-- out/legacy-debug --
<0>{l0: [1,2,3], l2: [<1>{a: 1},<2>{a: 2, b: 3}], s1: [int], s2: [2], i1: int, i2: 3, t0: [<3>{a: 8}], t1: [, ...int], e0: _|_(([<4>{},<4>{}] & [<5>{}]):conflicting list lengths: conflicting values 2 and 1), e1: [, ..._|_((int & float):conflicting values int and float (mismatched types int and float))]}
-- out/compile --
--- in.cue
{
  l0: (3 * [
    int,
  ])
  l0: [
    1,
    2,
    3,
  ]
  l2: [
    ...{
      a: int
    },
  ]
  l2: [
    {
      a: 1
    },
    {
      a: 2
      b: 3
    },
  ]
  s1: (6 * [
    int,
  ])[2:3]
  s2: [
    0,
    2,
    3,
  ][1:2]
  i1: (6 * [
    int,
  ])[2]
  i2: [
    0,
    2,
    3,
  ][2]
  t0: [
    ...{
      a: 8
    },
  ]
  t0: [
    {},
  ]
  t1: [
    ...,
  ]
  t1: [
    ...int,
  ]
  e0: (2 * [
    {},
  ])
  e0: [
    {},
  ]
  e1: [
    ...int,
  ]
  e1: [
    ...float,
  ]
}
-- out/eval --
Errors:
e0: incompatible list lengths (1 and 2)

Result:
(_|_){
  // [eval]
  l0: (#list){
    0: (int){ 1 }
    1: (int){ 2 }
    2: (int){ 3 }
  }
  l2: (#list){
    0: (struct){
      a: (int){ 1 }
    }
    1: (struct){
      a: (int){ 2 }
      b: (int){ 3 }
    }
  }
  s1: (#list){
    0: (int){ int }
  }
  s2: (#list){
    0: (int){ 2 }
  }
  i1: (int){ int }
  i2: (int){ 3 }
  t0: (#list){
    0: (struct){
      a: (int){ 8 }
    }
  }
  t1: (list){
  }
  e0: (_|_){
    // [eval] e0: incompatible list lengths (1 and 2)
    0: (struct){
    }
    1: (struct){
    }
  }
  e1: (list){
  }
}
