github.com/joomcode/cue@v0.4.4-0.20221111115225-539fe3512047/cue/testdata/cycle/issue494.txtar (about) 1 -- in.cue -- 2 _Q: [{pos: 0}, {pos: 1}] 3 4 a: [rn=string]: _Q[0:len(a[rn])] 5 a: ben: [{}] 6 7 b: [rn=string]: _Q[0:1] 8 b: ben: [{}] 9 10 c: [rn=string]: [...{l: len(a[rn])}] 11 c: ben: [{}] 12 13 #d: [rn=string]: [...{pos: uint}] & _Q[0:len(#d[rn])] 14 #d: ben: [{}] 15 16 d: #d 17 18 e: [rn=string]: _Q[0 : len(a[rn])+1] 19 e: ben: [{}, ...] 20 21 f: [rn=string]: _Q[0 : len(a[rn])+1] 22 f: ben: [{}] 23 24 g: [rn=string]: _Q[0:len(a[rn])] 25 g: ben: [{}, {}] 26 -- out/eval -- 27 Errors: 28 f.ben: incompatible list lengths (1 and 2) 29 g.ben: incompatible list lengths (1 and 2) 30 31 Result: 32 (_|_){ 33 // [eval] 34 _Q: (#list){ 35 0: (struct){ 36 pos: (int){ 0 } 37 } 38 1: (struct){ 39 pos: (int){ 1 } 40 } 41 } 42 a: (struct){ 43 ben: (#list){ 44 0: (struct){ 45 pos: (int){ 0 } 46 } 47 } 48 } 49 b: (struct){ 50 ben: (#list){ 51 0: (struct){ 52 pos: (int){ 0 } 53 } 54 } 55 } 56 c: (struct){ 57 ben: (#list){ 58 0: (struct){ 59 l: (int){ 1 } 60 } 61 } 62 } 63 #d: (#struct){ 64 ben: (#list){ 65 0: (#struct){ 66 pos: (int){ 0 } 67 } 68 } 69 } 70 d: (#struct){ 71 ben: (#list){ 72 0: (#struct){ 73 pos: (int){ 0 } 74 } 75 } 76 } 77 e: (struct){ 78 ben: (#list){ 79 0: (struct){ 80 pos: (int){ 0 } 81 } 82 1: (struct){ 83 pos: (int){ 1 } 84 } 85 } 86 } 87 f: (_|_){ 88 // [eval] 89 ben: (_|_){ 90 // [eval] f.ben: incompatible list lengths (1 and 2) 91 0: (struct){ 92 pos: (int){ 0 } 93 } 94 1: (struct){ 95 pos: (int){ 1 } 96 } 97 } 98 } 99 g: (_|_){ 100 // [eval] 101 ben: (_|_){ 102 // [eval] g.ben: incompatible list lengths (1 and 2) 103 0: (struct){ 104 pos: (int){ 0 } 105 } 106 1: (struct){ 107 } 108 } 109 } 110 } 111 -- out/compile -- 112 --- in.cue 113 { 114 _Q: [ 115 { 116 pos: 0 117 }, 118 { 119 pos: 1 120 }, 121 ] 122 a: { 123 [string]: 〈1;_Q〉[0:len(〈1;a〉[〈0;-〉])] 124 } 125 a: { 126 ben: [ 127 {}, 128 ] 129 } 130 b: { 131 [string]: 〈1;_Q〉[0:1] 132 } 133 b: { 134 ben: [ 135 {}, 136 ] 137 } 138 c: { 139 [string]: [ 140 ...{ 141 l: len(〈3;a〉[〈2;-〉]) 142 }, 143 ] 144 } 145 c: { 146 ben: [ 147 {}, 148 ] 149 } 150 #d: { 151 [string]: ([ 152 ...{ 153 pos: &(int, >=0) 154 }, 155 ] & 〈1;_Q〉[0:len(〈1;#d〉[〈0;-〉])]) 156 } 157 #d: { 158 ben: [ 159 {}, 160 ] 161 } 162 d: 〈0;#d〉 163 e: { 164 [string]: 〈1;_Q〉[0:(len(〈1;a〉[〈0;-〉]) + 1)] 165 } 166 e: { 167 ben: [ 168 {}, 169 ..., 170 ] 171 } 172 f: { 173 [string]: 〈1;_Q〉[0:(len(〈1;a〉[〈0;-〉]) + 1)] 174 } 175 f: { 176 ben: [ 177 {}, 178 ] 179 } 180 g: { 181 [string]: 〈1;_Q〉[0:len(〈1;a〉[〈0;-〉])] 182 } 183 g: { 184 ben: [ 185 {}, 186 {}, 187 ] 188 } 189 }