cuelang.org/go@v0.10.1/tools/flow/testdata/dep.txtar (about) 1 // complex dependencies 2 3 -- in.cue -- 4 // Each task depends on the previous one in a different manner. 5 6 root: [string]: $id: "valToOut" 7 8 indirectValue: root.taskRootReference.x 9 10 // This is not just a reference, but a copy of a new task. 11 indirectTaskRoot: root.indirectTaskValueReference 12 13 root: { 14 a: { 15 b: 3 16 } 17 18 concreteValueInGeneratedSubfield: { 19 x: { 20 // reference in value of comprehension. 21 // Even though the referenced value is concrete, we still consider 22 // this to be a dependency. 23 for x in [1] {foo: a.b} 24 } 25 index: int 26 } 27 28 indexReference: { 29 // This inline struct currently causes a memory leak. This is fine 30 // for now. 31 // TODO(leak): fix this. 32 x: [0, 1][concreteValueInGeneratedSubfield.index] 33 } 34 35 taskRootReference: { 36 $after: indexReference 37 x: 3 38 } 39 40 indirectTaskValueReference: { 41 x: indirectValue 42 } 43 44 indirectTaskRootReference: { 45 x: indirectTaskRoot 46 47 incomplete: _ 48 } 49 50 incompleteComprehensionSource: { 51 x: {for x in indirectTaskRootReference.incomplete {}} 52 } 53 54 incompleteList: { 55 x: [for x in [1] {incompleteComprehensionSource.x}] 56 } 57 58 incompleteGeneratedStruct: { 59 x: {for x in [1] {foo: incompleteList.x}} 60 } 61 } 62 -- out/run/errors -- 63 -- out/run/t0 -- 64 graph TD 65 t0("root.a [Ready]") 66 t1("root.concreteValueInGeneratedSubfield [Waiting]") 67 t1-->t0 68 t2("root.indexReference [Waiting]") 69 t2-->t1 70 t3("root.taskRootReference [Waiting]") 71 t3-->t2 72 t4("root.indirectTaskValueReference [Waiting]") 73 t4-->t3 74 t5("root.indirectTaskRootReference [Waiting]") 75 t5-->t4 76 t6("root.incompleteComprehensionSource [Waiting]") 77 t6-->t5 78 t7("root.incompleteList [Waiting]") 79 t7-->t6 80 t8("root.incompleteGeneratedStruct [Waiting]") 81 t8-->t7 82 83 -- out/run/t1 -- 84 graph TD 85 t0("root.a [Terminated]") 86 t1("root.concreteValueInGeneratedSubfield [Ready]") 87 t1-->t0 88 t2("root.indexReference [Waiting]") 89 t2-->t1 90 t3("root.taskRootReference [Waiting]") 91 t3-->t2 92 t4("root.indirectTaskValueReference [Waiting]") 93 t4-->t3 94 t5("root.indirectTaskRootReference [Waiting]") 95 t5-->t4 96 t6("root.incompleteComprehensionSource [Waiting]") 97 t6-->t5 98 t7("root.incompleteList [Waiting]") 99 t7-->t6 100 t8("root.incompleteGeneratedStruct [Waiting]") 101 t8-->t7 102 103 -- out/run/t1/value -- 104 { 105 b: 3 106 $id: "valToOut" 107 } 108 -- out/run/t1/stats -- 109 Leaks: 0 110 Freed: 0 111 Reused: 0 112 Allocs: 0 113 Retain: 0 114 115 Unifications: 0 116 Conjuncts: 0 117 Disjuncts: 0 118 -- out/run/t2 -- 119 graph TD 120 t0("root.a [Terminated]") 121 t1("root.concreteValueInGeneratedSubfield [Terminated]") 122 t1-->t0 123 t2("root.indexReference [Ready]") 124 t2-->t1 125 t3("root.taskRootReference [Waiting]") 126 t3-->t2 127 t4("root.indirectTaskValueReference [Waiting]") 128 t4-->t3 129 t5("root.indirectTaskRootReference [Waiting]") 130 t5-->t4 131 t6("root.incompleteComprehensionSource [Waiting]") 132 t6-->t5 133 t7("root.incompleteList [Waiting]") 134 t7-->t6 135 t8("root.incompleteGeneratedStruct [Waiting]") 136 t8-->t7 137 138 -- out/run/t2/value -- 139 { 140 x: { 141 foo: 3 142 } 143 $id: "valToOut" 144 index: int 145 } 146 -- out/run/t2/stats -- 147 Leaks: 0 148 Freed: 0 149 Reused: 0 150 Allocs: 0 151 Retain: 0 152 153 Unifications: 0 154 Conjuncts: 0 155 Disjuncts: 0 156 -- out/run/t3 -- 157 graph TD 158 t0("root.a [Terminated]") 159 t1("root.concreteValueInGeneratedSubfield [Terminated]") 160 t1-->t0 161 t2("root.indexReference [Terminated]") 162 t2-->t1 163 t3("root.taskRootReference [Ready]") 164 t3-->t2 165 t4("root.indirectTaskValueReference [Waiting]") 166 t4-->t3 167 t5("root.indirectTaskRootReference [Waiting]") 168 t5-->t4 169 t6("root.incompleteComprehensionSource [Waiting]") 170 t6-->t5 171 t7("root.incompleteList [Waiting]") 172 t7-->t6 173 t8("root.incompleteGeneratedStruct [Waiting]") 174 t8-->t7 175 176 -- out/run/t3/value -- 177 { 178 x: [0, 1][INDEX] 179 $id: "valToOut" 180 181 //cue:path: root.concreteValueInGeneratedSubfield.index 182 let INDEX = int 183 } 184 -- out/run/t3/stats -- 185 Leaks: 1 186 Freed: 0 187 Reused: 0 188 Allocs: 1 189 Retain: 1 190 191 Unifications: 1 192 Conjuncts: 1 193 Disjuncts: 1 194 -- out/run/t4 -- 195 graph TD 196 t0("root.a [Terminated]") 197 t1("root.concreteValueInGeneratedSubfield [Terminated]") 198 t1-->t0 199 t2("root.indexReference [Terminated]") 200 t2-->t1 201 t3("root.taskRootReference [Terminated]") 202 t3-->t2 203 t4("root.indirectTaskValueReference [Ready]") 204 t4-->t3 205 t5("root.indirectTaskRootReference [Waiting]") 206 t5-->t4 207 t6("root.incompleteComprehensionSource [Waiting]") 208 t6-->t5 209 t7("root.incompleteList [Waiting]") 210 t7-->t6 211 t8("root.incompleteGeneratedStruct [Waiting]") 212 t8-->t7 213 214 -- out/run/t4/value -- 215 { 216 $after: { 217 x: [0, 1][INDEX] 218 $id: "valToOut" 219 } 220 $id: "valToOut" 221 x: 3 222 223 //cue:path: root.concreteValueInGeneratedSubfield.index 224 let INDEX = int 225 } 226 -- out/run/t4/stats -- 227 Leaks: 0 228 Freed: 0 229 Reused: 0 230 Allocs: 0 231 Retain: 0 232 233 Unifications: 0 234 Conjuncts: 0 235 Disjuncts: 0 236 -- out/run/t5 -- 237 graph TD 238 t0("root.a [Terminated]") 239 t1("root.concreteValueInGeneratedSubfield [Terminated]") 240 t1-->t0 241 t2("root.indexReference [Terminated]") 242 t2-->t1 243 t3("root.taskRootReference [Terminated]") 244 t3-->t2 245 t4("root.indirectTaskValueReference [Terminated]") 246 t4-->t3 247 t5("root.indirectTaskRootReference [Ready]") 248 t5-->t4 249 t6("root.incompleteComprehensionSource [Waiting]") 250 t6-->t5 251 t7("root.incompleteList [Waiting]") 252 t7-->t6 253 t8("root.incompleteGeneratedStruct [Waiting]") 254 t8-->t7 255 256 -- out/run/t5/value -- 257 { 258 x: 3 259 $id: "valToOut" 260 } 261 -- out/run/t5/stats -- 262 Leaks: 0 263 Freed: 0 264 Reused: 0 265 Allocs: 0 266 Retain: 0 267 268 Unifications: 0 269 Conjuncts: 0 270 Disjuncts: 0 271 -- out/run/t6 -- 272 graph TD 273 t0("root.a [Terminated]") 274 t1("root.concreteValueInGeneratedSubfield [Terminated]") 275 t1-->t0 276 t2("root.indexReference [Terminated]") 277 t2-->t1 278 t3("root.taskRootReference [Terminated]") 279 t3-->t2 280 t4("root.indirectTaskValueReference [Terminated]") 281 t4-->t3 282 t5("root.indirectTaskRootReference [Terminated]") 283 t5-->t4 284 t6("root.incompleteComprehensionSource [Ready]") 285 t6-->t5 286 t7("root.incompleteList [Waiting]") 287 t7-->t6 288 t8("root.incompleteGeneratedStruct [Waiting]") 289 t8-->t7 290 291 -- out/run/t6/value -- 292 { 293 x: { 294 x: 3 295 $id: "valToOut" 296 } 297 $id: "valToOut" 298 incomplete: _ 299 } 300 -- out/run/t6/stats -- 301 Leaks: 0 302 Freed: 0 303 Reused: 0 304 Allocs: 0 305 Retain: 0 306 307 Unifications: 0 308 Conjuncts: 0 309 Disjuncts: 0 310 -- out/run/t7 -- 311 graph TD 312 t0("root.a [Terminated]") 313 t1("root.concreteValueInGeneratedSubfield [Terminated]") 314 t1-->t0 315 t2("root.indexReference [Terminated]") 316 t2-->t1 317 t3("root.taskRootReference [Terminated]") 318 t3-->t2 319 t4("root.indirectTaskValueReference [Terminated]") 320 t4-->t3 321 t5("root.indirectTaskRootReference [Terminated]") 322 t5-->t4 323 t6("root.incompleteComprehensionSource [Terminated]") 324 t6-->t5 325 t7("root.incompleteList [Ready]") 326 t7-->t6 327 t8("root.incompleteGeneratedStruct [Waiting]") 328 t8-->t7 329 330 -- out/run/t7/value -- 331 { 332 x: { 333 for x in INCOMPLETE {} 334 } 335 $id: "valToOut" 336 337 //cue:path: root.indirectTaskRootReference.incomplete 338 let INCOMPLETE = _ 339 } 340 -- out/run/t7/stats -- 341 Leaks: 0 342 Freed: 0 343 Reused: 0 344 Allocs: 0 345 Retain: 0 346 347 Unifications: 0 348 Conjuncts: 0 349 Disjuncts: 0 350 -- out/run/t8 -- 351 graph TD 352 t0("root.a [Terminated]") 353 t1("root.concreteValueInGeneratedSubfield [Terminated]") 354 t1-->t0 355 t2("root.indexReference [Terminated]") 356 t2-->t1 357 t3("root.taskRootReference [Terminated]") 358 t3-->t2 359 t4("root.indirectTaskValueReference [Terminated]") 360 t4-->t3 361 t5("root.indirectTaskRootReference [Terminated]") 362 t5-->t4 363 t6("root.incompleteComprehensionSource [Terminated]") 364 t6-->t5 365 t7("root.incompleteList [Terminated]") 366 t7-->t6 367 t8("root.incompleteGeneratedStruct [Ready]") 368 t8-->t7 369 370 -- out/run/t8/value -- 371 { 372 x: [X] 373 $id: "valToOut" 374 375 //cue:path: root.incompleteComprehensionSource.x 376 let X = { 377 for x in INCOMPLETE {} 378 } 379 380 //cue:path: root.indirectTaskRootReference.incomplete 381 let INCOMPLETE = _ 382 } 383 -- out/run/t8/stats -- 384 Leaks: 0 385 Freed: 0 386 Reused: 0 387 Allocs: 0 388 Retain: 0 389 390 Unifications: 0 391 Conjuncts: 0 392 Disjuncts: 0 393 -- out/run/t9 -- 394 graph TD 395 t0("root.a [Terminated]") 396 t1("root.concreteValueInGeneratedSubfield [Terminated]") 397 t1-->t0 398 t2("root.indexReference [Terminated]") 399 t2-->t1 400 t3("root.taskRootReference [Terminated]") 401 t3-->t2 402 t4("root.indirectTaskValueReference [Terminated]") 403 t4-->t3 404 t5("root.indirectTaskRootReference [Terminated]") 405 t5-->t4 406 t6("root.incompleteComprehensionSource [Terminated]") 407 t6-->t5 408 t7("root.incompleteList [Terminated]") 409 t7-->t6 410 t8("root.incompleteGeneratedStruct [Terminated]") 411 t8-->t7 412 413 -- out/run/t9/value -- 414 { 415 x: { 416 foo: [X_1] 417 } 418 $id: "valToOut" 419 420 //cue:path: root.incompleteComprehensionSource.x 421 let X_1 = { 422 for x in INCOMPLETE {} 423 } 424 425 //cue:path: root.indirectTaskRootReference.incomplete 426 let INCOMPLETE = _ 427 } 428 -- out/run/t9/stats -- 429 Leaks: 0 430 Freed: 0 431 Reused: 0 432 Allocs: 0 433 Retain: 0 434 435 Unifications: 0 436 Conjuncts: 0 437 Disjuncts: 0 438 -- out/run/stats/totals -- 439 Leaks: 1 440 Freed: 0 441 Reused: 0 442 Allocs: 1 443 Retain: 1 444 445 Unifications: 1 446 Conjuncts: 1 447 Disjuncts: 1