| // complex dependencies |
| |
| -- in.cue -- |
| // Each task depends on the previous one in a different manner. |
| |
| root: [string]: $id: "valToOut" |
| |
| indirectValue: root.taskRootReference.x |
| |
| // This is not just a reference, but a copy of a new task. |
| indirectTaskRoot: root.indirectTaskValueReference |
| |
| root: { |
| a: { |
| b: 3 |
| } |
| |
| concreteValueInGeneratedSubfield: { |
| x: { |
| // reference in value of comprehension. |
| // Even though the referenced value is concrete, we still consider |
| // this to be a dependency. |
| for x in [1] { foo: a.b } |
| } |
| index: int |
| } |
| |
| indexReference: { |
| x: [0, 1][concreteValueInGeneratedSubfield.index] |
| } |
| |
| taskRootReference: { |
| $after: indexReference |
| x: 3 |
| } |
| |
| indirectTaskValueReference: { |
| x: indirectValue |
| } |
| |
| indirectTaskRootReference: { |
| x: indirectTaskRoot |
| |
| incomplete: _ |
| } |
| |
| incompleteComprehensionSource: { |
| x: { for x in indirectTaskRootReference.incomplete {} } |
| } |
| |
| incompleteList: { |
| x: [ for x in [1] { incompleteComprehensionSource.x } ] |
| } |
| |
| incompleteGeneratedStruct: { |
| x: { for x in [1] { foo: incompleteList.x } } |
| } |
| } |
| -- out/run/errors -- |
| -- out/run/t0 -- |
| graph TD |
| t0("root.a [Ready]") |
| t1("root.concreteValueInGeneratedSubfield [Waiting]") |
| t1-->t0 |
| t2("root.indexReference [Waiting]") |
| t2-->t1 |
| t3("root.taskRootReference [Waiting]") |
| t3-->t2 |
| t4("root.indirectTaskValueReference [Waiting]") |
| t4-->t3 |
| t5("root.indirectTaskRootReference [Waiting]") |
| t5-->t4 |
| t6("root.incompleteComprehensionSource [Waiting]") |
| t6-->t5 |
| t7("root.incompleteList [Waiting]") |
| t7-->t6 |
| t8("root.incompleteGeneratedStruct [Waiting]") |
| t8-->t7 |
| |
| -- out/run/t1 -- |
| graph TD |
| t0("root.a [Terminated]") |
| t1("root.concreteValueInGeneratedSubfield [Ready]") |
| t1-->t0 |
| t2("root.indexReference [Waiting]") |
| t2-->t1 |
| t3("root.taskRootReference [Waiting]") |
| t3-->t2 |
| t4("root.indirectTaskValueReference [Waiting]") |
| t4-->t3 |
| t5("root.indirectTaskRootReference [Waiting]") |
| t5-->t4 |
| t6("root.incompleteComprehensionSource [Waiting]") |
| t6-->t5 |
| t7("root.incompleteList [Waiting]") |
| t7-->t6 |
| t8("root.incompleteGeneratedStruct [Waiting]") |
| t8-->t7 |
| |
| -- out/run/t1/value -- |
| { |
| b: 3 |
| $id: "valToOut" |
| } |
| -- out/run/t2 -- |
| graph TD |
| t0("root.a [Terminated]") |
| t1("root.concreteValueInGeneratedSubfield [Terminated]") |
| t1-->t0 |
| t2("root.indexReference [Ready]") |
| t2-->t1 |
| t3("root.taskRootReference [Waiting]") |
| t3-->t2 |
| t4("root.indirectTaskValueReference [Waiting]") |
| t4-->t3 |
| t5("root.indirectTaskRootReference [Waiting]") |
| t5-->t4 |
| t6("root.incompleteComprehensionSource [Waiting]") |
| t6-->t5 |
| t7("root.incompleteList [Waiting]") |
| t7-->t6 |
| t8("root.incompleteGeneratedStruct [Waiting]") |
| t8-->t7 |
| |
| -- out/run/t2/value -- |
| { |
| x: { |
| foo: 3 |
| } |
| $id: "valToOut" |
| index: int |
| } |
| -- out/run/t3 -- |
| graph TD |
| t0("root.a [Terminated]") |
| t1("root.concreteValueInGeneratedSubfield [Terminated]") |
| t1-->t0 |
| t2("root.indexReference [Terminated]") |
| t2-->t1 |
| t3("root.taskRootReference [Ready]") |
| t3-->t2 |
| t4("root.indirectTaskValueReference [Waiting]") |
| t4-->t3 |
| t5("root.indirectTaskRootReference [Waiting]") |
| t5-->t4 |
| t6("root.incompleteComprehensionSource [Waiting]") |
| t6-->t5 |
| t7("root.incompleteList [Waiting]") |
| t7-->t6 |
| t8("root.incompleteGeneratedStruct [Waiting]") |
| t8-->t7 |
| |
| -- out/run/t3/value -- |
| { |
| x: [0, 1][concreteValueInGeneratedSubfield.index] |
| $id: "valToOut" |
| } |
| -- out/run/t4 -- |
| graph TD |
| t0("root.a [Terminated]") |
| t1("root.concreteValueInGeneratedSubfield [Terminated]") |
| t1-->t0 |
| t2("root.indexReference [Terminated]") |
| t2-->t1 |
| t3("root.taskRootReference [Terminated]") |
| t3-->t2 |
| t4("root.indirectTaskValueReference [Ready]") |
| t4-->t3 |
| t5("root.indirectTaskRootReference [Waiting]") |
| t5-->t4 |
| t6("root.incompleteComprehensionSource [Waiting]") |
| t6-->t5 |
| t7("root.incompleteList [Waiting]") |
| t7-->t6 |
| t8("root.incompleteGeneratedStruct [Waiting]") |
| t8-->t7 |
| |
| -- out/run/t4/value -- |
| { |
| $after: { |
| x: [0, 1][concreteValueInGeneratedSubfield.index] |
| $id: "valToOut" |
| } |
| $id: "valToOut" |
| x: 3 |
| } |
| -- out/run/t5 -- |
| graph TD |
| t0("root.a [Terminated]") |
| t1("root.concreteValueInGeneratedSubfield [Terminated]") |
| t1-->t0 |
| t2("root.indexReference [Terminated]") |
| t2-->t1 |
| t3("root.taskRootReference [Terminated]") |
| t3-->t2 |
| t4("root.indirectTaskValueReference [Terminated]") |
| t4-->t3 |
| t5("root.indirectTaskRootReference [Ready]") |
| t5-->t4 |
| t6("root.incompleteComprehensionSource [Waiting]") |
| t6-->t5 |
| t7("root.incompleteList [Waiting]") |
| t7-->t6 |
| t8("root.incompleteGeneratedStruct [Waiting]") |
| t8-->t7 |
| |
| -- out/run/t5/value -- |
| { |
| x: 3 |
| $id: "valToOut" |
| } |
| -- out/run/t6 -- |
| graph TD |
| t0("root.a [Terminated]") |
| t1("root.concreteValueInGeneratedSubfield [Terminated]") |
| t1-->t0 |
| t2("root.indexReference [Terminated]") |
| t2-->t1 |
| t3("root.taskRootReference [Terminated]") |
| t3-->t2 |
| t4("root.indirectTaskValueReference [Terminated]") |
| t4-->t3 |
| t5("root.indirectTaskRootReference [Terminated]") |
| t5-->t4 |
| t6("root.incompleteComprehensionSource [Ready]") |
| t6-->t5 |
| t7("root.incompleteList [Waiting]") |
| t7-->t6 |
| t8("root.incompleteGeneratedStruct [Waiting]") |
| t8-->t7 |
| |
| -- out/run/t6/value -- |
| { |
| x: { |
| x: 3 |
| $id: "valToOut" |
| } |
| $id: "valToOut" |
| incomplete: _ |
| } |
| -- out/run/t7 -- |
| graph TD |
| t0("root.a [Terminated]") |
| t1("root.concreteValueInGeneratedSubfield [Terminated]") |
| t1-->t0 |
| t2("root.indexReference [Terminated]") |
| t2-->t1 |
| t3("root.taskRootReference [Terminated]") |
| t3-->t2 |
| t4("root.indirectTaskValueReference [Terminated]") |
| t4-->t3 |
| t5("root.indirectTaskRootReference [Terminated]") |
| t5-->t4 |
| t6("root.incompleteComprehensionSource [Terminated]") |
| t6-->t5 |
| t7("root.incompleteList [Ready]") |
| t7-->t6 |
| t8("root.incompleteGeneratedStruct [Waiting]") |
| t8-->t7 |
| |
| -- out/run/t7/value -- |
| { |
| x: { |
| for x in indirectTaskRootReference.incomplete {} |
| } |
| $id: "valToOut" |
| } |
| -- out/run/t8 -- |
| graph TD |
| t0("root.a [Terminated]") |
| t1("root.concreteValueInGeneratedSubfield [Terminated]") |
| t1-->t0 |
| t2("root.indexReference [Terminated]") |
| t2-->t1 |
| t3("root.taskRootReference [Terminated]") |
| t3-->t2 |
| t4("root.indirectTaskValueReference [Terminated]") |
| t4-->t3 |
| t5("root.indirectTaskRootReference [Terminated]") |
| t5-->t4 |
| t6("root.incompleteComprehensionSource [Terminated]") |
| t6-->t5 |
| t7("root.incompleteList [Terminated]") |
| t7-->t6 |
| t8("root.incompleteGeneratedStruct [Ready]") |
| t8-->t7 |
| |
| -- out/run/t8/value -- |
| { |
| x: [incompleteComprehensionSource.x] |
| $id: "valToOut" |
| } |
| -- out/run/t9 -- |
| graph TD |
| t0("root.a [Terminated]") |
| t1("root.concreteValueInGeneratedSubfield [Terminated]") |
| t1-->t0 |
| t2("root.indexReference [Terminated]") |
| t2-->t1 |
| t3("root.taskRootReference [Terminated]") |
| t3-->t2 |
| t4("root.indirectTaskValueReference [Terminated]") |
| t4-->t3 |
| t5("root.indirectTaskRootReference [Terminated]") |
| t5-->t4 |
| t6("root.incompleteComprehensionSource [Terminated]") |
| t6-->t5 |
| t7("root.incompleteList [Terminated]") |
| t7-->t6 |
| t8("root.incompleteGeneratedStruct [Terminated]") |
| t8-->t7 |
| |
| -- out/run/t9/value -- |
| { |
| x: { |
| foo: [incompleteComprehensionSource.x] |
| } |
| $id: "valToOut" |
| } |