this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

internal/core/adt: fix stack overflow with comprehensions

The issue was that evaluating an arc in the source of a
comprehension resulted in infinite recursion. The call
to unify that is removed can be removed, as it is already
called in the block above when it is necessary.

This is not a full fix, but is something that will be easier
to fix in the new evaluator.

Fixes #2367

Signed-off-by: Marcel van Lohuizen <mpvl@gmail.com>
Change-Id: Ibcab74235097180094284f249750c3c0ec5d2845
Reviewed-on: https://review.gerrithub.io/c/cue-lang/cue/+/557011
TryBot-Result: CUEcueckoo <cueckoo@cuelang.org>
Reviewed-by: Daniel Martí <mvdan@mvdan.cc>
Unity-Result: CUE porcuepine <cue.porcuepine@gmail.com>

authored by

Marcel van Lohuizen and committed by
Daniel Martí
33071c0c 538eb9ca

+171 -171
+8 -8
cue/testdata/benchmarks/issue2176.txtar
··· 59 59 "2": (datastream & {marker: length: 14}).marker.position 60 60 } 61 61 -- out/eval/stats -- 62 - Leaks: 214 63 - Freed: 5799 64 - Reused: 5795 65 - Allocs: 218 66 - Retain: 1911 62 + Leaks: 90 63 + Freed: 4079 64 + Reused: 4074 65 + Allocs: 95 66 + Retain: 1359 67 67 68 - Unifications: 6005 69 - Conjuncts: 14507 70 - Disjuncts: 6864 68 + Unifications: 4161 69 + Conjuncts: 9489 70 + Disjuncts: 4804 71 71 -- out/eval -- 72 72 (struct){ 73 73 #Datastream: (#struct){
+4 -4
cue/testdata/comprehensions/015_list_comprehension.txtar
··· 83 83 -- out/eval/stats -- 84 84 Leaks: 0 85 85 Freed: 19 86 - Reused: 11 87 - Allocs: 8 88 - Retain: 14 86 + Reused: 12 87 + Allocs: 7 88 + Retain: 10 89 89 90 90 Unifications: 19 91 - Conjuncts: 35 91 + Conjuncts: 36 92 92 Disjuncts: 23 93 93 -- out/eval -- 94 94 (struct){
+2 -2
cue/testdata/comprehensions/045_comprehension_and_skipped_field.txtar
··· 54 54 Freed: 7 55 55 Reused: 2 56 56 Allocs: 8 57 - Retain: 8 57 + Retain: 7 58 58 59 59 Unifications: 8 60 60 Conjuncts: 11 61 - Disjuncts: 13 61 + Disjuncts: 12 62 62 -- out/eval -- 63 63 (struct){ 64 64 x: (struct){
+1 -1
cue/testdata/comprehensions/closed.txtar
··· 95 95 Freed: 70 96 96 Reused: 64 97 97 Allocs: 8 98 - Retain: 4 98 + Retain: 3 99 99 100 100 Unifications: 58 101 101 Conjuncts: 103
+9 -9
cue/testdata/comprehensions/errors.txtar
··· 44 44 } 45 45 } 46 46 -- out/eval/stats -- 47 - Leaks: 4 48 - Freed: 27 49 - Reused: 23 50 - Allocs: 8 51 - Retain: 6 47 + Leaks: 1 48 + Freed: 28 49 + Reused: 22 50 + Allocs: 7 51 + Retain: 1 52 52 53 - Unifications: 21 53 + Unifications: 19 54 54 Conjuncts: 40 55 - Disjuncts: 30 55 + Disjuncts: 29 56 56 -- out/eval -- 57 57 Errors: 58 - conflictRangingOverSelf.x: conflicting values int and "age" (mismatched types int and string): 58 + conflictRangingOverSelf.x.age: conflicting values int and "age" (mismatched types int and string): 59 59 ./in.cue:36:9 60 60 ./in.cue:40:3 61 61 ./in.cue:41:9 ··· 102 102 // [eval] 103 103 name: (string){ "name" } 104 104 age: (_|_){ 105 - // [eval] conflictRangingOverSelf.x: conflicting values int and "age" (mismatched types int and string): 105 + // [eval] conflictRangingOverSelf.x.age: conflicting values int and "age" (mismatched types int and string): 106 106 // ./in.cue:36:9 107 107 // ./in.cue:40:3 108 108 // ./in.cue:41:9
+2 -2
cue/testdata/comprehensions/fields.txtar
··· 62 62 Freed: 32 63 63 Reused: 26 64 64 Allocs: 7 65 - Retain: 2 65 + Retain: 1 66 66 67 67 Unifications: 33 68 - Conjuncts: 40 68 + Conjuncts: 41 69 69 Disjuncts: 33 70 70 -- out/eval -- 71 71 (struct){
+4 -4
cue/testdata/comprehensions/for.txtar
··· 13 13 b: {for _, _ in [1] {a: _}} 14 14 } 15 15 -- out/eval/stats -- 16 - Leaks: 4 16 + Leaks: 2 17 17 Freed: 16 18 18 Reused: 12 19 - Allocs: 8 20 - Retain: 11 19 + Allocs: 6 20 + Retain: 7 21 21 22 - Unifications: 20 22 + Unifications: 18 23 23 Conjuncts: 18 24 24 Disjuncts: 21 25 25 -- out/eval --
+2 -2
cue/testdata/comprehensions/iferror.txtar
··· 151 151 Freed: 43 152 152 Reused: 35 153 153 Allocs: 8 154 - Retain: 18 154 + Retain: 14 155 155 156 156 Unifications: 33 157 - Conjuncts: 65 157 + Conjuncts: 66 158 158 Disjuncts: 57 159 159 -- out/eval -- 160 160 Errors:
+5 -5
cue/testdata/comprehensions/issue1732.txtar
··· 122 122 } 123 123 } 124 124 -- out/eval/stats -- 125 - Leaks: 4 125 + Leaks: 3 126 126 Freed: 118 127 127 Reused: 103 128 - Allocs: 19 129 - Retain: 14 128 + Allocs: 18 129 + Retain: 10 130 130 131 - Unifications: 112 131 + Unifications: 111 132 132 Conjuncts: 249 133 - Disjuncts: 128 133 + Disjuncts: 126 134 134 -- out/eval -- 135 135 (struct){ 136 136 networkingv1: (struct){
+2 -2
cue/testdata/comprehensions/issue2171.txtar
··· 25 25 Freed: 3 26 26 Reused: 0 27 27 Allocs: 3 28 - Retain: 2 28 + Retain: 0 29 29 30 30 Unifications: 3 31 31 Conjuncts: 5 32 - Disjuncts: 5 32 + Disjuncts: 3 33 33 -- out/eval -- 34 34 (struct){ 35 35 do: (struct){
+1 -1
cue/testdata/comprehensions/issue843.txtar
··· 45 45 Freed: 55 46 46 Reused: 41 47 47 Allocs: 23 48 - Retain: 20 48 + Retain: 14 49 49 50 50 Unifications: 52 51 51 Conjuncts: 120
+2 -2
cue/testdata/comprehensions/nested.txtar
··· 63 63 Freed: 45 64 64 Reused: 26 65 65 Allocs: 19 66 - Retain: 36 66 + Retain: 33 67 67 68 68 Unifications: 35 69 69 Conjuncts: 95 70 - Disjuncts: 78 70 + Disjuncts: 75 71 71 -- out/eval -- 72 72 (struct){ 73 73 service: (struct){
+3 -3
cue/testdata/comprehensions/pushdown.txtar
··· 746 746 Freed: 394 747 747 Reused: 387 748 748 Allocs: 21 749 - Retain: 120 749 + Retain: 107 750 750 751 751 Unifications: 394 752 - Conjuncts: 637 753 - Disjuncts: 476 752 + Conjuncts: 638 753 + Disjuncts: 471 754 754 -- out/eval -- 755 755 Errors: 756 756 embed.fail1.p: field not allowed:
+5 -5
cue/testdata/cycle/chain.txtar
··· 208 208 d: #Depth & {#in: tree} 209 209 } 210 210 -- out/eval/stats -- 211 - Leaks: 72 211 + Leaks: 70 212 212 Freed: 1815 213 213 Reused: 1801 214 - Allocs: 86 215 - Retain: 195 214 + Allocs: 84 215 + Retain: 185 216 216 217 - Unifications: 802 218 - Conjuncts: 3177 217 + Unifications: 800 218 + Conjuncts: 3175 219 219 Disjuncts: 1974 220 220 -- out/eval -- 221 221 (struct){
+24 -7
cue/testdata/cycle/comprehension.txtar
··· 303 303 } 304 304 } 305 305 306 + // avoid infinite recursion 307 + issue2367: { 308 + a: _ 309 + for x in [a] {a: x} 310 + } 311 + 306 312 -- out/eval/stats -- 307 - Leaks: 48 308 - Freed: 1268 309 - Reused: 1256 313 + Leaks: 50 314 + Freed: 1270 315 + Reused: 1260 310 316 Allocs: 60 311 - Retain: 189 317 + Retain: 145 312 318 313 - Unifications: 828 314 - Conjuncts: 2512 315 - Disjuncts: 1437 319 + Unifications: 832 320 + Conjuncts: 2525 321 + Disjuncts: 1404 316 322 -- out/eval -- 317 323 Errors: 318 324 selfReferential.insertionError.A: field foo3 not allowed by earlier comprehension or reference cycle ··· 709 715 } 710 716 } 711 717 } 718 + } 719 + issue2367: (struct){ 720 + a: (_){ _ } 712 721 } 713 722 } 714 723 -- out/compile -- ··· 1192 1201 a: {} 1193 1202 b: (〈0;a〉.x != "") 1194 1203 if 〈0;b〉 {} 1204 + } 1205 + } 1206 + issue2367: { 1207 + a: _ 1208 + for _, x in [ 1209 + 〈1;a〉, 1210 + ] { 1211 + a: 〈1;x〉 1195 1212 } 1196 1213 } 1197 1214 }
+20 -36
cue/testdata/cycle/evaluate.txtar
··· 107 107 } 108 108 109 109 -- out/eval/stats -- 110 - Leaks: 66 111 - Freed: 95 112 - Reused: 91 113 - Allocs: 70 114 - Retain: 136 110 + Leaks: 57 111 + Freed: 90 112 + Reused: 86 113 + Allocs: 61 114 + Retain: 126 115 115 116 - Unifications: 149 117 - Conjuncts: 289 118 - Disjuncts: 171 116 + Unifications: 135 117 + Conjuncts: 269 118 + Disjuncts: 156 119 119 -- out/eval -- 120 120 Errors: 121 121 closeCycle.a: structural cycle ··· 126 126 ./in.cue:104:6 127 127 ./in.cue:105:5 128 128 letCycleFail.t1.a.c: structural cycle 129 + listAddCycle.a: structural cycle 130 + listAddCycle.b.0.0: structural cycle 131 + listAddCycle.b.0.1: structural cycle 129 132 structCycle.a: structural cycle 130 133 structCycle.b.d: structural cycle 131 134 disjunctionCycle.a: cannot use 1 (type int) as list in argument 1 to and: ··· 142 145 ./in.cue:77:14 143 146 embedCycle: structural cycle: 144 147 ./in.cue:83:11 145 - listAddCycle.c.0.0: structural cycle: 146 - ./in.cue:89:5 147 - listAddCycle.c.0.1: structural cycle: 148 - ./in.cue:89:5 148 + listAddCycle.c: structural cycle: 149 + ./in.cue:89:6 149 150 listMulCycle.a: invalid operands 3 and [{a:{b:c}}] to '+' (type int and list): 150 151 ./in.cue:95:5 151 152 ./in.cue:95:9 ··· 303 304 listAddCycle: (_|_){ 304 305 // [structural cycle] 305 306 a: (_|_){ 306 - // [structural cycle] 307 - 0: (_|_){ 308 - // [structural cycle] listAddCycle.c.0.0: structural cycle: 309 - // ./in.cue:89:5 310 - } 311 - 1: (_|_){ 312 - // [structural cycle] listAddCycle.c.0.0: structural cycle: 313 - // ./in.cue:89:5 314 - } 307 + // [structural cycle] listAddCycle.a: structural cycle 315 308 } 316 309 b: (_|_){ 317 310 // [structural cycle] 318 311 0: (_|_){ 319 - // [structural cycle] listAddCycle.c.0.0: structural cycle: 320 - // ./in.cue:89:5 321 - } 322 - 1: (_|_){ 323 - // [structural cycle] listAddCycle.c.0.0: structural cycle: 324 - // ./in.cue:89:5 325 - } 326 - } 327 - c: (_|_){ 328 - // [structural cycle] 329 - 0: (_|_){ 330 312 // [structural cycle] 331 313 0: (_|_){ 332 - // [structural cycle] listAddCycle.c.0.0: structural cycle: 333 - // ./in.cue:89:5 314 + // [structural cycle] listAddCycle.b.0.0: structural cycle 334 315 } 335 316 1: (_|_){ 336 - // [structural cycle] listAddCycle.c.0.1: structural cycle: 337 - // ./in.cue:89:5 317 + // [structural cycle] listAddCycle.b.0.1: structural cycle 338 318 } 339 319 } 340 320 1: (_|_){ 341 321 // [structural cycle] 342 322 } 323 + } 324 + c: (_|_){ 325 + // [structural cycle] listAddCycle.c: structural cycle: 326 + // ./in.cue:89:6 343 327 } 344 328 } 345 329 listMulCycle: (_|_){
+2 -2
cue/testdata/cycle/issue990.txtar
··· 177 177 Freed: 1907 178 178 Reused: 1882 179 179 Allocs: 25 180 - Retain: 14 180 + Retain: 12 181 181 182 182 Unifications: 1541 183 183 Conjuncts: 6931 184 - Disjuncts: 1921 184 + Disjuncts: 1919 185 185 -- out/eval -- 186 186 (struct){ 187 187 #AC: (#struct){
+11 -11
cue/testdata/cycle/self.txtar
··· 267 267 Freed: 414 268 268 Reused: 405 269 269 Allocs: 23 270 - Retain: 42 270 + Retain: 27 271 271 272 272 Unifications: 236 273 - Conjuncts: 682 273 + Conjuncts: 686 274 274 Disjuncts: 439 275 275 -- out/eval -- 276 276 Errors: ··· 281 281 ./in.cue:6:5 282 282 ./in.cue:7:5 283 283 list.error1.a: element at index 2 not allowed by earlier comprehension or reference cycle 284 - list.error2.a: conflicting values "1" and "2": 285 - ./in.cue:16:6 286 - ./in.cue:16:11 287 - list.error2.a: conflicting values "3" and "1": 284 + list.error2.a: element at index 2 not allowed by earlier comprehension or reference cycle 285 + list.error2.a.0: conflicting values "3" and "1": 288 286 ./in.cue:15:6 289 287 ./in.cue:16:6 290 - list.error2.a: conflicting values "3" and "2": 288 + list.error2.a.1: conflicting values "1" and "2": 289 + ./in.cue:16:6 290 + ./in.cue:16:11 291 + list.error2.a.1: conflicting values "3" and "2": 291 292 ./in.cue:15:6 292 293 ./in.cue:16:11 293 - list.error2.a: element at index 2 not allowed by earlier comprehension or reference cycle 294 294 list.error2.a.2: conflicting values "1" and "2": 295 295 ./in.cue:16:6 296 296 ./in.cue:16:11 ··· 336 336 a: (_|_){ 337 337 // [eval] list.error2.a: element at index 2 not allowed by earlier comprehension or reference cycle 338 338 0: (_|_){ 339 - // [eval] list.error2.a: conflicting values "3" and "1": 339 + // [eval] list.error2.a.0: conflicting values "3" and "1": 340 340 // ./in.cue:15:6 341 341 // ./in.cue:16:6 342 342 } 343 343 1: (_|_){ 344 - // [eval] list.error2.a: conflicting values "1" and "2": 344 + // [eval] list.error2.a.1: conflicting values "1" and "2": 345 345 // ./in.cue:16:6 346 346 // ./in.cue:16:11 347 - // list.error2.a: conflicting values "3" and "2": 347 + // list.error2.a.1: conflicting values "3" and "2": 348 348 // ./in.cue:15:6 349 349 // ./in.cue:16:11 350 350 }
+2 -2
cue/testdata/definitions/037_closing_with_comprehensions.txtar
··· 107 107 Freed: 18 108 108 Reused: 15 109 109 Allocs: 13 110 - Retain: 15 110 + Retain: 10 111 111 112 112 Unifications: 28 113 113 Conjuncts: 43 114 - Disjuncts: 33 114 + Disjuncts: 28 115 115 -- out/eval -- 116 116 Errors: 117 117 #E.f3: field not allowed:
+2 -2
cue/testdata/disjunctions/019_ips.txtar
··· 59 59 Freed: 54 60 60 Reused: 48 61 61 Allocs: 9 62 - Retain: 14 62 + Retain: 6 63 63 64 64 Unifications: 48 65 65 Conjuncts: 111 66 - Disjuncts: 68 66 + Disjuncts: 60 67 67 -- out/eval -- 68 68 (struct){ 69 69 IP: (#list){
+4 -4
cue/testdata/disjunctions/embed.txtar
··· 61 61 (3 | 4 | *( 5 | 6 | *7)) & ( 3 | 4 | ( *7 | 8 ))) 62 62 } 63 63 -- out/eval/stats -- 64 - Leaks: 2 64 + Leaks: 1 65 65 Freed: 416 66 66 Reused: 381 67 - Allocs: 37 68 - Retain: 2 67 + Allocs: 36 68 + Retain: 1 69 69 70 - Unifications: 258 70 + Unifications: 257 71 71 Conjuncts: 478 72 72 Disjuncts: 417 73 73 -- out/eval --
+1 -1
cue/testdata/eval/conjuncts.txtar
··· 73 73 Freed: 68 74 74 Reused: 59 75 75 Allocs: 18 76 - Retain: 24 76 + Retain: 22 77 77 78 78 Unifications: 45 79 79 Conjuncts: 135
+2 -2
cue/testdata/eval/discontinuous.txtar
··· 53 53 Freed: 14 54 54 Reused: 5 55 55 Allocs: 9 56 - Retain: 10 56 + Retain: 9 57 57 58 58 Unifications: 14 59 59 Conjuncts: 23 60 - Disjuncts: 24 60 + Disjuncts: 23 61 61 -- out/eval -- 62 62 (struct){ 63 63 a: (#list){
+6 -6
cue/testdata/eval/issue2146.txtar
··· 40 40 } 41 41 42 42 -- out/eval/stats -- 43 - Leaks: 37 44 - Freed: 152 45 - Reused: 145 46 - Allocs: 44 47 - Retain: 77 43 + Leaks: 18 44 + Freed: 171 45 + Reused: 163 46 + Allocs: 26 47 + Retain: 18 48 48 49 49 Unifications: 173 50 50 Conjuncts: 557 51 - Disjuncts: 206 51 + Disjuncts: 189 52 52 -- out/eval -- 53 53 (struct){ 54 54 p1: (struct){
+4 -4
cue/testdata/eval/issue2235.txtar
··· 102 102 -- out/eval/stats -- 103 103 Leaks: 1 104 104 Freed: 99 105 - Reused: 76 106 - Allocs: 24 107 - Retain: 80 105 + Reused: 80 106 + Allocs: 20 107 + Retain: 64 108 108 109 109 Unifications: 100 110 110 Conjuncts: 260 111 - Disjuncts: 166 111 + Disjuncts: 151 112 112 -- out/eval -- 113 113 (struct){ 114 114 shorewallParams: (#struct){
+1 -1
cue/testdata/eval/issue500.txtar
··· 24 24 Freed: 34 25 25 Reused: 31 26 26 Allocs: 19 27 - Retain: 37 27 + Retain: 22 28 28 29 29 Unifications: 50 30 30 Conjuncts: 66
+5 -5
cue/testdata/eval/let.txtar
··· 159 159 } 160 160 161 161 -- out/eval/stats -- 162 - Leaks: 45 162 + Leaks: 43 163 163 Freed: 161 164 164 Reused: 152 165 - Allocs: 54 166 - Retain: 230 165 + Allocs: 52 166 + Retain: 202 167 167 168 - Unifications: 192 169 - Conjuncts: 365 168 + Unifications: 190 169 + Conjuncts: 377 170 170 Disjuncts: 246 171 171 -- out/eval -- 172 172 Errors:
+1 -1
cue/testdata/eval/lists.txtar
··· 12 12 Freed: 11 13 13 Reused: 8 14 14 Allocs: 7 15 - Retain: 8 15 + Retain: 6 16 16 17 17 Unifications: 15 18 18 Conjuncts: 29
+2 -2
cue/testdata/export/009.txtar
··· 47 47 Freed: 13 48 48 Reused: 10 49 49 Allocs: 6 50 - Retain: 17 50 + Retain: 7 51 51 52 52 Unifications: 16 53 53 Conjuncts: 37 54 - Disjuncts: 30 54 + Disjuncts: 20 55 55 -- out/eval -- 56 56 (struct){ 57 57 a: (#list){
+2 -2
cue/testdata/export/010.txtar
··· 48 48 Freed: 13 49 49 Reused: 10 50 50 Allocs: 6 51 - Retain: 17 51 + Retain: 7 52 52 53 53 Unifications: 16 54 54 Conjuncts: 37 55 - Disjuncts: 30 55 + Disjuncts: 20 56 56 -- out/eval -- 57 57 (struct){ 58 58 a: (#list){
+4 -4
cue/testdata/fulleval/004_field_comprehension.txtar
··· 92 92 -- out/eval/stats -- 93 93 Leaks: 0 94 94 Freed: 12 95 - Reused: 4 96 - Allocs: 8 97 - Retain: 16 95 + Reused: 5 96 + Allocs: 7 97 + Retain: 12 98 98 99 99 Unifications: 12 100 - Conjuncts: 16 100 + Conjuncts: 17 101 101 Disjuncts: 16 102 102 -- out/eval -- 103 103 (struct){
+4 -4
cue/testdata/fulleval/006_referencing_field_in_field_comprehension.txtar
··· 59 59 -- out/eval/stats -- 60 60 Leaks: 0 61 61 Freed: 7 62 - Reused: 2 63 - Allocs: 5 64 - Retain: 3 62 + Reused: 3 63 + Allocs: 4 64 + Retain: 1 65 65 66 66 Unifications: 7 67 - Conjuncts: 11 67 + Conjuncts: 13 68 68 Disjuncts: 8 69 69 -- out/eval -- 70 70 (struct){
+2 -2
cue/testdata/fulleval/010_field_comprehensions_with_multiple_keys.txtar
··· 173 173 Freed: 29 174 174 Reused: 25 175 175 Allocs: 24 176 - Retain: 62 176 + Retain: 56 177 177 178 178 Unifications: 49 179 179 Conjuncts: 48 180 - Disjuncts: 67 180 + Disjuncts: 61 181 181 -- out/eval -- 182 182 (struct){ 183 183 a: (struct){
+4 -4
cue/testdata/fulleval/016_struct_comprehension_with_template.txtar
··· 138 138 -- out/eval/stats -- 139 139 Leaks: 0 140 140 Freed: 51 141 - Reused: 41 142 - Allocs: 10 143 - Retain: 7 141 + Reused: 43 142 + Allocs: 8 143 + Retain: 4 144 144 145 145 Unifications: 27 146 146 Conjuncts: 70 147 - Disjuncts: 58 147 + Disjuncts: 55 148 148 -- out/eval -- 149 149 (struct){ 150 150 result: (#list){
+1 -1
cue/testdata/fulleval/017_resolutions_in_struct_comprehension_keys.txtar
··· 35 35 Freed: 3 36 36 Reused: 0 37 37 Allocs: 5 38 - Retain: 4 38 + Retain: 3 39 39 40 40 Unifications: 5 41 41 Conjuncts: 5
+2 -2
cue/testdata/fulleval/020_complex_interaction_of_groundness.txtar
··· 64 64 Freed: 10 65 65 Reused: 3 66 66 Allocs: 7 67 - Retain: 7 67 + Retain: 5 68 68 69 69 Unifications: 10 70 70 Conjuncts: 33 71 - Disjuncts: 17 71 + Disjuncts: 15 72 72 -- out/eval -- 73 73 (struct){ 74 74 res: (#list){
+4 -4
cue/testdata/fulleval/053_issue312.txtar
··· 21 21 -- out/legacy-debug -- 22 22 <0>{ <1>for _, x in [1] yield <2>{}, (*close (<3>{}) | <4>{[]: <5>(_: string)->null, })} 23 23 -- out/eval/stats -- 24 - Leaks: 3 24 + Leaks: 2 25 25 Freed: 3 26 26 Reused: 0 27 - Allocs: 6 28 - Retain: 3 27 + Allocs: 5 28 + Retain: 2 29 29 30 - Unifications: 4 30 + Unifications: 3 31 31 Conjuncts: 8 32 32 Disjuncts: 5 33 33 -- out/eval --
+4 -4
cue/testdata/fulleval/054_issue312.txtar
··· 31 31 } 32 32 } 33 33 -- out/eval/stats -- 34 - Leaks: 2 34 + Leaks: 1 35 35 Freed: 8 36 36 Reused: 3 37 - Allocs: 7 38 - Retain: 2 37 + Allocs: 6 38 + Retain: 1 39 39 40 - Unifications: 6 40 + Unifications: 5 41 41 Conjuncts: 12 42 42 Disjuncts: 9 43 43 -- out/eval --
+2 -2
cue/testdata/lists/019_list_types.txtar
··· 121 121 Freed: 26 122 122 Reused: 23 123 123 Allocs: 18 124 - Retain: 42 124 + Retain: 20 125 125 126 126 Unifications: 41 127 127 Conjuncts: 75 128 - Disjuncts: 67 128 + Disjuncts: 45 129 129 -- out/eval -- 130 130 Errors: 131 131 e0: incompatible list lengths (1 and 2)
+1 -1
cue/testdata/lists/020_list_arithmetic.txtar
··· 329 329 Freed: 133 330 330 Reused: 130 331 331 Allocs: 201 332 - Retain: 390 332 + Retain: 210 333 333 334 334 Unifications: 331 335 335 Conjuncts: 475
+1 -1
cue/testdata/resolve/038_incomplete_comprehensions.txtar
··· 52 52 Freed: 11 53 53 Reused: 6 54 54 Allocs: 5 55 - Retain: 11 55 + Retain: 9 56 56 57 57 Unifications: 11 58 58 Conjuncts: 16
+3 -3
cue/testdata/resolve/047_struct_comprehensions.txtar
··· 80 80 -- out/eval/stats -- 81 81 Leaks: 2 82 82 Freed: 12 83 - Reused: 6 84 - Allocs: 8 85 - Retain: 3 83 + Reused: 7 84 + Allocs: 7 85 + Retain: 2 86 86 87 87 Unifications: 10 88 88 Conjuncts: 19
-1
internal/core/adt/expr.go
··· 1878 1878 } 1879 1879 } 1880 1880 1881 - c.unify(a, partial) 1882 1881 if !a.definitelyExists() { 1883 1882 continue 1884 1883 }