Skip to content

Commit 7de64e8

Browse files
committed
internal/core/adt: carry over enclosing scope
This fixes a case where a nested reference to a definition within an embedding was still enforced. Disabling this is quite tricky, as there are very similar cases where the user would still expect the reference to be enforced. A lot of CUE depends on this. This shows the limitations of the current closedness algorithm. As we plan to move to a simpler model anyway, we introduce some hacky solution that hopefully will suffice for now. Fixes #3920 Signed-off-by: Marcel van Lohuizen <[email protected]> Change-Id: I5859a50682dad79360b060ee8fb330c064baee65 Reviewed-on: https://review.gerrithub.io/c/cue-lang/cue/+/1214849 TryBot-Result: CUEcueckoo <[email protected]> Unity-Result: CUE porcuepine <[email protected]> Reviewed-by: Daniel Martí <[email protected]>
1 parent 0f26957 commit 7de64e8

File tree

14 files changed

+99
-134
lines changed

14 files changed

+99
-134
lines changed

cue/testdata/benchmarks/issue3633.txtar

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ Unifications: 537
1010
Conjuncts: 2338
1111
Disjuncts: 1745
1212

13-
CloseIDElems: 2107
14-
NumCloseIDs: 53
13+
CloseIDElems: 1249
14+
NumCloseIDs: 55
1515
-- diff/-out/evalalpha/stats<==>+out/eval/stats --
1616
diff old new
1717
--- old
@@ -34,8 +34,8 @@ diff old new
3434
+Conjuncts: 2338
3535
+Disjuncts: 1745
3636
+
37-
+CloseIDElems: 2107
38-
+NumCloseIDs: 53
37+
+CloseIDElems: 1249
38+
+NumCloseIDs: 55
3939
-- out/eval/stats --
4040
Leaks: 0
4141
Freed: 3595

cue/testdata/cycle/builtins.txtar

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -265,8 +265,8 @@ Unifications: 399
265265
Conjuncts: 731
266266
Disjuncts: 38
267267

268-
CloseIDElems: 116
269-
NumCloseIDs: 189
268+
CloseIDElems: 150
269+
NumCloseIDs: 191
270270
-- diff/-out/evalalpha/stats<==>+out/eval/stats --
271271
diff old new
272272
--- old
@@ -291,8 +291,8 @@ diff old new
291291
+Conjuncts: 731
292292
+Disjuncts: 38
293293
+
294-
+CloseIDElems: 116
295-
+NumCloseIDs: 189
294+
+CloseIDElems: 150
295+
+NumCloseIDs: 191
296296
-- out/eval/stats --
297297
Leaks: 25
298298
Freed: 446

cue/testdata/cycle/chain.txtar

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1705,7 +1705,7 @@ Unifications: 931
17051705
Conjuncts: 4994
17061706
Disjuncts: 1615
17071707

1708-
CloseIDElems: 20288
1708+
CloseIDElems: 19418
17091709
NumCloseIDs: 1535
17101710
-- diff/-out/evalalpha/stats<==>+out/eval/stats --
17111711
diff old new
@@ -1731,7 +1731,7 @@ diff old new
17311731
+Conjuncts: 4994
17321732
+Disjuncts: 1615
17331733
+
1734-
+CloseIDElems: 20288
1734+
+CloseIDElems: 19418
17351735
+NumCloseIDs: 1535
17361736
-- out/eval/stats --
17371737
Leaks: 56

cue/testdata/cycle/inline.txtar

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -405,8 +405,8 @@ Unifications: 253
405405
Conjuncts: 639
406406
Disjuncts: 0
407407

408-
CloseIDElems: 329
409-
NumCloseIDs: 229
408+
CloseIDElems: 363
409+
NumCloseIDs: 231
410410
-- diff/-out/evalalpha/stats<==>+out/eval/stats --
411411
diff old new
412412
--- old
@@ -431,8 +431,8 @@ diff old new
431431
+Conjuncts: 639
432432
+Disjuncts: 0
433433
+
434-
+CloseIDElems: 329
435-
+NumCloseIDs: 229
434+
+CloseIDElems: 363
435+
+NumCloseIDs: 231
436436
-- out/eval/stats --
437437
Leaks: 286
438438
Freed: 253

cue/testdata/definitions/issue3834.txtar

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,8 @@ Unifications: 171
6969
Conjuncts: 322
7070
Disjuncts: 48
7171

72-
CloseIDElems: 1232
73-
NumCloseIDs: 64
72+
CloseIDElems: 1109
73+
NumCloseIDs: 88
7474
-- diff/-out/evalalpha/stats<==>+out/eval/stats --
7575
diff old new
7676
--- old
@@ -95,8 +95,8 @@ diff old new
9595
+Conjuncts: 322
9696
+Disjuncts: 48
9797
+
98-
+CloseIDElems: 1232
99-
+NumCloseIDs: 64
98+
+CloseIDElems: 1109
99+
+NumCloseIDs: 88
100100
-- out/eval/stats --
101101
Leaks: 24
102102
Freed: 207

0 commit comments

Comments
 (0)