github.com/joomcode/cue@v0.4.4-0.20221111115225-539fe3512047/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 x: [0, 1][concreteValueInGeneratedSubfield.index] 30 } 31 32 taskRootReference: { 33 $after: indexReference 34 x: 3 35 } 36 37 indirectTaskValueReference: { 38 x: indirectValue 39 } 40 41 indirectTaskRootReference: { 42 x: indirectTaskRoot 43 44 incomplete: _ 45 } 46 47 incompleteComprehensionSource: { 48 x: {for x in indirectTaskRootReference.incomplete {}} 49 } 50 51 incompleteList: { 52 x: [ for x in [1] {incompleteComprehensionSource.x}] 53 } 54 55 incompleteGeneratedStruct: { 56 x: {for x in [1] {foo: incompleteList.x}} 57 } 58 } 59 -- out/run/errors -- 60 -- out/run/t0 -- 61 graph TD 62 t0("root.a [Ready]") 63 t1("root.concreteValueInGeneratedSubfield [Waiting]") 64 t1-->t0 65 t2("root.indexReference [Waiting]") 66 t2-->t1 67 t3("root.taskRootReference [Waiting]") 68 t3-->t2 69 t4("root.indirectTaskValueReference [Waiting]") 70 t4-->t3 71 t5("root.indirectTaskRootReference [Waiting]") 72 t5-->t4 73 t6("root.incompleteComprehensionSource [Waiting]") 74 t6-->t5 75 t7("root.incompleteList [Waiting]") 76 t7-->t6 77 t8("root.incompleteGeneratedStruct [Waiting]") 78 t8-->t7 79 80 -- out/run/t1 -- 81 graph TD 82 t0("root.a [Terminated]") 83 t1("root.concreteValueInGeneratedSubfield [Ready]") 84 t1-->t0 85 t2("root.indexReference [Waiting]") 86 t2-->t1 87 t3("root.taskRootReference [Waiting]") 88 t3-->t2 89 t4("root.indirectTaskValueReference [Waiting]") 90 t4-->t3 91 t5("root.indirectTaskRootReference [Waiting]") 92 t5-->t4 93 t6("root.incompleteComprehensionSource [Waiting]") 94 t6-->t5 95 t7("root.incompleteList [Waiting]") 96 t7-->t6 97 t8("root.incompleteGeneratedStruct [Waiting]") 98 t8-->t7 99 100 -- out/run/t1/value -- 101 { 102 b: 3 103 $id: "valToOut" 104 } 105 -- out/run/t2 -- 106 graph TD 107 t0("root.a [Terminated]") 108 t1("root.concreteValueInGeneratedSubfield [Terminated]") 109 t1-->t0 110 t2("root.indexReference [Ready]") 111 t2-->t1 112 t3("root.taskRootReference [Waiting]") 113 t3-->t2 114 t4("root.indirectTaskValueReference [Waiting]") 115 t4-->t3 116 t5("root.indirectTaskRootReference [Waiting]") 117 t5-->t4 118 t6("root.incompleteComprehensionSource [Waiting]") 119 t6-->t5 120 t7("root.incompleteList [Waiting]") 121 t7-->t6 122 t8("root.incompleteGeneratedStruct [Waiting]") 123 t8-->t7 124 125 -- out/run/t2/value -- 126 { 127 x: { 128 foo: 3 129 } 130 $id: "valToOut" 131 index: int 132 } 133 -- out/run/t3 -- 134 graph TD 135 t0("root.a [Terminated]") 136 t1("root.concreteValueInGeneratedSubfield [Terminated]") 137 t1-->t0 138 t2("root.indexReference [Terminated]") 139 t2-->t1 140 t3("root.taskRootReference [Ready]") 141 t3-->t2 142 t4("root.indirectTaskValueReference [Waiting]") 143 t4-->t3 144 t5("root.indirectTaskRootReference [Waiting]") 145 t5-->t4 146 t6("root.incompleteComprehensionSource [Waiting]") 147 t6-->t5 148 t7("root.incompleteList [Waiting]") 149 t7-->t6 150 t8("root.incompleteGeneratedStruct [Waiting]") 151 t8-->t7 152 153 -- out/run/t3/value -- 154 { 155 x: [0, 1][concreteValueInGeneratedSubfield.index] 156 $id: "valToOut" 157 } 158 -- out/run/t4 -- 159 graph TD 160 t0("root.a [Terminated]") 161 t1("root.concreteValueInGeneratedSubfield [Terminated]") 162 t1-->t0 163 t2("root.indexReference [Terminated]") 164 t2-->t1 165 t3("root.taskRootReference [Terminated]") 166 t3-->t2 167 t4("root.indirectTaskValueReference [Ready]") 168 t4-->t3 169 t5("root.indirectTaskRootReference [Waiting]") 170 t5-->t4 171 t6("root.incompleteComprehensionSource [Waiting]") 172 t6-->t5 173 t7("root.incompleteList [Waiting]") 174 t7-->t6 175 t8("root.incompleteGeneratedStruct [Waiting]") 176 t8-->t7 177 178 -- out/run/t4/value -- 179 { 180 $after: { 181 x: [0, 1][concreteValueInGeneratedSubfield.index] 182 $id: "valToOut" 183 } 184 $id: "valToOut" 185 x: 3 186 } 187 -- out/run/t5 -- 188 graph TD 189 t0("root.a [Terminated]") 190 t1("root.concreteValueInGeneratedSubfield [Terminated]") 191 t1-->t0 192 t2("root.indexReference [Terminated]") 193 t2-->t1 194 t3("root.taskRootReference [Terminated]") 195 t3-->t2 196 t4("root.indirectTaskValueReference [Terminated]") 197 t4-->t3 198 t5("root.indirectTaskRootReference [Ready]") 199 t5-->t4 200 t6("root.incompleteComprehensionSource [Waiting]") 201 t6-->t5 202 t7("root.incompleteList [Waiting]") 203 t7-->t6 204 t8("root.incompleteGeneratedStruct [Waiting]") 205 t8-->t7 206 207 -- out/run/t5/value -- 208 { 209 x: 3 210 $id: "valToOut" 211 } 212 -- out/run/t6 -- 213 graph TD 214 t0("root.a [Terminated]") 215 t1("root.concreteValueInGeneratedSubfield [Terminated]") 216 t1-->t0 217 t2("root.indexReference [Terminated]") 218 t2-->t1 219 t3("root.taskRootReference [Terminated]") 220 t3-->t2 221 t4("root.indirectTaskValueReference [Terminated]") 222 t4-->t3 223 t5("root.indirectTaskRootReference [Terminated]") 224 t5-->t4 225 t6("root.incompleteComprehensionSource [Ready]") 226 t6-->t5 227 t7("root.incompleteList [Waiting]") 228 t7-->t6 229 t8("root.incompleteGeneratedStruct [Waiting]") 230 t8-->t7 231 232 -- out/run/t6/value -- 233 { 234 x: { 235 x: 3 236 $id: "valToOut" 237 } 238 $id: "valToOut" 239 incomplete: _ 240 } 241 -- out/run/t7 -- 242 graph TD 243 t0("root.a [Terminated]") 244 t1("root.concreteValueInGeneratedSubfield [Terminated]") 245 t1-->t0 246 t2("root.indexReference [Terminated]") 247 t2-->t1 248 t3("root.taskRootReference [Terminated]") 249 t3-->t2 250 t4("root.indirectTaskValueReference [Terminated]") 251 t4-->t3 252 t5("root.indirectTaskRootReference [Terminated]") 253 t5-->t4 254 t6("root.incompleteComprehensionSource [Terminated]") 255 t6-->t5 256 t7("root.incompleteList [Ready]") 257 t7-->t6 258 t8("root.incompleteGeneratedStruct [Waiting]") 259 t8-->t7 260 261 -- out/run/t7/value -- 262 { 263 x: { 264 for x in indirectTaskRootReference.incomplete {} 265 } 266 $id: "valToOut" 267 } 268 -- out/run/t8 -- 269 graph TD 270 t0("root.a [Terminated]") 271 t1("root.concreteValueInGeneratedSubfield [Terminated]") 272 t1-->t0 273 t2("root.indexReference [Terminated]") 274 t2-->t1 275 t3("root.taskRootReference [Terminated]") 276 t3-->t2 277 t4("root.indirectTaskValueReference [Terminated]") 278 t4-->t3 279 t5("root.indirectTaskRootReference [Terminated]") 280 t5-->t4 281 t6("root.incompleteComprehensionSource [Terminated]") 282 t6-->t5 283 t7("root.incompleteList [Terminated]") 284 t7-->t6 285 t8("root.incompleteGeneratedStruct [Ready]") 286 t8-->t7 287 288 -- out/run/t8/value -- 289 { 290 x: [incompleteComprehensionSource.x] 291 $id: "valToOut" 292 } 293 -- out/run/t9 -- 294 graph TD 295 t0("root.a [Terminated]") 296 t1("root.concreteValueInGeneratedSubfield [Terminated]") 297 t1-->t0 298 t2("root.indexReference [Terminated]") 299 t2-->t1 300 t3("root.taskRootReference [Terminated]") 301 t3-->t2 302 t4("root.indirectTaskValueReference [Terminated]") 303 t4-->t3 304 t5("root.indirectTaskRootReference [Terminated]") 305 t5-->t4 306 t6("root.incompleteComprehensionSource [Terminated]") 307 t6-->t5 308 t7("root.incompleteList [Terminated]") 309 t7-->t6 310 t8("root.incompleteGeneratedStruct [Terminated]") 311 t8-->t7 312 313 -- out/run/t9/value -- 314 { 315 x: { 316 foo: [incompleteComprehensionSource.x] 317 } 318 $id: "valToOut" 319 }