cuelang.org/go@v0.13.0/cue/testdata/cycle/issue3527.txtar (about) 1 // Issue #3527 2 // This code caused a panic before. 3 -- in.cue -- 4 package p 5 6 _taxPayer: self: {} 7 8 let sam = {taxPayer: _taxPayer} 9 assert: { 10 invoke: sam 11 invoke: _ 12 res: subject & {in: invoke} 13 } 14 15 subject: { 16 in: #ReturnData 17 _computed: (#computeF1040 & {"in": in}) 18 } 19 #computeF1040: in: #ReturnData 20 #ReturnData: taxPayer?: #TaxPayer 21 #TaxPayer: self?: _ 22 -- out/eval/stats -- 23 Leaks: 0 24 Freed: 35 25 Reused: 26 26 Allocs: 9 27 Retain: 4 28 29 Unifications: 35 30 Conjuncts: 82 31 Disjuncts: 39 32 -- out/evalalpha -- 33 (struct){ 34 _taxPayer(:p): (struct){ 35 self: (struct){ 36 } 37 } 38 let sam#1 = (struct){ 39 taxPayer: ~(_taxPayer(:p)) 40 } 41 assert: (struct){ 42 invoke: (struct){ 43 taxPayer: ~(_taxPayer(:p)) 44 } 45 res: (struct){ 46 in: (#struct){ 47 taxPayer: (#struct){ 48 self: (#struct){ 49 } 50 } 51 } 52 _computed(:p): (#struct){ 53 in: (#struct){ 54 taxPayer: (#struct){ 55 self: (#struct){ 56 } 57 } 58 } 59 } 60 } 61 } 62 subject: (struct){ 63 in: ~(#ReturnData) 64 _computed(:p): (#struct){ 65 in: ~(#ReturnData) 66 } 67 } 68 #computeF1040: (#struct){ 69 in: ~(#ReturnData) 70 } 71 #ReturnData: (#struct){ 72 taxPayer?: ~(#TaxPayer) 73 } 74 #TaxPayer: (#struct){ 75 self?: (_){ _ } 76 } 77 } 78 -- diff/-out/evalalpha<==>+out/eval -- 79 diff old new 80 --- old 81 +++ new 82 @@ -4,22 +4,16 @@ 83 } 84 } 85 let sam#1 = (struct){ 86 - taxPayer: (struct){ 87 - self: (struct){ 88 - } 89 - } 90 + taxPayer: ~(_taxPayer(:p)) 91 } 92 assert: (struct){ 93 invoke: (struct){ 94 - taxPayer: (struct){ 95 - self: (struct){ 96 - } 97 - } 98 + taxPayer: ~(_taxPayer(:p)) 99 } 100 res: (struct){ 101 in: (#struct){ 102 taxPayer: (#struct){ 103 - self: (struct){ 104 + self: (#struct){ 105 } 106 } 107 } 108 @@ -26,7 +20,7 @@ 109 _computed(:p): (#struct){ 110 in: (#struct){ 111 taxPayer: (#struct){ 112 - self: (struct){ 113 + self: (#struct){ 114 } 115 } 116 } 117 @@ -34,30 +28,16 @@ 118 } 119 } 120 subject: (struct){ 121 - in: (#struct){ 122 - taxPayer?: (#struct){ 123 - self?: (_){ _ } 124 - } 125 - } 126 + in: ~(#ReturnData) 127 _computed(:p): (#struct){ 128 - in: (#struct){ 129 - taxPayer?: (#struct){ 130 - self?: (_){ _ } 131 - } 132 - } 133 + in: ~(#ReturnData) 134 } 135 } 136 #computeF1040: (#struct){ 137 - in: (#struct){ 138 - taxPayer?: (#struct){ 139 - self?: (_){ _ } 140 - } 141 - } 142 + in: ~(#ReturnData) 143 } 144 #ReturnData: (#struct){ 145 - taxPayer?: (#struct){ 146 - self?: (_){ _ } 147 - } 148 + taxPayer?: ~(#TaxPayer) 149 } 150 #TaxPayer: (#struct){ 151 self?: (_){ _ } 152 -- out/eval -- 153 (struct){ 154 _taxPayer(:p): (struct){ 155 self: (struct){ 156 } 157 } 158 let sam#1 = (struct){ 159 taxPayer: (struct){ 160 self: (struct){ 161 } 162 } 163 } 164 assert: (struct){ 165 invoke: (struct){ 166 taxPayer: (struct){ 167 self: (struct){ 168 } 169 } 170 } 171 res: (struct){ 172 in: (#struct){ 173 taxPayer: (#struct){ 174 self: (struct){ 175 } 176 } 177 } 178 _computed(:p): (#struct){ 179 in: (#struct){ 180 taxPayer: (#struct){ 181 self: (struct){ 182 } 183 } 184 } 185 } 186 } 187 } 188 subject: (struct){ 189 in: (#struct){ 190 taxPayer?: (#struct){ 191 self?: (_){ _ } 192 } 193 } 194 _computed(:p): (#struct){ 195 in: (#struct){ 196 taxPayer?: (#struct){ 197 self?: (_){ _ } 198 } 199 } 200 } 201 } 202 #computeF1040: (#struct){ 203 in: (#struct){ 204 taxPayer?: (#struct){ 205 self?: (_){ _ } 206 } 207 } 208 } 209 #ReturnData: (#struct){ 210 taxPayer?: (#struct){ 211 self?: (_){ _ } 212 } 213 } 214 #TaxPayer: (#struct){ 215 self?: (_){ _ } 216 } 217 } 218 -- out/compile -- 219 --- in.cue 220 { 221 _taxPayer: { 222 self: {} 223 } 224 let sam#1 = { 225 taxPayer: 〈1;_taxPayer〉 226 } 227 assert: { 228 invoke: 〈1;let sam#1〉 229 invoke: _ 230 res: (〈1;subject〉 & { 231 in: 〈1;invoke〉 232 }) 233 } 234 subject: { 235 in: 〈1;#ReturnData〉 236 _computed: (〈1;#computeF1040〉 & { 237 in: 〈1;in〉 238 }) 239 } 240 #computeF1040: { 241 in: 〈1;#ReturnData〉 242 } 243 #ReturnData: { 244 taxPayer?: 〈1;#TaxPayer〉 245 } 246 #TaxPayer: { 247 self?: _ 248 } 249 }