this repo has no description
0
fork

Configure Feed

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

Revert "internal/core/adt: carry over enclosing scope"

This reverts https://cuelang.org/cl/1214849,
as it broke two cuelang.org/docs guides as reported in #3924.

Fixes #3924.
Causes #3920 to reopen, as we are reverting the fix.

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

+251 -230
+4 -4
cue/testdata/cycle/builtins.txtar
··· 265 265 Conjuncts: 731 266 266 Disjuncts: 38 267 267 268 - CloseIDElems: 150 269 - NumCloseIDs: 191 268 + CloseIDElems: 116 269 + NumCloseIDs: 189 270 270 -- diff/-out/evalalpha/stats<==>+out/eval/stats -- 271 271 diff old new 272 272 --- old ··· 291 291 +Conjuncts: 731 292 292 +Disjuncts: 38 293 293 + 294 - +CloseIDElems: 150 295 - +NumCloseIDs: 191 294 + +CloseIDElems: 116 295 + +NumCloseIDs: 189 296 296 -- out/eval/stats -- 297 297 Leaks: 25 298 298 Freed: 446
+2 -2
cue/testdata/cycle/chain.txtar
··· 1705 1705 Conjuncts: 4994 1706 1706 Disjuncts: 1615 1707 1707 1708 - CloseIDElems: 19418 1708 + CloseIDElems: 20484 1709 1709 NumCloseIDs: 1535 1710 1710 -- diff/-out/evalalpha/stats<==>+out/eval/stats -- 1711 1711 diff old new ··· 1731 1731 +Conjuncts: 4994 1732 1732 +Disjuncts: 1615 1733 1733 + 1734 - +CloseIDElems: 19418 1734 + +CloseIDElems: 20484 1735 1735 +NumCloseIDs: 1535 1736 1736 -- out/eval/stats -- 1737 1737 Leaks: 56
+4 -4
cue/testdata/cycle/inline.txtar
··· 405 405 Conjuncts: 639 406 406 Disjuncts: 0 407 407 408 - CloseIDElems: 363 409 - NumCloseIDs: 231 408 + CloseIDElems: 329 409 + NumCloseIDs: 229 410 410 -- diff/-out/evalalpha/stats<==>+out/eval/stats -- 411 411 diff old new 412 412 --- old ··· 431 431 +Conjuncts: 639 432 432 +Disjuncts: 0 433 433 + 434 - +CloseIDElems: 363 435 - +NumCloseIDs: 231 434 + +CloseIDElems: 329 435 + +NumCloseIDs: 229 436 436 -- out/eval/stats -- 437 437 Leaks: 286 438 438 Freed: 253
+65 -42
cue/testdata/definitions/typocheck.txtar
··· 443 443 Conjuncts: 1168 444 444 Disjuncts: 34 445 445 446 - CloseIDElems: 1852 447 - NumCloseIDs: 392 446 + CloseIDElems: 1835 447 + NumCloseIDs: 391 448 448 -- diff/-out/evalalpha/stats<==>+out/eval/stats -- 449 449 diff old new 450 450 --- old ··· 469 469 +Conjuncts: 1168 470 470 +Disjuncts: 34 471 471 + 472 - +CloseIDElems: 1852 473 - +NumCloseIDs: 392 472 + +CloseIDElems: 1835 473 + +NumCloseIDs: 391 474 474 -- out/eval/stats -- 475 475 Leaks: 115 476 476 Freed: 847 ··· 508 508 ./in.cue:4:5 509 509 embed.withIndirect.err: field not allowed: 510 510 ./in.cue:87:8 511 + issue3920.out.a.b: field not allowed: 512 + ./chaineddef.cue:5:6 511 513 embed.openValidator.t2.a.b: invalid value 1 (does not satisfy matchN): 0 matched, expected 1: 512 514 ./validators.cue:21:5 513 515 ./validators.cue:21:12 ··· 517 519 Result: 518 520 (_|_){ 519 521 // [eval] 520 - issue3920: (struct){ 521 - out: (#struct){ 522 - a: (#struct){ 523 - b: (string){ "out" } 522 + issue3920: (_|_){ 523 + // [eval] 524 + out: (_|_){ 525 + // [eval] 526 + a: (_|_){ 527 + // [eval] 528 + b: (_|_){ 529 + // [eval] issue3920.out.a.b: field not allowed: 530 + // ./chaineddef.cue:5:6 531 + } 524 532 c?: (string){ string } 525 533 } 526 534 } ··· 1451 1459 diff old new 1452 1460 --- old 1453 1461 +++ new 1454 - @@ -1,81 +1,29 @@ 1462 + @@ -1,81 +1,31 @@ 1455 1463 Errors: 1456 1464 and.transitive.err.out.err: field not allowed: 1457 1465 - ./in.cue:42:5 ··· 1530 1538 - ./validators.cue:12:6 1531 1539 - ./validators.cue:17:5 1532 1540 - ./validators.cue:18:5 1541 + +issue3920.out.a.b: field not allowed: 1542 + + ./chaineddef.cue:5:6 1533 1543 embed.openValidator.t2.a.b: invalid value 1 (does not satisfy matchN): 0 matched, expected 1: 1534 1544 ./validators.cue:21:5 1535 1545 ./validators.cue:21:12 1536 - @@ -88,14 +36,12 @@ 1537 - issue3920: (struct){ 1538 - out: (#struct){ 1539 - a: (#struct){ 1546 + @@ -85,17 +35,21 @@ 1547 + Result: 1548 + (_|_){ 1549 + // [eval] 1550 + - issue3920: (struct){ 1551 + - out: (#struct){ 1552 + - a: (#struct){ 1540 1553 - c?: (string){ string } 1541 - b: (string){ "out" } 1554 + - b: (string){ "out" } 1542 1555 - } 1543 1556 - } 1544 1557 - #A: (#struct){ 1545 1558 - a?: (#struct){ 1546 1559 - c?: (string){ string } 1547 1560 - } 1561 + + issue3920: (_|_){ 1562 + + // [eval] 1563 + + out: (_|_){ 1564 + + // [eval] 1565 + + a: (_|_){ 1566 + + // [eval] 1567 + + b: (_|_){ 1568 + + // [eval] issue3920.out.a.b: field not allowed: 1569 + + // ./chaineddef.cue:5:6 1570 + + } 1548 1571 + c?: (string){ string } 1549 1572 + } 1550 1573 + } ··· 1553 1576 } 1554 1577 #B: (#struct){ 1555 1578 c?: (string){ string } 1556 - @@ -181,14 +127,11 @@ 1579 + @@ -181,14 +135,11 @@ 1557 1580 } 1558 1581 a: (_|_){ 1559 1582 // [eval] ··· 1569 1592 } 1570 1593 } 1571 1594 andInStruct: (_|_){ 1572 - @@ -198,14 +141,11 @@ 1595 + @@ -198,14 +149,11 @@ 1573 1596 } 1574 1597 a: (_|_){ 1575 1598 // [eval] ··· 1585 1608 } 1586 1609 } 1587 1610 embedDefWithEmbedding: (_|_){ 1588 - @@ -215,15 +155,11 @@ 1611 + @@ -215,15 +163,11 @@ 1589 1612 } 1590 1613 a: (_|_){ 1591 1614 // [eval] ··· 1602 1625 } 1603 1626 } 1604 1627 embedComprehension: (_|_){ 1605 - @@ -233,16 +169,11 @@ 1628 + @@ -233,16 +177,11 @@ 1606 1629 } 1607 1630 a: (_|_){ 1608 1631 // [eval] ··· 1620 1643 } 1621 1644 } 1622 1645 fieldWithAnd: (_|_){ 1623 - @@ -253,9 +184,6 @@ 1646 + @@ -253,9 +192,6 @@ 1624 1647 // [eval] 1625 1648 err: (_|_){ 1626 1649 // [eval] embed.fieldWithAnd.a.err: field not allowed: ··· 1630 1653 // ./in.cue:20:13 1631 1654 } 1632 1655 } 1633 - @@ -266,20 +194,15 @@ 1656 + @@ -266,20 +202,15 @@ 1634 1657 a: (int){ int } 1635 1658 } 1636 1659 B: (struct){ ··· 1656 1679 } 1657 1680 } 1658 1681 andEmbed: (_|_){ 1659 - @@ -295,17 +218,11 @@ 1682 + @@ -295,17 +226,11 @@ 1660 1683 } 1661 1684 d: (_|_){ 1662 1685 // [eval] ··· 1675 1698 } 1676 1699 } 1677 1700 nonDef: (struct){ 1678 - @@ -314,12 +231,12 @@ 1701 + @@ -314,12 +239,12 @@ 1679 1702 a: (string){ string } 1680 1703 } 1681 1704 #Y: (#struct){ ··· 1692 1715 } 1693 1716 } 1694 1717 } 1695 - @@ -329,12 +246,12 @@ 1718 + @@ -329,12 +254,12 @@ 1696 1719 Name: (string){ string } 1697 1720 } 1698 1721 #Step: (#struct){ ··· 1709 1732 } 1710 1733 out: (#struct){ 1711 1734 Name: (string){ "foo" } 1712 - @@ -344,21 +261,15 @@ 1735 + @@ -344,21 +269,15 @@ 1713 1736 } 1714 1737 withIndirect: (_|_){ 1715 1738 // [eval] ··· 1736 1759 } 1737 1760 normalValidator: (_|_){ 1738 1761 // [eval] 1739 - @@ -368,20 +279,17 @@ 1762 + @@ -368,20 +287,17 @@ 1740 1763 } 1741 1764 x: (_|_){ 1742 1765 // [eval] ··· 1760 1783 #X: (_){ 1761 1784 matchN(0, (#list){ 1762 1785 }) 1763 - @@ -388,17 +296,10 @@ 1786 + @@ -388,17 +304,10 @@ 1764 1787 a?: (int){ int } 1765 1788 b?: (int){ int } 1766 1789 } ··· 1782 1805 } 1783 1806 } 1784 1807 t2: (_|_){ 1785 - @@ -417,10 +318,7 @@ 1808 + @@ -417,10 +326,7 @@ 1786 1809 // [eval] 1787 1810 b: (_|_){ 1788 1811 // [eval] embed.openValidator.t2.a.b: conflicting values 1 and {b?:Y} (mismatched types int and struct): ··· 1793 1816 // ./validators.cue:24:8 1794 1817 // embed.openValidator.t2.a.b: invalid value 1 (does not satisfy matchN): 0 matched, expected 1: 1795 1818 // ./validators.cue:21:5 1796 - @@ -463,16 +361,11 @@ 1819 + @@ -463,16 +369,11 @@ 1797 1820 } 1798 1821 out: (_|_){ 1799 1822 // [eval] ··· 1811 1834 } 1812 1835 } 1813 1836 } 1814 - @@ -505,17 +398,11 @@ 1837 + @@ -505,17 +406,11 @@ 1815 1838 } 1816 1839 out: (_|_){ 1817 1840 // [eval] ··· 1830 1853 } 1831 1854 } 1832 1855 } 1833 - @@ -561,8 +448,8 @@ 1856 + @@ -561,8 +456,8 @@ 1834 1857 // ./issue3832.cue:8:16 1835 1858 } 1836 1859 outFirstName: (_|_){ ··· 1841 1864 } 1842 1865 } 1843 1866 } 1844 - @@ -572,35 +459,27 @@ 1867 + @@ -572,35 +467,27 @@ 1845 1868 }, (#struct){ 1846 1869 pass: (#struct){ 1847 1870 let self#1 = (_|_){ ··· 1887 1910 pass: (#struct){ 1888 1911 let self#1 = (#struct){ 1889 1912 firstName: (string){ "Sam" } 1890 - @@ -607,18 +486,21 @@ 1913 + @@ -607,18 +494,21 @@ 1891 1914 } 1892 1915 outFirstName: (string){ "Sam" } 1893 1916 } ··· 1921 1944 } 1922 1945 issue3833: (struct){ 1923 1946 out: (#struct){ 1924 - @@ -694,12 +576,8 @@ 1947 + @@ -694,12 +584,8 @@ 1925 1948 globalField: (string){ string } 1926 1949 } 1927 1950 #Context: (#struct){ ··· 1936 1959 } 1937 1960 out: (struct){ 1938 1961 ingress: (#struct){ 1939 - @@ -727,22 +605,22 @@ 1962 + @@ -727,22 +613,22 @@ 1940 1963 #Z: (#struct){ 1941 1964 } 1942 1965 x: (#struct){ ··· 1975 1998 z: (int){ 1 } 1976 1999 } 1977 2000 } 1978 - @@ -752,22 +630,22 @@ 2001 + @@ -752,22 +638,22 @@ 1979 2002 #Z: (#struct){ 1980 2003 } 1981 2004 x: (#struct){ ··· 2014 2037 z: (int){ 1 } 2015 2038 } 2016 2039 } 2017 - @@ -782,11 +660,7 @@ 2040 + @@ -782,11 +668,7 @@ 2018 2041 } 2019 2042 } 2020 2043 #JobConfig: (#struct){ ··· 2027 2050 job: (#struct){ 2028 2051 image: (string){ "foo:v1" } 2029 2052 vcs: (string){ "git" } 2030 - @@ -850,7 +724,7 @@ 2053 + @@ -850,7 +732,7 @@ 2031 2054 } 2032 2055 } 2033 2056 out: (#struct){ ··· 2036 2059 input: (#struct){ 2037 2060 image: (string){ "someimage" } 2038 2061 env: (string){ "FOO" } 2039 - @@ -882,11 +756,11 @@ 2062 + @@ -882,11 +764,11 @@ 2040 2063 _in: (_){ _ } 2041 2064 out: (_){ _ } 2042 2065 } ··· 2053 2076 e: (string){ "foo" } 2054 2077 f: (int){ 1 } 2055 2078 } 2056 - @@ -919,24 +793,16 @@ 2079 + @@ -919,24 +801,16 @@ 2057 2080 _in: (_){ _ } 2058 2081 out: (_){ _ } 2059 2082 } ··· 2088 2111 } 2089 2112 } 2090 2113 full: (struct){ 2091 - @@ -987,38 +853,11 @@ 2114 + @@ -987,38 +861,11 @@ 2092 2115 #Main: (#struct){ 2093 2116 namespace: (string){ string } 2094 2117 output: (_|_){ ··· 2129 2152 let base#6 = (#struct){ 2130 2153 someMsg: (string){ string } 2131 2154 obs: (#struct){ |(*(#struct){ 2132 - @@ -1061,6 +900,19 @@ 2155 + @@ -1061,6 +908,19 @@ 2133 2156 } 2134 2157 } 2135 2158 } ··· 2149 2172 } 2150 2173 } 2151 2174 out: (#struct){ 2152 - @@ -1090,17 +942,8 @@ 2175 + @@ -1090,17 +950,8 @@ 2153 2176 // ./validators.cue:32:17 2154 2177 // disjunction.withErr.t1.out.b1.b2.b3: undefined field: mayExistLater: 2155 2178 // ./validators.cue:29:22
+2 -2
cue/testdata/disjunctions/elimination.txtar
··· 2632 2632 Conjuncts: 2767 2633 2633 Disjuncts: 1290 2634 2634 2635 - CloseIDElems: 5362 2635 + CloseIDElems: 5666 2636 2636 NumCloseIDs: 317 2637 2637 -- diff/-out/evalalpha/stats<==>+out/eval/stats -- 2638 2638 diff old new ··· 2658 2658 +Conjuncts: 2767 2659 2659 +Disjuncts: 1290 2660 2660 + 2661 - +CloseIDElems: 5362 2661 + +CloseIDElems: 5666 2662 2662 +NumCloseIDs: 317 2663 2663 -- out/eval/stats -- 2664 2664 Leaks: 9
+38 -12
cue/testdata/eval/bulk.txtar
··· 410 410 } 411 411 } 412 412 out: (struct){ 413 - foo: (#struct){ |(*(#struct){ 414 - a: (int){ 1 } 415 - b: (int){ 2 } 416 - }, (#struct){ 417 - a: (int){ 1 } 418 - }) } 413 + foo: (#struct){ 414 + a: (int){ 1 } 415 + } 419 416 } 420 417 #x: (#struct){ |(*(#struct){ 421 418 b: (int){ 2 } ··· 432 429 } 433 430 } 434 431 out: (struct){ 435 - foo: (#struct){ |(*(#struct){ 436 - a: (int){ 1 } 437 - b: (int){ 2 } 438 - }, (#struct){ 439 - a: (int){ 1 } 440 - }) } 432 + foo: (#struct){ 433 + a: (int){ 1 } 434 + } 441 435 } 442 436 #x: (#struct){ |(*(#struct){ 443 437 b: (int){ 2 } ··· 797 791 } 798 792 } 799 793 reduced: (struct){ 794 + @@ -310,12 +219,9 @@ 795 + } 796 + } 797 + out: (struct){ 798 + - foo: (#struct){ |(*(#struct){ 799 + - a: (int){ 1 } 800 + - b: (int){ 2 } 801 + - }, (#struct){ 802 + - a: (int){ 1 } 803 + - }) } 804 + + foo: (#struct){ 805 + + a: (int){ 1 } 806 + + } 807 + } 808 + #x: (#struct){ |(*(#struct){ 809 + b: (int){ 2 } 810 + @@ -332,12 +238,9 @@ 811 + } 812 + } 813 + out: (struct){ 814 + - foo: (#struct){ |(*(#struct){ 815 + - a: (int){ 1 } 816 + - b: (int){ 2 } 817 + - }, (#struct){ 818 + - a: (int){ 1 } 819 + - }) } 820 + + foo: (#struct){ 821 + + a: (int){ 1 } 822 + + } 823 + } 824 + #x: (#struct){ |(*(#struct){ 825 + b: (int){ 2 } 800 826 -- diff/todo/p3 -- 801 827 Reordering of error messages. 802 828 -- diff/explanation --
+130 -144
cue/testdata/eval/closedness.txtar
··· 741 741 } 742 742 743 743 -- out/evalalpha/stats -- 744 - Leaks: 994 744 + Leaks: 989 745 745 Freed: 0 746 746 Reused: 0 747 - Allocs: 994 747 + Allocs: 989 748 748 Retain: 0 749 749 750 - Unifications: 966 751 - Conjuncts: 2073 750 + Unifications: 960 751 + Conjuncts: 2064 752 752 Disjuncts: 2 753 753 754 - CloseIDElems: 4949 755 - NumCloseIDs: 708 754 + CloseIDElems: 4777 755 + NumCloseIDs: 699 756 756 -- diff/-out/evalalpha/stats<==>+out/eval/stats -- 757 757 diff old new 758 758 --- old ··· 767 767 -Unifications: 843 768 768 -Conjuncts: 2097 769 769 -Disjuncts: 918 770 - +Leaks: 994 770 + +Leaks: 989 771 771 +Freed: 0 772 772 +Reused: 0 773 - +Allocs: 994 773 + +Allocs: 989 774 774 +Retain: 0 775 775 + 776 - +Unifications: 966 777 - +Conjuncts: 2073 776 + +Unifications: 960 777 + +Conjuncts: 2064 778 778 +Disjuncts: 2 779 779 + 780 - +CloseIDElems: 4949 781 - +NumCloseIDs: 708 780 + +CloseIDElems: 4777 781 + +NumCloseIDs: 699 782 782 -- out/eval/stats -- 783 783 Leaks: 21 784 784 Freed: 828 ··· 2984 2984 ./embed.cue:390:8 2985 2985 issue3778.full.z.b: field not allowed: 2986 2986 ./ellipsis.cue:6:3 2987 + issue3924.one.out.foo.disallowed: field not allowed: 2988 + ./ellipsis.cue:46:23 2987 2989 issue852.a.Foo: field not allowed: 2988 2990 ./in.cue:28:5 2989 2991 nested.err1.x.#V.c.d: field not allowed: ··· 3056 3058 ./embed.cue:197:10 3057 3059 patterns.shallow.single.err.j: field not allowed: 3058 3060 ./embed.cue:38:8 3061 + issue3924.two.out.foo.disallowed: field not allowed: 3062 + ./ellipsis.cue:52:9 3063 + ./ellipsis.cue:59:23 3059 3064 3060 3065 Result: 3061 3066 (_|_){ ··· 3137 3142 } 3138 3143 } 3139 3144 } 3140 - issue3924: (struct){ 3141 - one: (struct){ 3145 + issue3924: (_|_){ 3146 + // [eval] 3147 + one: (_|_){ 3148 + // [eval] 3142 3149 #Schema: (#struct){ 3143 3150 } 3144 3151 #SchemaInner: (#struct){ 3145 3152 allowed?: (string){ string } 3146 3153 } 3147 - out: (#struct){ 3148 - foo: (#struct){ 3149 - disallowed: (string){ "foo" } 3154 + out: (_|_){ 3155 + // [eval] 3156 + foo: (_|_){ 3157 + // [eval] 3158 + disallowed: (_|_){ 3159 + // [eval] issue3924.one.out.foo.disallowed: field not allowed: 3160 + // ./ellipsis.cue:46:23 3161 + } 3150 3162 allowed?: (string){ string } 3151 3163 } 3152 3164 } 3153 3165 } 3154 - two: (struct){ 3166 + two: (_|_){ 3167 + // [eval] 3155 3168 #Schema: (#struct){ 3156 3169 #job: (#struct){ 3157 3170 allowed?: (string){ string } 3158 3171 } 3159 3172 } 3160 - out: (#struct){ 3161 - foo: (#struct){ 3162 - disallowed: (string){ "bar" } 3173 + out: (_|_){ 3174 + // [eval] 3175 + foo: (_|_){ 3176 + // [eval] issue3924.two.out.foo.disallowed: field not allowed: 3177 + // ./ellipsis.cue:52:9 3178 + // ./ellipsis.cue:59:23 3179 + disallowed: (_|_){ 3180 + // [eval] issue3924.two.out.foo.disallowed: field not allowed: 3181 + // ./ellipsis.cue:52:9 3182 + // ./ellipsis.cue:59:23 3183 + } 3163 3184 allowed?: (string){ string } 3164 3185 } 3165 3186 #job: (#struct){ ··· 4504 4525 diff old new 4505 4526 --- old 4506 4527 +++ new 4507 - @@ -1,350 +1,90 @@ 4528 + @@ -1,349 +1,94 @@ 4508 4529 Errors: 4509 4530 a.q.e: field not allowed: 4510 4531 - ./in.cue:1:5 ··· 4544 4565 - ./ellipsis.cue:3:13 4545 4566 - ./ellipsis.cue:4:5 4546 4567 ./ellipsis.cue:6:3 4547 - -issue3924.one.out.foo.disallowed: field not allowed: 4568 + issue3924.one.out.foo.disallowed: field not allowed: 4548 4569 - ./ellipsis.cue:42:3 4549 4570 - ./ellipsis.cue:42:14 4550 4571 - ./ellipsis.cue:44:16 4551 4572 - ./ellipsis.cue:46:7 4552 - - ./ellipsis.cue:46:23 4573 + ./ellipsis.cue:46:23 4553 4574 issue852.a.Foo: field not allowed: 4554 4575 - ./in.cue:22:6 4555 4576 - ./in.cue:26:5 ··· 4858 4879 - ./ellipsis.cue:50:14 4859 4880 - ./ellipsis.cue:52:16 4860 4881 - ./ellipsis.cue:59:23 4861 - -issue3924.two.out.foo.disallowed: field not allowed: 4862 - - ./ellipsis.cue:52:9 4882 + issue3924.two.out.foo.disallowed: field not allowed: 4883 + ./ellipsis.cue:52:9 4863 4884 - ./ellipsis.cue:50:3 4864 4885 - ./ellipsis.cue:50:14 4865 4886 - ./ellipsis.cue:55:15 4866 4887 - ./ellipsis.cue:59:7 4867 - - ./ellipsis.cue:59:23 4888 + ./ellipsis.cue:59:23 4868 4889 4869 4890 Result: 4870 - (_|_){ 4871 - @@ -364,10 +104,6 @@ 4891 + @@ -364,10 +109,6 @@ 4872 4892 a: (string){ "ok" } 4873 4893 b: (_|_){ 4874 4894 // [eval] issue3778.full.z.b: field not allowed: ··· 4879 4899 // ./ellipsis.cue:6:3 4880 4900 } 4881 4901 } 4882 - @@ -395,9 +131,6 @@ 4902 + @@ -395,9 +136,6 @@ 4883 4903 // [eval] 4884 4904 foo: (_|_){ 4885 4905 // [eval] issue1867.one.x.foo: field not allowed: ··· 4889 4909 // ./ellipsis.cue:23:5 4890 4910 } 4891 4911 } 4892 - @@ -414,10 +147,6 @@ 4912 + @@ -414,10 +152,6 @@ 4893 4913 // [eval] 4894 4914 foo: (_|_){ 4895 4915 // [eval] issue1867.two.x.foo: field not allowed: ··· 4900 4920 // ./ellipsis.cue:30:5 4901 4921 } 4902 4922 } 4903 - @@ -432,73 +161,37 @@ 4923 + @@ -432,9 +166,6 @@ 4904 4924 // [eval] 4905 4925 foo: (_|_){ 4906 4926 // [eval] issue1867.three.x.foo: field not allowed: ··· 4910 4930 // ./ellipsis.cue:37:5 4911 4931 } 4912 4932 } 4913 - } 4914 - } 4915 - - issue3924: (_|_){ 4916 - - // [eval] 4917 - - one: (_|_){ 4918 - - // [eval] 4919 - + issue3924: (struct){ 4920 - + one: (struct){ 4921 - #Schema: (#struct){ 4922 - } 4923 - #SchemaInner: (#struct){ 4924 - allowed?: (string){ string } 4925 - } 4926 - - out: (_|_){ 4927 - - // [eval] 4928 - - foo: (_|_){ 4929 - - // [eval] 4930 - - disallowed: (_|_){ 4931 - - // [eval] issue3924.one.out.foo.disallowed: field not allowed: 4933 + @@ -455,10 +186,6 @@ 4934 + // [eval] 4935 + disallowed: (_|_){ 4936 + // [eval] issue3924.one.out.foo.disallowed: field not allowed: 4932 4937 - // ./ellipsis.cue:42:3 4933 4938 - // ./ellipsis.cue:42:14 4934 4939 - // ./ellipsis.cue:44:16 4935 4940 - // ./ellipsis.cue:46:7 4936 - - // ./ellipsis.cue:46:23 4937 - - } 4938 - - allowed?: (string){ string } 4939 - - } 4940 - - } 4941 - - } 4942 - - two: (_|_){ 4943 - - // [eval] 4944 - - #Schema: (#struct){ 4945 - - #job: (#struct){ 4946 - - allowed?: (string){ string } 4947 - - } 4948 - - } 4949 - - out: (_|_){ 4950 - - // [eval] 4941 + // ./ellipsis.cue:46:23 4942 + } 4943 + allowed?: (string){ string } 4944 + @@ -474,33 +201,20 @@ 4945 + } 4946 + out: (_|_){ 4947 + // [eval] 4951 4948 - #job: (#struct){ 4952 4949 - allowed?: (string){ string } 4953 4950 - } ··· 4963 4960 - // ./ellipsis.cue:50:14 4964 4961 - // ./ellipsis.cue:55:15 4965 4962 - // ./ellipsis.cue:59:7 4966 - - // ./ellipsis.cue:59:23 4967 - - disallowed: (_|_){ 4968 - - // [eval] issue3924.two.out.foo.disallowed: field not allowed: 4969 - - // ./ellipsis.cue:52:9 4963 + + foo: (_|_){ 4964 + + // [eval] issue3924.two.out.foo.disallowed: field not allowed: 4965 + + // ./ellipsis.cue:52:9 4966 + // ./ellipsis.cue:59:23 4967 + disallowed: (_|_){ 4968 + // [eval] issue3924.two.out.foo.disallowed: field not allowed: 4969 + // ./ellipsis.cue:52:9 4970 4970 - // ./ellipsis.cue:50:3 4971 4971 - // ./ellipsis.cue:50:14 4972 4972 - // ./ellipsis.cue:55:15 4973 4973 - // ./ellipsis.cue:59:7 4974 - - // ./ellipsis.cue:59:23 4975 - - } 4976 - + out: (#struct){ 4977 - + foo: (#struct){ 4978 - + disallowed: (string){ "foo" } 4979 - + allowed?: (string){ string } 4980 - + } 4981 - + } 4982 - + } 4983 - + two: (struct){ 4984 - + #Schema: (#struct){ 4974 + // ./ellipsis.cue:59:23 4975 + } 4976 + allowed?: (string){ string } 4977 + } 4985 4978 + #job: (#struct){ 4986 4979 + allowed?: (string){ string } 4987 4980 + } 4988 - + } 4989 - + out: (#struct){ 4990 - + foo: (#struct){ 4991 - + disallowed: (string){ "bar" } 4992 - + allowed?: (string){ string } 4993 - + } 4994 - + #job: (#struct){ 4995 - allowed?: (string){ string } 4996 - } 4997 4981 } 4998 - @@ -515,13 +208,13 @@ 4982 + } 4983 + } 4984 + @@ -515,13 +229,13 @@ 4999 4985 } 5000 4986 } 5001 4987 #Extended: (#struct){ ··· 5016 5002 } 5017 5003 broken: (#struct){ 5018 5004 name: (string){ "base" } 5019 - @@ -533,13 +226,13 @@ 5005 + @@ -533,13 +247,13 @@ 5020 5006 } 5021 5007 } 5022 5008 works: (#struct){ ··· 5037 5023 } 5038 5024 } 5039 5025 } 5040 - @@ -563,9 +256,6 @@ 5026 + @@ -563,9 +277,6 @@ 5041 5027 // [eval] 5042 5028 j: (_|_){ 5043 5029 // [eval] patterns.shallow.single.err.j: field not allowed: ··· 5047 5033 // ./embed.cue:38:8 5048 5034 } 5049 5035 } 5050 - @@ -583,11 +273,7 @@ 5036 + @@ -583,11 +294,7 @@ 5051 5037 // [eval] 5052 5038 j: (_|_){ 5053 5039 // [eval] patterns.shallow.and.p1.err.j: field not allowed: ··· 5060 5046 // ./embed.cue:48:8 5061 5047 } 5062 5048 } 5063 - @@ -603,11 +289,7 @@ 5049 + @@ -603,11 +310,7 @@ 5064 5050 // [eval] 5065 5051 j: (_|_){ 5066 5052 // [eval] patterns.shallow.and.p2.err.j: field not allowed: ··· 5073 5059 // ./embed.cue:57:8 5074 5060 } 5075 5061 } 5076 - @@ -626,12 +308,7 @@ 5062 + @@ -626,12 +329,7 @@ 5077 5063 // [eval] 5078 5064 j: (_|_){ 5079 5065 // [eval] patterns.shallow.andEmbed.p1.err.j: field not allowed: ··· 5087 5073 // ./embed.cue:67:8 5088 5074 } 5089 5075 } 5090 - @@ -647,12 +324,7 @@ 5076 + @@ -647,12 +345,7 @@ 5091 5077 // [eval] 5092 5078 j: (_|_){ 5093 5079 // [eval] patterns.shallow.andEmbed.p2.err.j: field not allowed: ··· 5101 5087 // ./embed.cue:76:8 5102 5088 } 5103 5089 } 5104 - @@ -683,81 +355,34 @@ 5090 + @@ -683,81 +376,34 @@ 5105 5091 } 5106 5092 } 5107 5093 } ··· 5211 5197 } 5212 5198 ok1: (#struct){ 5213 5199 k: (int){ 3 } 5214 - @@ -781,10 +406,6 @@ 5200 + @@ -781,10 +427,6 @@ 5215 5201 // [eval] 5216 5202 j: (_|_){ 5217 5203 // [eval] patterns.shallow.indirect.p1.err1.j: field not allowed: ··· 5222 5208 // ./embed.cue:152:10 5223 5209 } 5224 5210 } 5225 - @@ -792,10 +413,6 @@ 5211 + @@ -792,10 +434,6 @@ 5226 5212 // [eval] 5227 5213 j: (_|_){ 5228 5214 // [eval] patterns.shallow.indirect.p1.err2.j: field not allowed: ··· 5233 5219 // ./embed.cue:155:10 5234 5220 } 5235 5221 } 5236 - @@ -813,10 +430,6 @@ 5222 + @@ -813,10 +451,6 @@ 5237 5223 // [eval] 5238 5224 j: (_|_){ 5239 5225 // [eval] patterns.shallow.indirect.p2.err1.j: field not allowed: ··· 5244 5230 // ./embed.cue:166:10 5245 5231 } 5246 5232 } 5247 - @@ -824,10 +437,6 @@ 5233 + @@ -824,10 +458,6 @@ 5248 5234 // [eval] 5249 5235 j: (_|_){ 5250 5236 // [eval] patterns.shallow.indirect.p2.err2.j: field not allowed: ··· 5255 5241 // ./embed.cue:169:10 5256 5242 } 5257 5243 } 5258 - @@ -843,10 +452,6 @@ 5244 + @@ -843,10 +473,6 @@ 5259 5245 // [eval] 5260 5246 j: (_|_){ 5261 5247 // [eval] patterns.shallow.indirect.p3.err1.j: field not allowed: ··· 5266 5252 // ./embed.cue:179:10 5267 5253 } 5268 5254 } 5269 - @@ -854,10 +459,6 @@ 5255 + @@ -854,10 +480,6 @@ 5270 5256 // [eval] 5271 5257 j: (_|_){ 5272 5258 // [eval] patterns.shallow.indirect.p3.err2.j: field not allowed: ··· 5277 5263 // ./embed.cue:182:10 5278 5264 } 5279 5265 } 5280 - @@ -875,10 +476,6 @@ 5266 + @@ -875,10 +497,6 @@ 5281 5267 // [eval] 5282 5268 j: (_|_){ 5283 5269 // [eval] patterns.shallow.indirect.p4.err1.j: field not allowed: ··· 5288 5274 // ./embed.cue:194:10 5289 5275 } 5290 5276 } 5291 - @@ -886,10 +483,6 @@ 5277 + @@ -886,10 +504,6 @@ 5292 5278 // [eval] 5293 5279 j: (_|_){ 5294 5280 // [eval] patterns.shallow.indirect.p4.err2.j: field not allowed: ··· 5299 5285 // ./embed.cue:197:10 5300 5286 } 5301 5287 } 5302 - @@ -927,12 +520,7 @@ 5288 + @@ -927,12 +541,7 @@ 5303 5289 } 5304 5290 single: (_|_){ 5305 5291 // [eval] ··· 5313 5299 err: (_|_){ 5314 5300 // [eval] 5315 5301 x: (_|_){ 5316 - @@ -941,9 +529,6 @@ 5302 + @@ -941,9 +550,6 @@ 5317 5303 // [eval] 5318 5304 j: (_|_){ 5319 5305 // [eval] patterns.nested.single.err.x.y.j: field not allowed: ··· 5323 5309 // ./embed.cue:214:14 5324 5310 } 5325 5311 } 5326 - @@ -975,11 +560,7 @@ 5312 + @@ -975,11 +581,7 @@ 5327 5313 // [eval] 5328 5314 j: (_|_){ 5329 5315 // [eval] patterns.nested.and.p1.err.x.y.j: field not allowed: ··· 5336 5322 // ./embed.cue:224:14 5337 5323 } 5338 5324 } 5339 - @@ -1009,11 +590,7 @@ 5325 + @@ -1009,11 +611,7 @@ 5340 5326 // [eval] 5341 5327 j: (_|_){ 5342 5328 // [eval] patterns.nested.and.p2.err.x.y.j: field not allowed: ··· 5349 5335 // ./embed.cue:233:14 5350 5336 } 5351 5337 } 5352 - @@ -1046,11 +623,7 @@ 5338 + @@ -1046,11 +644,7 @@ 5353 5339 // [eval] 5354 5340 j: (_|_){ 5355 5341 // [eval] patterns.nested.andEmbed.p1.err.x.y.j: field not allowed: ··· 5362 5348 // ./embed.cue:243:14 5363 5349 } 5364 5350 } 5365 - @@ -1080,11 +653,7 @@ 5351 + @@ -1080,11 +674,7 @@ 5366 5352 // [eval] 5367 5353 j: (_|_){ 5368 5354 // [eval] patterns.nested.andEmbed.p2.err.x.y.j: field not allowed: ··· 5375 5361 // ./embed.cue:252:14 5376 5362 } 5377 5363 } 5378 - @@ -1145,143 +714,78 @@ 5364 + @@ -1145,143 +735,78 @@ 5379 5365 } 5380 5366 } 5381 5367 } ··· 5591 5577 } 5592 5578 } 5593 5579 } 5594 - @@ -1303,12 +807,7 @@ 5580 + @@ -1303,12 +828,7 @@ 5595 5581 } 5596 5582 p1: (_|_){ 5597 5583 // [eval] ··· 5605 5591 err1: (_|_){ 5606 5592 // [eval] 5607 5593 x: (_|_){ 5608 - @@ -1317,10 +816,6 @@ 5594 + @@ -1317,10 +837,6 @@ 5609 5595 // [eval] 5610 5596 j: (_|_){ 5611 5597 // [eval] patterns.nested.indirect.p1.err1.x.y.j: field not allowed: ··· 5616 5602 // ./embed.cue:328:16 5617 5603 } 5618 5604 } 5619 - @@ -1334,10 +829,6 @@ 5605 + @@ -1334,10 +850,6 @@ 5620 5606 // [eval] 5621 5607 j: (_|_){ 5622 5608 // [eval] patterns.nested.indirect.p1.err2.x.y.j: field not allowed: ··· 5627 5613 // ./embed.cue:331:16 5628 5614 } 5629 5615 } 5630 - @@ -1359,12 +850,7 @@ 5616 + @@ -1359,12 +871,7 @@ 5631 5617 } 5632 5618 } 5633 5619 } ··· 5641 5627 err1: (_|_){ 5642 5628 // [eval] 5643 5629 x: (_|_){ 5644 - @@ -1373,10 +859,6 @@ 5630 + @@ -1373,10 +880,6 @@ 5645 5631 // [eval] 5646 5632 j: (_|_){ 5647 5633 // [eval] patterns.nested.indirect.p2.err1.x.y.j: field not allowed: ··· 5652 5638 // ./embed.cue:342:16 5653 5639 } 5654 5640 } 5655 - @@ -1390,10 +872,6 @@ 5641 + @@ -1390,10 +893,6 @@ 5656 5642 // [eval] 5657 5643 j: (_|_){ 5658 5644 // [eval] patterns.nested.indirect.p2.err2.x.y.j: field not allowed: ··· 5663 5649 // ./embed.cue:345:16 5664 5650 } 5665 5651 } 5666 - @@ -1423,10 +901,6 @@ 5652 + @@ -1423,10 +922,6 @@ 5667 5653 // [eval] 5668 5654 j: (_|_){ 5669 5655 // [eval] patterns.nested.indirect.p3.err1.x.y.j: field not allowed: ··· 5674 5660 // ./embed.cue:355:16 5675 5661 } 5676 5662 } 5677 - @@ -1440,10 +914,6 @@ 5663 + @@ -1440,10 +935,6 @@ 5678 5664 // [eval] 5679 5665 j: (_|_){ 5680 5666 // [eval] patterns.nested.indirect.p3.err2.x.y.j: field not allowed: ··· 5685 5671 // ./embed.cue:358:16 5686 5672 } 5687 5673 } 5688 - @@ -1479,10 +949,6 @@ 5674 + @@ -1479,10 +970,6 @@ 5689 5675 // [eval] 5690 5676 j: (_|_){ 5691 5677 // [eval] patterns.nested.indirect.p4.err1.x.y.j: field not allowed: ··· 5696 5682 // ./embed.cue:370:16 5697 5683 } 5698 5684 } 5699 - @@ -1496,10 +962,6 @@ 5685 + @@ -1496,10 +983,6 @@ 5700 5686 // [eval] 5701 5687 j: (_|_){ 5702 5688 // [eval] patterns.nested.indirect.p4.err2.x.y.j: field not allowed: ··· 5707 5693 // ./embed.cue:373:16 5708 5694 } 5709 5695 } 5710 - @@ -1516,7 +978,8 @@ 5696 + @@ -1516,7 +999,8 @@ 5711 5697 } 5712 5698 } 5713 5699 } ··· 5717 5703 #close: (#struct){ 5718 5704 } 5719 5705 a: (#struct){ 5720 - @@ -1524,10 +987,15 @@ 5706 + @@ -1524,10 +1008,15 @@ 5721 5707 q: (int){ 2 } 5722 5708 } 5723 5709 } ··· 5737 5723 } 5738 5724 } 5739 5725 } 5740 - @@ -1537,8 +1005,8 @@ 5726 + @@ -1537,8 +1026,8 @@ 5741 5727 #A: (#struct){ 5742 5728 b: (int){ int } 5743 5729 q: (#struct){ ··· 5747 5733 } 5748 5734 } 5749 5735 a: (_|_){ 5750 - @@ -1547,21 +1015,15 @@ 5736 + @@ -1547,21 +1036,15 @@ 5751 5737 q: (_|_){ 5752 5738 // [eval] 5753 5739 c: (int){ 2 } ··· 5770 5756 // ./in.cue:28:5 5771 5757 #A: (#struct){ 5772 5758 } 5773 - @@ -1569,8 +1031,6 @@ 5759 + @@ -1569,8 +1052,6 @@ 5774 5760 // [eval] 5775 5761 Foo: (_|_){ 5776 5762 // [eval] issue852.a.Foo: field not allowed: ··· 5779 5765 // ./in.cue:28:5 5780 5766 } 5781 5767 } 5782 - @@ -1581,8 +1041,8 @@ 5768 + @@ -1581,8 +1062,8 @@ 5783 5769 foo: (int){ int } 5784 5770 } 5785 5771 d: (#struct){ ··· 5789 5775 } 5790 5776 } 5791 5777 issue3330: (struct){ 5792 - @@ -1596,13 +1056,7 @@ 5778 + @@ -1596,13 +1077,7 @@ 5793 5779 } 5794 5780 } 5795 5781 out: (#list){ ··· 5804 5790 } 5805 5791 } 5806 5792 } 5807 - @@ -1631,13 +1085,7 @@ 5793 + @@ -1631,13 +1106,7 @@ 5808 5794 g: (#struct){ 5809 5795 } 5810 5796 } ··· 5819 5805 out2: (#struct){ 5820 5806 field: (#struct){ 5821 5807 n: (int){ 3 } 5822 - @@ -1658,13 +1106,7 @@ 5808 + @@ -1658,13 +1127,7 @@ 5823 5809 d: (int){ 1 } 5824 5810 } 5825 5811 } ··· 5834 5820 } 5835 5821 } 5836 5822 variant1: (struct){ 5837 - @@ -1677,13 +1119,7 @@ 5823 + @@ -1677,13 +1140,7 @@ 5838 5824 } 5839 5825 } 5840 5826 0: (#list){ ··· 5849 5835 } 5850 5836 } 5851 5837 } 5852 - @@ -1699,10 +1135,7 @@ 5838 + @@ -1699,10 +1156,7 @@ 5853 5839 c: (int){ 2 } 5854 5840 } 5855 5841 } ··· 5861 5847 } 5862 5848 #x: (#struct){ 5863 5849 a: (#struct){ 5864 - @@ -1714,22 +1147,11 @@ 5850 + @@ -1714,22 +1168,11 @@ 5865 5851 c: (int){ 2 } 5866 5852 } 5867 5853 } ··· 5887 5873 } 5888 5874 } 5889 5875 } 5890 - @@ -1746,22 +1168,16 @@ 5876 + @@ -1746,22 +1189,16 @@ 5891 5877 } 5892 5878 Y: (_|_){ 5893 5879 // [eval] ··· 5915 5901 } 5916 5902 } 5917 5903 #X: (#struct){ 5918 - @@ -1781,25 +1197,11 @@ 5904 + @@ -1781,25 +1218,11 @@ 5919 5905 } 5920 5906 } 5921 5907 } ··· 5946 5932 #A: (#struct){ 5947 5933 d: (#struct){ 5948 5934 e: (int){ int } 5949 - @@ -1824,69 +1226,27 @@ 5935 + @@ -1824,69 +1247,27 @@ 5950 5936 // [eval] 5951 5937 f: (_|_){ 5952 5938 // [eval] nested.err1.x.b.f: field not allowed: ··· 6028 6014 } 6029 6015 } 6030 6016 } 6031 - @@ -1894,16 +1254,11 @@ 6017 + @@ -1894,16 +1275,11 @@ 6032 6018 b: (#struct){ 6033 6019 f: (int){ 1 } 6034 6020 } ··· 6048 6034 } 6049 6035 } 6050 6036 } 6051 - @@ -1926,14 +1281,12 @@ 6037 + @@ -1926,14 +1302,12 @@ 6052 6038 // [eval] 6053 6039 g: (_|_){ 6054 6040 // [eval] nested.err2.x.b.g: field not allowed: ··· 6064 6050 } 6065 6051 } 6066 6052 } 6067 - @@ -1946,11 +1299,11 @@ 6053 + @@ -1946,11 +1320,11 @@ 6068 6054 } 6069 6055 } 6070 6056 } ··· 6078 6064 name: (string){ "a" } 6079 6065 age2: (int){ 5 } 6080 6066 } 6081 - @@ -2097,20 +1450,20 @@ 6067 + @@ -2097,20 +1471,20 @@ 6082 6068 } 6083 6069 } 6084 6070 original: (struct){ ··· 6108 6094 c: (string){ "v1" } 6109 6095 } 6110 6096 } 6111 - @@ -2134,8 +1487,8 @@ 6097 + @@ -2134,8 +1508,8 @@ 6112 6098 empty: (#struct){ 6113 6099 } 6114 6100 } ··· 6119 6105 c: (string){ "v1" } 6120 6106 } 6121 6107 } 6122 - @@ -2152,13 +1505,13 @@ 6108 + @@ -2152,13 +1526,13 @@ 6123 6109 empty: (#struct){ 6124 6110 } 6125 6111 }
+4 -4
cue/testdata/eval/issue3672.txtar
··· 310 310 Conjuncts: 2667 311 311 Disjuncts: 637 312 312 313 - CloseIDElems: 10259 314 - NumCloseIDs: 753 313 + CloseIDElems: 9461 314 + NumCloseIDs: 717 315 315 -- diff/-out/evalalpha/stats<==>+out/eval/stats -- 316 316 diff old new 317 317 --- old ··· 336 336 +Conjuncts: 2667 337 337 +Disjuncts: 637 338 338 + 339 - +CloseIDElems: 10259 340 - +NumCloseIDs: 753 339 + +CloseIDElems: 9461 340 + +NumCloseIDs: 717 341 341 -- out/eval/stats -- 342 342 Leaks: 245 343 343 Freed: 446592
+2 -2
cue/testdata/export/030.txtar
··· 63 63 Disjuncts: 10 64 64 65 65 CloseIDElems: 0 66 - NumCloseIDs: 7 66 + NumCloseIDs: 4 67 67 -- diff/-out/evalalpha/stats<==>+out/eval/stats -- 68 68 diff old new 69 69 --- old ··· 89 89 +Disjuncts: 10 90 90 + 91 91 +CloseIDElems: 0 92 - +NumCloseIDs: 7 92 + +NumCloseIDs: 4 93 93 -- out/eval/stats -- 94 94 Leaks: 0 95 95 Freed: 70
-1
internal/core/adt/closed.go
··· 107 107 // defID is a unique ID to track anything that gets inserted from this 108 108 // Conjunct. 109 109 defID defID 110 - parentEmbed defID // Allow restoring enclosingEmbed. 111 110 enclosingEmbed defID // Tracks an embedding within a struct. 112 111 outerID defID // Tracks the {} that should be closed after unifying. 113 112
-7
internal/core/adt/conjunct.go
··· 83 83 // NOTE: do not unshare: a conjunction could still allow structure 84 84 // sharing, such as in the case of `ref & ref`. 85 85 if x.Op == AndOp { 86 - // HACK: if we have an explicit conjunction, we will force this 87 - // intersection and override the disabling of closedness as a result 88 - // of an embedding. 89 - // TODO(#A...): this will no longer be necessary once we have 90 - // opening, instead of embedding. 91 - id.parentEmbed = 0 92 86 n.scheduleConjunct(MakeConjunct(env, x.X, id), id) 93 87 n.scheduleConjunct(MakeConjunct(env, x.Y, id), id) 94 88 return ··· 219 213 // When inserting a replace that is a definition, flip the ignore. 220 214 if hasEmbed { 221 215 ci = n.splitStruct(s, ci) 222 - ci.parentEmbed = 0 223 216 } 224 217 225 218 // First add fixed fields and schedule expressions.
-6
internal/core/adt/typocheck.go
··· 318 318 dstID := defID(0) 319 319 for _, x := range n.reqDefIDs { 320 320 if x.v == v { 321 - id.parentEmbed = 0 // Reset embedding passing down on schema reuse. 322 321 dstID = x.id 323 322 break 324 323 } 325 - } 326 - 327 - if id.parentEmbed != 0 { 328 - id.enclosingEmbed = id.parentEmbed 329 324 } 330 325 331 326 if dstID == 0 || id.enclosingEmbed != 0 { ··· 422 417 423 418 id, dstID := n.newGroup(id, false) 424 419 id.enclosingEmbed = dstID 425 - id.parentEmbed = dstID 426 420 427 421 return id 428 422 }