this repo has no description
0
fork

Configure Feed

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

cue: add another test for a disjunction bug fixed in evalv3

The old evaluator incorrectly errors, but the new one doesn't.

While here, namespace the fields of the recently added issue1417.cue,
which I forgot to do, and makes the file consistent with the others.

Closes #3149.

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

+271 -108
+271 -108
cue/testdata/disjunctions/elimination.txtar
··· 487 487 } 488 488 } 489 489 -- issue1417.cue -- 490 - #ID: !~"^a" | =~"^ab$" | =~"^aB$" 491 - #ID: =~"^a" | !~"[A-Z]" 492 - ids: [...#ID] & ["xyz", "ab", "aB"] 490 + issue1417: { 491 + #ID: !~"^a" | =~"^ab$" | =~"^aB$" 492 + #ID: =~"^a" | !~"[A-Z]" 493 + ids: [...#ID] & ["xyz", "ab", "aB"] 494 + } 495 + -- issue3149.cue -- 496 + issue3149: { 497 + #valid: { 498 + name!: ( (=~"^Foo") | "an exception") & ( (=~"Foo$") | "an exception") 499 + } 500 + list: [...#valid] 501 + list: [ 502 + {name: "FooBarFoo"}, 503 + {name: "FooBazFoo"}, 504 + {name: "FooQuuxFoo"}, 505 + {name: "an exception"}, 506 + ] 507 + } 493 508 -- out/evalalpha -- 494 509 (struct){ 495 510 disambiguateClosed: (struct){ ··· 913 928 } 914 929 } 915 930 } 916 - #ID: (string){ |((string){ &(!~"^a", =~"^a") }, (string){ &(!~"^a", !~"[A-Z]") }, (string){ &(=~"^ab$", =~"^a") }, (string){ &(=~"^ab$", !~"[A-Z]") }, (string){ &(=~"^aB$", =~"^a") }, (string){ &(=~"^aB$", !~"[A-Z]") }) } 917 - ids: (#list){ 918 - 0: (string){ "xyz" } 919 - 1: (string){ "ab" } 920 - 2: (string){ "aB" } 931 + issue1417: (struct){ 932 + #ID: (string){ |((string){ &(!~"^a", =~"^a") }, (string){ &(!~"^a", !~"[A-Z]") }, (string){ &(=~"^ab$", =~"^a") }, (string){ &(=~"^ab$", !~"[A-Z]") }, (string){ &(=~"^aB$", =~"^a") }, (string){ &(=~"^aB$", !~"[A-Z]") }) } 933 + ids: (#list){ 934 + 0: (string){ "xyz" } 935 + 1: (string){ "ab" } 936 + 2: (string){ "aB" } 937 + } 921 938 } 922 939 issue2209: (struct){ 923 940 simplified: (struct){ ··· 1405 1422 } 1406 1423 } 1407 1424 } 1425 + issue3149: (struct){ 1426 + #valid: (#struct){ 1427 + name!: (string){ |((string){ &(=~"^Foo", =~"Foo$") }, (string){ "an exception" }) } 1428 + } 1429 + list: (#list){ 1430 + 0: (#struct){ 1431 + name: (string){ "FooBarFoo" } 1432 + } 1433 + 1: (#struct){ 1434 + name: (string){ "FooBazFoo" } 1435 + } 1436 + 2: (#struct){ 1437 + name: (string){ "FooQuuxFoo" } 1438 + } 1439 + 3: (#struct){ 1440 + name: (string){ "an exception" } 1441 + } 1442 + } 1443 + } 1408 1444 } 1409 1445 -- diff/-out/evalalpha<==>+out/eval -- 1410 1446 diff old new 1411 1447 --- old 1412 1448 +++ new 1413 - @@ -1,49 +1,4 @@ 1449 + @@ -1,58 +1,4 @@ 1414 1450 -Errors: 1415 - -ids.2: 2 errors in empty disjunction: 1451 + -issue1417.ids.2: 2 errors in empty disjunction: 1416 1452 -issue2209.full.Bar.resource.spec: 6 errors in empty disjunction: 1417 1453 -issue2209.full.Bar.resource.spec.minBar: 2 errors in empty disjunction: 1418 1454 -issue2209.full.Bar.resource.spec.minBar: conflicting values null and int (mismatched types null and int): ··· 1437 1473 - ./issue2209full.cue:83:16 1438 1474 - ./issue2209full.cue:92:13 1439 1475 - ./issue2209full.cue:105:20 1440 - -ids.1: invalid value "ab" (out of bound !~"^a"): 1441 - - ./issue1417.cue:1:6 1442 - - ./issue1417.cue:3:10 1443 - - ./issue1417.cue:3:25 1444 - -ids.2: invalid value "aB" (out of bound !~"^a"): 1445 - - ./issue1417.cue:1:6 1446 - - ./issue1417.cue:3:10 1447 - - ./issue1417.cue:3:31 1448 - -ids.2: invalid value "aB" (out of bound !~"[A-Z]"): 1449 - - ./issue1417.cue:2:15 1450 - - ./issue1417.cue:3:10 1451 - - ./issue1417.cue:3:31 1476 + -issue3149.list.3.name: 2 errors in empty disjunction: 1477 + -issue1417.ids.1: invalid value "ab" (out of bound !~"^a"): 1478 + - ./issue1417.cue:2:7 1479 + - ./issue1417.cue:4:11 1480 + - ./issue1417.cue:4:26 1481 + -issue1417.ids.2: invalid value "aB" (out of bound !~"^a"): 1482 + - ./issue1417.cue:2:7 1483 + - ./issue1417.cue:4:11 1484 + - ./issue1417.cue:4:32 1485 + -issue1417.ids.2: invalid value "aB" (out of bound !~"[A-Z]"): 1486 + - ./issue1417.cue:3:16 1487 + - ./issue1417.cue:4:11 1488 + - ./issue1417.cue:4:32 1452 1489 -issue2209.simplified.t3.BAZ: undefined field: y: 1453 1490 - ./issue2209full.cue:35:9 1454 1491 -issue2209.full.Bar.resource.spec.minBar: undefined field: min: 1455 1492 - ./issue2209full.cue:77:25 1493 + -issue3149.list.3.name: invalid value "an exception" (out of bound =~"^Foo"): 1494 + - ./issue3149.cue:3:13 1495 + - ./issue3149.cue:3:10 1496 + - ./issue3149.cue:10:10 1497 + -issue3149.list.3.name: invalid value "an exception" (out of bound =~"Foo$"): 1498 + - ./issue3149.cue:3:46 1499 + - ./issue3149.cue:3:10 1500 + - ./issue3149.cue:10:10 1456 1501 - 1457 1502 -Result: 1458 1503 -(_|_){ ··· 1461 1506 disambiguateClosed: (struct){ 1462 1507 b: (#struct){ |((#struct){ 1463 1508 x: (bool){ true } 1464 - @@ -134,7 +89,6 @@ 1509 + @@ -143,7 +89,6 @@ 1465 1510 // [incomplete] nestedNonMonotonic.incomplete.a.n2.p1.x.a.b: invalid value {c:1} (does not satisfy struct.MinFields(2)): len(fields) < MinFields(2) (1 < 2): 1466 1511 // ./in.cue:96:15 1467 1512 // ./in.cue:96:32 ··· 1469 1514 c: (int){ 1 } 1470 1515 } 1471 1516 } 1472 - @@ -146,7 +100,6 @@ 1517 + @@ -155,7 +100,6 @@ 1473 1518 b: (_|_){ 1474 1519 // [incomplete] nestedNonMonotonic.incomplete.a.n2.p2.x.a.b: invalid value {c:1} (does not satisfy struct.MinFields(2)): len(fields) < MinFields(2) (1 < 2): 1475 1520 // ./in.cue:102:15 ··· 1477 1522 // ./in.cue:102:32 1478 1523 c: (int){ 1 } 1479 1524 } 1480 - @@ -172,16 +125,8 @@ 1525 + @@ -181,16 +125,8 @@ 1481 1526 x: ((null|struct)){ |((struct){ 1482 1527 a: (struct){ 1483 1528 b: (_|_){ ··· 1495 1540 // ./in.cue:138:32 1496 1541 c: (int){ 1 } 1497 1542 d: (int){ 1 } 1498 - @@ -240,38 +185,60 @@ 1543 + @@ -249,38 +185,60 @@ 1499 1544 }, (#struct){ 1500 1545 a: (string){ string } 1501 1546 d: (string){ string } ··· 1588 1633 d: (string){ string } 1589 1634 }) } 1590 1635 #B: (#struct){ |(*(#struct){ 1591 - @@ -306,6 +273,17 @@ 1636 + @@ -315,6 +273,17 @@ 1592 1637 }, (#struct){ 1593 1638 a: (string){ string } 1594 1639 d: (string){ string } ··· 1606 1651 }) } 1607 1652 #B: (#struct){ |(*(#struct){ 1608 1653 }, (#struct){ 1609 - @@ -340,10 +318,6 @@ 1654 + @@ -349,10 +318,6 @@ 1610 1655 #type: (#struct){ 1611 1656 fieldName: ((string|struct)){ |((string){ string }, (#struct){ 1612 1657 foo: (string){ string } ··· 1617 1662 }) } 1618 1663 } 1619 1664 #subtype: ((string|struct)){ |((string){ string }, (#struct){ 1620 - @@ -377,9 +351,12 @@ 1665 + @@ -386,9 +351,12 @@ 1621 1666 } 1622 1667 } 1623 1668 t4: (struct){ ··· 1633 1678 #D: (#struct){ |((#struct){ 1634 1679 a: (null){ null } 1635 1680 }, (#struct){ 1636 - @@ -423,12 +400,8 @@ 1681 + @@ -432,12 +400,8 @@ 1637 1682 #T: (list){ 1638 1683 0: (string){ "d" } 1639 1684 } ··· 1648 1693 } 1649 1694 issue1940: (struct){ 1650 1695 #T: (#list){ 1651 - @@ -437,50 +410,24 @@ 1696 + @@ -446,53 +410,26 @@ 1652 1697 } 1653 1698 } 1654 1699 #A: (#struct){ ··· 1668 1713 - 1: (list){ 1669 1714 - } 1670 1715 - } 1716 + - } 1717 + - } 1718 + - } 1719 + - issue1417: (_|_){ 1720 + - // [eval] 1671 1721 + type: ~(issue1940.#T) 1672 - } 1673 - } 1674 - } 1675 - #ID: (string){ |((string){ &(!~"^a", =~"^a") }, (string){ &(!~"^a", !~"[A-Z]") }, (string){ &(=~"^ab$", =~"^a") }, (string){ &(=~"^ab$", !~"[A-Z]") }, (string){ &(=~"^aB$", =~"^a") }, (string){ &(=~"^aB$", !~"[A-Z]") }) } 1676 - - ids: (_|_){ 1677 - - // [eval] 1678 - + ids: (#list){ 1679 - 0: (string){ "xyz" } 1680 - - 1: (_|_){ 1681 - - // [eval] ids.1: invalid value "ab" (out of bound !~"^a"): 1682 - - // ./issue1417.cue:1:6 1683 - - // ./issue1417.cue:3:10 1684 - - // ./issue1417.cue:3:25 1685 - - } 1686 - - 2: (_|_){ 1687 - - // [eval] ids.2: 2 errors in empty disjunction: 1688 - - // ids.2: invalid value "aB" (out of bound !~"^a"): 1689 - - // ./issue1417.cue:1:6 1690 - - // ./issue1417.cue:3:10 1691 - - // ./issue1417.cue:3:31 1692 - - // ids.2: invalid value "aB" (out of bound !~"[A-Z]"): 1693 - - // ./issue1417.cue:2:15 1694 - - // ./issue1417.cue:3:10 1695 - - // ./issue1417.cue:3:31 1722 + + } 1723 + + } 1724 + + } 1725 + + issue1417: (struct){ 1726 + #ID: (string){ |((string){ &(!~"^a", =~"^a") }, (string){ &(!~"^a", !~"[A-Z]") }, (string){ &(=~"^ab$", =~"^a") }, (string){ &(=~"^ab$", !~"[A-Z]") }, (string){ &(=~"^aB$", =~"^a") }, (string){ &(=~"^aB$", !~"[A-Z]") }) } 1727 + - ids: (_|_){ 1728 + - // [eval] 1729 + + ids: (#list){ 1730 + 0: (string){ "xyz" } 1731 + - 1: (_|_){ 1732 + - // [eval] issue1417.ids.1: invalid value "ab" (out of bound !~"^a"): 1733 + - // ./issue1417.cue:2:7 1734 + - // ./issue1417.cue:4:11 1735 + - // ./issue1417.cue:4:26 1736 + - } 1737 + - 2: (_|_){ 1738 + - // [eval] issue1417.ids.2: 2 errors in empty disjunction: 1739 + - // issue1417.ids.2: invalid value "aB" (out of bound !~"^a"): 1740 + - // ./issue1417.cue:2:7 1741 + - // ./issue1417.cue:4:11 1742 + - // ./issue1417.cue:4:32 1743 + - // issue1417.ids.2: invalid value "aB" (out of bound !~"[A-Z]"): 1744 + - // ./issue1417.cue:3:16 1745 + - // ./issue1417.cue:4:11 1746 + - // ./issue1417.cue:4:32 1747 + - } 1696 1748 - } 1697 1749 - } 1698 1750 - issue2209: (_|_){ 1699 1751 - // [eval] 1700 1752 - simplified: (_|_){ 1701 1753 - // [eval] 1702 - + 1: (string){ "ab" } 1703 - + 2: (string){ "aB" } 1754 + + 1: (string){ "ab" } 1755 + + 2: (string){ "aB" } 1756 + + } 1704 1757 + } 1705 1758 + issue2209: (struct){ 1706 1759 + simplified: (struct){ 1707 1760 t1: (struct){ 1708 1761 #SpecFoo: (#struct){ 1709 1762 foo: (#struct){ 1710 - @@ -543,185 +490,118 @@ 1763 + @@ -555,185 +492,118 @@ 1711 1764 x: (int){ 1 } 1712 1765 } 1713 1766 } ··· 2004 2057 } 2005 2058 } 2006 2059 #Abstract: (#struct){ 2007 - @@ -737,34 +617,34 @@ 2060 + @@ -749,34 +619,34 @@ 2008 2061 } 2009 2062 }) } 2010 2063 resource: (#struct){ ··· 2067 2120 } 2068 2121 } 2069 2122 _#Spec: (#struct){ |(*(#struct){ 2070 - @@ -791,36 +671,36 @@ 2123 + @@ -803,36 +673,36 @@ 2071 2124 } 2072 2125 } 2073 2126 _Thing: (#struct){ ··· 2133 2186 } 2134 2187 #Constrained: (#struct){ 2135 2188 spec: (#struct){ |(*(#struct){ 2136 - @@ -904,19 +784,19 @@ 2189 + @@ -916,19 +786,19 @@ 2137 2190 common: (int){ 3 } 2138 2191 } 2139 2192 #FormFoo: (#struct){ ··· 2160 2213 }) } 2161 2214 } 2162 2215 #Input: (#struct){ 2163 - @@ -965,10 +845,23 @@ 2216 + @@ -977,10 +847,23 @@ 2164 2217 } 2165 2218 full: (struct){ 2166 2219 metrics: (#list){ ··· 2188 2241 1: (#struct){ 2189 2242 id: (string){ "bar" } 2190 2243 value: (int){ 80 } 2244 + @@ -1031,13 +914,11 @@ 2245 + } 2246 + } 2247 + } 2248 + - issue3149: (_|_){ 2249 + - // [eval] 2250 + + issue3149: (struct){ 2251 + #valid: (#struct){ 2252 + name!: (string){ |((string){ &(=~"^Foo", =~"Foo$") }, (string){ "an exception" }) } 2253 + } 2254 + - list: (_|_){ 2255 + - // [eval] 2256 + + list: (#list){ 2257 + 0: (#struct){ 2258 + name: (string){ "FooBarFoo" } 2259 + } 2260 + @@ -1047,19 +928,8 @@ 2261 + 2: (#struct){ 2262 + name: (string){ "FooQuuxFoo" } 2263 + } 2264 + - 3: (_|_){ 2265 + - // [eval] 2266 + - name: (_|_){ 2267 + - // [eval] issue3149.list.3.name: 2 errors in empty disjunction: 2268 + - // issue3149.list.3.name: invalid value "an exception" (out of bound =~"^Foo"): 2269 + - // ./issue3149.cue:3:13 2270 + - // ./issue3149.cue:3:10 2271 + - // ./issue3149.cue:10:10 2272 + - // issue3149.list.3.name: invalid value "an exception" (out of bound =~"Foo$"): 2273 + - // ./issue3149.cue:3:46 2274 + - // ./issue3149.cue:3:10 2275 + - // ./issue3149.cue:10:10 2276 + - } 2277 + + 3: (#struct){ 2278 + + name: (string){ "an exception" } 2279 + } 2280 + } 2281 + } 2191 2282 -- out/eval/stats -- 2192 2283 Leaks: 4 2193 - Freed: 2368 2194 - Reused: 2352 2284 + Freed: 2403 2285 + Reused: 2387 2195 2286 Allocs: 20 2196 2287 Retain: 115 2197 2288 2198 - Unifications: 1265 2199 - Conjuncts: 3458 2200 - Disjuncts: 2483 2289 + Unifications: 1278 2290 + Conjuncts: 3512 2291 + Disjuncts: 2518 2201 2292 -- diff/todo/p1 -- 2202 2293 issue2263.full: missing elimination, may be lack of closeContext 2203 2294 -- diff/todo/p2 -- ··· 2210 2301 issue2209.simplified.t3: new evaluator fixes known bug. 2211 2302 preserveClosedness.medium.p*: discarding of default is correct. 2212 2303 issue1417: new evaluator fixes known bug 2304 + issue3149: new evaluator fixes known bug 2213 2305 -- out/eval -- 2214 2306 Errors: 2215 - ids.2: 2 errors in empty disjunction: 2307 + issue1417.ids.2: 2 errors in empty disjunction: 2216 2308 issue2209.full.Bar.resource.spec: 6 errors in empty disjunction: 2217 2309 issue2209.full.Bar.resource.spec.minBar: 2 errors in empty disjunction: 2218 2310 issue2209.full.Bar.resource.spec.minBar: conflicting values null and int (mismatched types null and int): ··· 2237 2329 ./issue2209full.cue:83:16 2238 2330 ./issue2209full.cue:92:13 2239 2331 ./issue2209full.cue:105:20 2240 - ids.1: invalid value "ab" (out of bound !~"^a"): 2241 - ./issue1417.cue:1:6 2242 - ./issue1417.cue:3:10 2243 - ./issue1417.cue:3:25 2244 - ids.2: invalid value "aB" (out of bound !~"^a"): 2245 - ./issue1417.cue:1:6 2246 - ./issue1417.cue:3:10 2247 - ./issue1417.cue:3:31 2248 - ids.2: invalid value "aB" (out of bound !~"[A-Z]"): 2249 - ./issue1417.cue:2:15 2250 - ./issue1417.cue:3:10 2251 - ./issue1417.cue:3:31 2332 + issue3149.list.3.name: 2 errors in empty disjunction: 2333 + issue1417.ids.1: invalid value "ab" (out of bound !~"^a"): 2334 + ./issue1417.cue:2:7 2335 + ./issue1417.cue:4:11 2336 + ./issue1417.cue:4:26 2337 + issue1417.ids.2: invalid value "aB" (out of bound !~"^a"): 2338 + ./issue1417.cue:2:7 2339 + ./issue1417.cue:4:11 2340 + ./issue1417.cue:4:32 2341 + issue1417.ids.2: invalid value "aB" (out of bound !~"[A-Z]"): 2342 + ./issue1417.cue:3:16 2343 + ./issue1417.cue:4:11 2344 + ./issue1417.cue:4:32 2252 2345 issue2209.simplified.t3.BAZ: undefined field: y: 2253 2346 ./issue2209full.cue:35:9 2254 2347 issue2209.full.Bar.resource.spec.minBar: undefined field: min: 2255 2348 ./issue2209full.cue:77:25 2349 + issue3149.list.3.name: invalid value "an exception" (out of bound =~"^Foo"): 2350 + ./issue3149.cue:3:13 2351 + ./issue3149.cue:3:10 2352 + ./issue3149.cue:10:10 2353 + issue3149.list.3.name: invalid value "an exception" (out of bound =~"Foo$"): 2354 + ./issue3149.cue:3:46 2355 + ./issue3149.cue:3:10 2356 + ./issue3149.cue:10:10 2256 2357 2257 2358 Result: 2258 2359 (_|_){ ··· 2668 2769 } 2669 2770 } 2670 2771 } 2671 - #ID: (string){ |((string){ &(!~"^a", =~"^a") }, (string){ &(!~"^a", !~"[A-Z]") }, (string){ &(=~"^ab$", =~"^a") }, (string){ &(=~"^ab$", !~"[A-Z]") }, (string){ &(=~"^aB$", =~"^a") }, (string){ &(=~"^aB$", !~"[A-Z]") }) } 2672 - ids: (_|_){ 2772 + issue1417: (_|_){ 2673 2773 // [eval] 2674 - 0: (string){ "xyz" } 2675 - 1: (_|_){ 2676 - // [eval] ids.1: invalid value "ab" (out of bound !~"^a"): 2677 - // ./issue1417.cue:1:6 2678 - // ./issue1417.cue:3:10 2679 - // ./issue1417.cue:3:25 2680 - } 2681 - 2: (_|_){ 2682 - // [eval] ids.2: 2 errors in empty disjunction: 2683 - // ids.2: invalid value "aB" (out of bound !~"^a"): 2684 - // ./issue1417.cue:1:6 2685 - // ./issue1417.cue:3:10 2686 - // ./issue1417.cue:3:31 2687 - // ids.2: invalid value "aB" (out of bound !~"[A-Z]"): 2688 - // ./issue1417.cue:2:15 2689 - // ./issue1417.cue:3:10 2690 - // ./issue1417.cue:3:31 2774 + #ID: (string){ |((string){ &(!~"^a", =~"^a") }, (string){ &(!~"^a", !~"[A-Z]") }, (string){ &(=~"^ab$", =~"^a") }, (string){ &(=~"^ab$", !~"[A-Z]") }, (string){ &(=~"^aB$", =~"^a") }, (string){ &(=~"^aB$", !~"[A-Z]") }) } 2775 + ids: (_|_){ 2776 + // [eval] 2777 + 0: (string){ "xyz" } 2778 + 1: (_|_){ 2779 + // [eval] issue1417.ids.1: invalid value "ab" (out of bound !~"^a"): 2780 + // ./issue1417.cue:2:7 2781 + // ./issue1417.cue:4:11 2782 + // ./issue1417.cue:4:26 2783 + } 2784 + 2: (_|_){ 2785 + // [eval] issue1417.ids.2: 2 errors in empty disjunction: 2786 + // issue1417.ids.2: invalid value "aB" (out of bound !~"^a"): 2787 + // ./issue1417.cue:2:7 2788 + // ./issue1417.cue:4:11 2789 + // ./issue1417.cue:4:32 2790 + // issue1417.ids.2: invalid value "aB" (out of bound !~"[A-Z]"): 2791 + // ./issue1417.cue:3:16 2792 + // ./issue1417.cue:4:11 2793 + // ./issue1417.cue:4:32 2794 + } 2691 2795 } 2692 2796 } 2693 2797 issue2209: (_|_){ ··· 3232 3336 } 3233 3337 } 3234 3338 } 3339 + issue3149: (_|_){ 3340 + // [eval] 3341 + #valid: (#struct){ 3342 + name!: (string){ |((string){ &(=~"^Foo", =~"Foo$") }, (string){ "an exception" }) } 3343 + } 3344 + list: (_|_){ 3345 + // [eval] 3346 + 0: (#struct){ 3347 + name: (string){ "FooBarFoo" } 3348 + } 3349 + 1: (#struct){ 3350 + name: (string){ "FooBazFoo" } 3351 + } 3352 + 2: (#struct){ 3353 + name: (string){ "FooQuuxFoo" } 3354 + } 3355 + 3: (_|_){ 3356 + // [eval] 3357 + name: (_|_){ 3358 + // [eval] issue3149.list.3.name: 2 errors in empty disjunction: 3359 + // issue3149.list.3.name: invalid value "an exception" (out of bound =~"^Foo"): 3360 + // ./issue3149.cue:3:13 3361 + // ./issue3149.cue:3:10 3362 + // ./issue3149.cue:10:10 3363 + // issue3149.list.3.name: invalid value "an exception" (out of bound =~"Foo$"): 3364 + // ./issue3149.cue:3:46 3365 + // ./issue3149.cue:3:10 3366 + // ./issue3149.cue:10:10 3367 + } 3368 + } 3369 + } 3370 + } 3235 3371 } 3236 3372 -- out/compile -- 3237 3373 --- in.cue ··· 3950 4086 } 3951 4087 --- issue1417.cue 3952 4088 { 3953 - #ID: (!~"^a"|=~"^ab$"|=~"^aB$") 3954 - #ID: (=~"^a"|!~"[A-Z]") 3955 - ids: ([ 3956 - ...〈1;#ID〉, 3957 - ] & [ 3958 - "xyz", 3959 - "ab", 3960 - "aB", 3961 - ]) 4089 + issue1417: { 4090 + #ID: (!~"^a"|=~"^ab$"|=~"^aB$") 4091 + #ID: (=~"^a"|!~"[A-Z]") 4092 + ids: ([ 4093 + ...〈1;#ID〉, 4094 + ] & [ 4095 + "xyz", 4096 + "ab", 4097 + "aB", 4098 + ]) 4099 + } 3962 4100 } 3963 4101 --- issue2209full.cue 3964 4102 { ··· 4269 4407 } 4270 4408 } 4271 4409 } 4410 + --- issue3149.cue 4411 + { 4412 + issue3149: { 4413 + #valid: { 4414 + name!: ((=~"^Foo"|"an exception") & (=~"Foo$"|"an exception")) 4415 + } 4416 + list: [ 4417 + ...〈1;#valid〉, 4418 + ] 4419 + list: [ 4420 + { 4421 + name: "FooBarFoo" 4422 + }, 4423 + { 4424 + name: "FooBazFoo" 4425 + }, 4426 + { 4427 + name: "FooQuuxFoo" 4428 + }, 4429 + { 4430 + name: "an exception" 4431 + }, 4432 + ] 4433 + } 4434 + }