cuelang.org/go@v0.10.1/cue/testdata/comprehensions/for.txtar (about) 1 -- in.cue -- 2 b: {for k, v in a {"\(k)": v + 1}} 3 a: {b: 1, c: 2} 4 5 x: {for k, v in y {"\(k)": v}} 6 y: {} // check that empty struct after reference works. 7 8 k: {for v in e {v}} 9 e: int 10 11 comprehensionBinds: { 12 a: {for _ in [1] {a: _}} 13 b: {for _, _ in [1] {a: _}} 14 } 15 -- out/eval/stats -- 16 Leaks: 2 17 Freed: 16 18 Reused: 12 19 Allocs: 6 20 Retain: 7 21 22 Unifications: 18 23 Conjuncts: 18 24 Disjuncts: 21 25 -- out/eval -- 26 Errors: 27 k: cannot range over e (found int, want list or struct): 28 ./in.cue:7:14 29 30 Result: 31 (_|_){ 32 // [eval] 33 b: (struct){ 34 b: (int){ 2 } 35 c: (int){ 3 } 36 } 37 a: (struct){ 38 b: (int){ 1 } 39 c: (int){ 2 } 40 } 41 x: (struct){ 42 } 43 y: (struct){ 44 } 45 k: (_|_){ 46 // [eval] k: cannot range over e (found int, want list or struct): 47 // ./in.cue:7:14 48 } 49 e: (int){ int } 50 comprehensionBinds: (struct){ 51 a: (struct){ 52 a: (_){ _ } 53 } 54 b: (struct){ 55 a: (_){ _ } 56 } 57 } 58 } 59 -- out/compile -- 60 --- in.cue 61 { 62 b: { 63 for k, v in 〈1;a〉 { 64 "\(〈1;k〉)": (〈1;v〉 + 1) 65 } 66 } 67 a: { 68 b: 1 69 c: 2 70 } 71 x: { 72 for k, v in 〈1;y〉 { 73 "\(〈1;k〉)": 〈1;v〉 74 } 75 } 76 y: {} 77 k: { 78 for _, v in 〈1;e〉 { 79 〈1;v〉 80 } 81 } 82 e: int 83 comprehensionBinds: { 84 a: { 85 for _, _ in [ 86 1, 87 ] { 88 a: _ 89 } 90 } 91 b: { 92 for _, _ in [ 93 1, 94 ] { 95 a: _ 96 } 97 } 98 } 99 }