# DO NOT EDIT; generated by go run testdata/gen.go
#
#name: list comprehension
#evalFull
-- in.cue --
a: [ for k, v in b if k < "d" if v > b.a {k}]
b: {
	a: 1
	b: 2
	c: 3
	d: 4
}
c: [ for _, x in b for _, y in b if x < y {x}]
d: [ for x, _ in a {x}]
-- out/def --
a: ["b", "c"]
b: {
	a: 1
	b: 2
	c: 3
	d: 4
}
c: [1, 1, 1, 2, 2, 3]
d: [0, 1]
-- out/export --
a: ["b", "c"]
b: {
	a: 1
	b: 2
	c: 3
	d: 4
}
c: [1, 1, 1, 2, 2, 3]
d: [0, 1]
-- out/yaml --
a:
- b
- c
b:
  a: 1
  b: 2
  c: 3
  d: 4
c:
- 1
- 1
- 1
- 2
- 2
- 3
d:
- 0
- 1
-- out/json --
{"a":["b","c"],"b":{"a":1,"b":2,"c":3,"d":4},"c":[1,1,1,2,2,3],"d":[0,1]}
-- out/legacy-debug --
<0>{a: ["b","c"], b: <1>{a: 1, b: 2, c: 3, d: 4}, c: [1,1,1,2,2,3], d: [0,1]}
-- out/compile --
--- in.cue
{
  a: [
    for k, v in 〈0;b〉 if (〈0;k〉 < "d") if (〈0;v〉 > 〈1;b〉.a) {
      〈1;k〉
    },
  ]
  b: {
    a: 1
    b: 2
    c: 3
    d: 4
  }
  c: [
    for _, x in 〈0;b〉 for _, y in 〈1;b〉 if (〈1;x〉 < 〈0;y〉) {
      〈2;x〉
    },
  ]
  d: [
    for x, _ in 〈0;a〉 {
      〈1;x〉
    },
  ]
}
-- out/eval --
(struct){
  a: (#list){
    0: (string){ "b" }
    1: (string){ "c" }
  }
  b: (struct){
    a: (int){ 1 }
    b: (int){ 2 }
    c: (int){ 3 }
    d: (int){ 4 }
  }
  c: (#list){
    0: (int){ 1 }
    1: (int){ 1 }
    2: (int){ 1 }
    3: (int){ 2 }
    4: (int){ 2 }
    5: (int){ 3 }
  }
  d: (#list){
    0: (int){ 0 }
    1: (int){ 1 }
  }
}
