cuelang.org/go@v0.10.1/cue/testdata/references/letcycle.txtar (about) 1 -- in.cue -- 2 import "list" 3 4 cycles: { 5 a: { 6 let A = {c: B} 7 let B = A 8 out: A 9 } 10 11 b: { 12 let A = {c: B} 13 let B = {A.c} 14 out: A 15 } 16 17 issue1042: { 18 #FullAdder: { 19 // IN 20 a: bool 21 b: bool 22 c: bool 23 // OUT 24 sum: bool 25 carry: bool 26 } 27 28 #Add16: { 29 a: [bool] * 16 30 b: [bool] * 16 31 out: [bool] * 16 32 33 let fulladders = [ 34 for i in list.Range(0, 4, 1) { 35 #FullAdder & {"a": a[i], "b": b[i], c: carries[i]} 36 }, 37 ] 38 let carries = [ 39 false, 40 for i in list.Range(0, 4, 1) {fulladders[i].carry}, 41 ] 42 out: [ 43 for i in list.Range(0, 4, 1) {fulladders[i].sum}, 44 ] 45 } 46 } 47 } 48 -- out/compile -- 49 cycles.a.let[].c.c: cyclic references in let clause or alias: 50 ./in.cue:5:15 51 cycles.b.let[].c.c: cyclic references in let clause or alias: 52 ./in.cue:11:15 53 cycles.issue1042.#Add16.let[].for[].c.for[].for[].c: cyclic references in let clause or alias: 54 ./in.cue:34:45 55 --- in.cue 56 { 57 cycles: { 58 a: { 59 let A#1 = { 60 c: 〈1;let B#2〉 61 } 62 let B#2 = 〈0;let A#1〉 63 out: 〈0;let A#1〉 64 } 65 b: { 66 let A#3 = { 67 c: 〈1;let B#4〉 68 } 69 let B#4 = { 70 〈1;let A#3〉.c 71 } 72 out: 〈0;let A#3〉 73 } 74 issue1042: { 75 #FullAdder: { 76 a: bool 77 b: bool 78 c: bool 79 sum: bool 80 carry: bool 81 } 82 #Add16: { 83 a: ([ 84 bool, 85 ] * 16) 86 b: ([ 87 bool, 88 ] * 16) 89 out: ([ 90 bool, 91 ] * 16) 92 let fulladders#5 = [ 93 for _, i in 〈import;list〉.Range(0, 4, 1) { 94 (〈4;#FullAdder〉 & { 95 a: 〈4;a〉[〈2;i〉] 96 b: 〈4;b〉[〈2;i〉] 97 c: 〈4;let carries#6〉[〈2;i〉] 98 }) 99 }, 100 ] 101 let carries#6 = [ 102 false, 103 for _, i in 〈import;list〉.Range(0, 4, 1) { 104 〈3;let fulladders#5〉[〈1;i〉].carry 105 }, 106 ] 107 out: [ 108 for _, i in 〈import;list〉.Range(0, 4, 1) { 109 〈3;let fulladders#5〉[〈1;i〉].sum 110 }, 111 ] 112 } 113 } 114 } 115 } 116 -- out/eval -- 117 cycles.a.let[].c.c: cyclic references in let clause or alias: 118 ./in.cue:5:15 119 cycles.b.let[].c.c: cyclic references in let clause or alias: 120 ./in.cue:11:15 121 cycles.issue1042.#Add16.let[].for[].c.for[].for[].c: cyclic references in let clause or alias: 122 ./in.cue:34:45