github.com/joomcode/cue@v0.4.4-0.20221111115225-539fe3512047/cue/testdata/eval/issue599.txtar (about) 1 -- in.cue -- 2 package deps 3 4 a: { 5 #A: { 6 n: string 7 depends_on: [...#AnyA] 8 } 9 10 #AnyA: { 11 n: string 12 depends_on: [...#AnyA] 13 ... 14 } 15 16 #A1: { 17 #A 18 x: int 19 y: z: string // Comment to avoid error 20 } 21 22 #A2: { 23 #A 24 i: string 25 } 26 27 s: [Name=string]: #AnyA & {n: Name} 28 29 s: foo: #A1 & { 30 x: 10 31 y: z: "z" // Comment to avoid error 32 } 33 34 s: bar: #A2 & { 35 i: "hello bar" 36 depends_on: [s.foo] 37 } 38 } 39 40 b: { 41 #A: { 42 f: {...} 43 } 44 45 #A1: { 46 #A 47 // f: {...} // Uncomment to fix 48 } 49 50 #C: { 51 d: {...} 52 } 53 54 s: [string]: #A1 55 56 s: foo: { 57 f: #C & { 58 d: foo: "bar" 59 } 60 } 61 } 62 -- out/eval -- 63 (struct){ 64 a: (struct){ 65 #A: (#struct){ 66 n: (string){ string } 67 depends_on: (list){ 68 } 69 } 70 #AnyA: (#struct){ 71 n: (string){ string } 72 depends_on: (list){ 73 } 74 } 75 #A1: (#struct){ 76 n: (string){ string } 77 depends_on: (list){ 78 } 79 x: (int){ int } 80 y: (#struct){ 81 z: (string){ string } 82 } 83 } 84 #A2: (#struct){ 85 n: (string){ string } 86 depends_on: (list){ 87 } 88 i: (string){ string } 89 } 90 s: (struct){ 91 foo: (#struct){ 92 n: (string){ "foo" } 93 depends_on: (list){ 94 } 95 x: (int){ 10 } 96 y: (#struct){ 97 z: (string){ "z" } 98 } 99 } 100 bar: (#struct){ 101 n: (string){ "bar" } 102 depends_on: (#list){ 103 0: (#struct){ 104 n: (string){ "foo" } 105 depends_on: (list){ 106 } 107 x: (int){ 10 } 108 y: (#struct){ 109 z: (string){ "z" } 110 } 111 } 112 } 113 i: (string){ "hello bar" } 114 } 115 } 116 } 117 b: (struct){ 118 #A: (#struct){ 119 f: (#struct){ 120 } 121 } 122 #A1: (#struct){ 123 f: (#struct){ 124 } 125 } 126 #C: (#struct){ 127 d: (#struct){ 128 } 129 } 130 s: (struct){ 131 foo: (#struct){ 132 f: (#struct){ 133 d: (#struct){ 134 foo: (string){ "bar" } 135 } 136 } 137 } 138 } 139 } 140 } 141 -- out/compile -- 142 --- in.cue 143 { 144 a: { 145 #A: { 146 n: string 147 depends_on: [ 148 ...〈2;#AnyA〉, 149 ] 150 } 151 #AnyA: { 152 n: string 153 depends_on: [ 154 ...〈2;#AnyA〉, 155 ] 156 ... 157 } 158 #A1: { 159 〈1;#A〉 160 x: int 161 y: { 162 z: string 163 } 164 } 165 #A2: { 166 〈1;#A〉 167 i: string 168 } 169 s: { 170 [string]: (〈1;#AnyA〉 & { 171 n: 〈1;-〉 172 }) 173 } 174 s: { 175 foo: (〈1;#A1〉 & { 176 x: 10 177 y: { 178 z: "z" 179 } 180 }) 181 } 182 s: { 183 bar: (〈1;#A2〉 & { 184 i: "hello bar" 185 depends_on: [ 186 〈3;s〉.foo, 187 ] 188 }) 189 } 190 } 191 b: { 192 #A: { 193 f: { 194 ... 195 } 196 } 197 #A1: { 198 〈1;#A〉 199 } 200 #C: { 201 d: { 202 ... 203 } 204 } 205 s: { 206 [string]: 〈1;#A1〉 207 } 208 s: { 209 foo: { 210 f: (〈2;#C〉 & { 211 d: { 212 foo: "bar" 213 } 214 }) 215 } 216 } 217 } 218 }