diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-30 03:59:35 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-30 03:59:35 +0000 |
commit | d1b2d29528b7794b41e66fc2136e395a02f8529b (patch) | |
tree | a4a17504b260206dec3cf55b2dca82929a348ac2 /vendor/toml_edit | |
parent | Releasing progress-linux version 1.72.1+dfsg1-1~progress7.99u1. (diff) | |
download | rustc-d1b2d29528b7794b41e66fc2136e395a02f8529b.tar.xz rustc-d1b2d29528b7794b41e66fc2136e395a02f8529b.zip |
Merging upstream version 1.73.0+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'vendor/toml_edit')
22 files changed, 611 insertions, 688 deletions
diff --git a/vendor/toml_edit/.cargo-checksum.json b/vendor/toml_edit/.cargo-checksum.json index e89cfb647..df12efa82 100644 --- a/vendor/toml_edit/.cargo-checksum.json +++ b/vendor/toml_edit/.cargo-checksum.json @@ -1 +1 @@ -{"files":{"Cargo.lock":"3ecd99f74abba048346931fc66613d30c0b13dc7b1d3b9d84ce58304b0f6335b","Cargo.toml":"501acc462fd132ae11895ab7ca40a5d1138e47e86c011d68274b85969d81bba3","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"4ba025b28a1ea4c063512d92a206a0510972cd98daec7c6a64ab846ce8e3702d","README.md":"61071236d49e09b94cda5955f5d61a6196b192b11a990883d458dc6e3d72da6f","examples/visit.rs":"657756caba28aa87a8b10104aba704fd2365579c57a293bc572a8d72173ba174","src/array.rs":"3cd87f817f47b44688157f7ce52b303987c4091a21d3075c1022bc6d63ae7096","src/array_of_tables.rs":"2523e482cb10dd84c135141324fa6ecb6f5bccc6c08c6d96ff65abfb7cfbf8d9","src/de/array.rs":"7969d28e98e366cd16c9ed74128404a147a2b787c54d0450594811a92d17b310","src/de/datetime.rs":"a29e76372fc382686c31ee93fd54c749ea3d775c8d4fcc2b2643f9464ea23730","src/de/key.rs":"f8a977fe08e1f929e599f2216734db678ca6ec9fb7f6860b75f1cdfc628b52c6","src/de/mod.rs":"b7344ac410b21b2c82eb88782f48979d6f850a778a19bb2eea7228e834374d2f","src/de/spanned.rs":"5c959639bf4b3d19c6b18e625a57b28b311164bf7b191bbc4d30aa97b7239679","src/de/table.rs":"b1f0f95ea502126b8707ba945596f3c47d83d46680622899334567df1b58df1d","src/de/table_enum.rs":"879a78836ac3b00ab35b9cd72a08fb8486a6c4ae05c779481ae9fcb9546b8390","src/de/value.rs":"03a294f1913c9794dca6420fb3db37abd5c9150f692689269215b7c306bdf6d7","src/document.rs":"7882374aa62978cac3752f346253399f281121a544927feed2882ed9a008361d","src/encode.rs":"4fd14a1d23bc42cbc925d7b240c7f17641ccff0df31d8ed1aeb3cf4c9c598c36","src/index.rs":"34ed0a4cc0cd55ce29885ed8123cc7c09c8ba3b9aa8d3b0b47554c1a41d31577","src/inline_table.rs":"871cfc66cf6c87bfaece0d4725e4a6abe640f5911c3b9c97e617e01293dabd1f","src/internal_string.rs":"8c84f94363ed012eb7114c6b3f6b371155d0ce740ce44ec9d315aedf048c1d11","src/item.rs":"78c5d9e6c714483816f090d419db641977c9dfaf7dd3e9613f6eee10633173f2","src/key.rs":"657e1c3a1102155273768d643aa9322935060be40b9d4e40aba2328bd749eb8d","src/lib.rs":"3ff2ffd3366e495278fd7b3118ea54b7d09534380396a75b46c409e3c563c67c","src/parser/array.rs":"7131291e2d90d59ec72e0cbb653664c77f70a06aeade5d4ded4284cfa257b29e","src/parser/datetime.rs":"f61b42c735fd39921b2f3478a2ef2eff79b82f25e8cce142b885641bd0ad2e91","src/parser/document.rs":"6c1c17e0aaaa64661af2b7b9b4e06db18165cdd7ed40c627d84adf06bd1b3d4c","src/parser/errors.rs":"36c9b9d50ec26ebebc5c879e46db0cad5ba8b8f18c8ee48262e7248f4d5839ca","src/parser/inline_table.rs":"1980106b02cc0fa546c3ab688a8519a5c7c4431d3b4a62eaad689b46bae9c460","src/parser/key.rs":"d2f10cad53778e97e2e9a97d7f66ebf07c40666edfd77b3d7b07395aff713196","src/parser/macros.rs":"9366d332efc75f09a80871a8d0c4c4daa865e3a2fc78b91e6e4657df4260b0f9","src/parser/mod.rs":"1f3a866936f7f7fef3df4d2e4a0716ac67210d20b801550593d674002bec3f49","src/parser/numbers.rs":"d6cd2a8a80030f1476a5d719962a91f29916db09c035f11c6cb06b1793171d4c","src/parser/state.rs":"8b7ba46e124007c3dfdf894d881768f2dd0895749e217e2b1fedb86d9281b8b2","src/parser/strings.rs":"16bdbe9d7ba33858d3f5aa4e0e13021f32a50144748bb07e4dc30c9b2b921723","src/parser/table.rs":"301a2fa31f865195e276861a13c8b8c65d363de5ed263eb6fdce69a204f71de1","src/parser/trivia.rs":"08f7365fe3fdf6c2170afeedd303187db50c84d8f3503ed7bcfc428af9a6fb6b","src/parser/value.rs":"b40db1c8b75380680a6507e636a53153842e0493a2eac92543949e0b10e94f66","src/raw_string.rs":"dcec7da0aab75a5ff5891a0b4a22265ed47c17f9d802ec135e40f2bb1b0a7c60","src/repr.rs":"68356f3b89cd76b75bd9f78b6fbd31fbcc96d8195a7118d286dca92950adaee4","src/ser/array.rs":"5fb55303365bf6991f7af523931d1a046e88d3125c099317e12a7d4f592321a8","src/ser/key.rs":"9bad3bee90876c5c54aaa5caee92bfe30d79a100615902118b35b3ceb40b524e","src/ser/map.rs":"700ddcac68f1cb92969bb8e3168d9ad5d1e1b545d68cc7711f0eb58cf41d9f8c","src/ser/mod.rs":"9b37c484e6ac281a40260206e8cb5bec9e2dab09126c9a2010a52786fbf7df78","src/ser/pretty.rs":"9a9f6d43b2eab487de8af216b9950c93318c9ee6a91f4707ffa41e2ee492c902","src/ser/value.rs":"4e53308b7b82e50382a6d48251c27cf817eabea063c99e6ab9abe30d781c3afc","src/table.rs":"7ee678f8515b1e981cd5fe11300f6526d6f0258dab7dbcf9c8966e2fd249adcf","src/value.rs":"881f7aee14ef968f5f843ccbbaa648117ceac2148df6e09d171f41c174d35dd9","src/visit.rs":"34b49c3091a6ef7c1513429f8290c26989da25cec496d3993abf33fa65ebfc58","src/visit_mut.rs":"b184d7bb94038fdc2e0fee8689112f01377d9f8c05ffafb8a1f5f2263e80ee27","tests/decoder.rs":"8093389d542f50974d6a606321b0413941709ac2cbdef48934b60088bb21e3a3","tests/decoder_compliance.rs":"a06a10a2b89758ef08dda24c4475d13638b7c31e8872ed6edc6919d5b9910bd4","tests/encoder.rs":"c84dd8e14ade77a4d55f932418567196e188fe65d3957408b9ce07c2c27c4da0","tests/encoder_compliance.rs":"643b529e2f4762b2ce98e041dffa5d4b87fee5942996e093afa5b8494e02a3c0","tests/fixtures/invalid/array/double-comma-1.stderr":"abfcc7bc82100306faf21d3636f0ae684d0fbc5e9ea89032e6cd39ecfcb92c84","tests/fixtures/invalid/array/double-comma-2.stderr":"56bd3cecd5b5ec4204d206f07751c34e1e65bee7aa108ca74ef7a8cb1aaaea43","tests/fixtures/invalid/array/extending-table.stderr":"a6c077cb49c41a9d10aca0bac6c571e570f0a772c6311d6a835f9cc46f4ab7cd","tests/fixtures/invalid/array/missing-separator.stderr":"eb38b2683f119d8b9b8c6b8ffd46da784112565ef1033febbe59469e14baea76","tests/fixtures/invalid/array/no-close-2.stderr":"214a9c5953175709a068433f0a594e0cf2be88d633905dc6e9047894b5249e4e","tests/fixtures/invalid/array/no-close-table-2.stderr":"5a2b4bf9026aa20c749551cd77458c5ffba008b5b235fa05fb7c756917018eb8","tests/fixtures/invalid/array/no-close-table.stderr":"545ad4381d5a007a6cd940a4523ae2f629617d298611c0898283a1c4783604cb","tests/fixtures/invalid/array/no-close.stderr":"85935faa2e3a57c4f0a7d519629630a96826ce4f217650972cd070fb7dca23a2","tests/fixtures/invalid/array/tables-1.stderr":"f105a34c2d87b61160881eeb09b7f54d244ba2a222d32fbfc755091939942247","tests/fixtures/invalid/array/tables-2.stderr":"77010599d1d61a34119a99acea7d84162d217df93bca01aed3ae73f1eb62dafe","tests/fixtures/invalid/array/text-after-array-entries.stderr":"391ee42f4fa3a7ec51ba1b90e69f1d9278c105426fe66ae1f80e65d7fb6ed379","tests/fixtures/invalid/array/text-before-array-separator.stderr":"7292ebcb8c9c8aaa4041279af5414de3e710977cac948988cdc8b0947223b62b","tests/fixtures/invalid/array/text-in-array.stderr":"0486e3ec5d299e39c61380a2ed8826d886edb730f6d9555a765e4314da7f5b68","tests/fixtures/invalid/bool/almost-false-with-extra.stderr":"0a14178172a5e9ed65a7d551870b4df768e7cfb39f7b66a2ac0643e2aa8374af","tests/fixtures/invalid/bool/almost-false.stderr":"ed5307c42046d6adf0bf4c3d1aa1c75faa23a46029d5e229f0c2ab4db068df1c","tests/fixtures/invalid/bool/almost-true-with-extra.stderr":"6e4dc09948a38c284f5bc52e011322a2c0182ee2f35c772d460fa15a76461d2d","tests/fixtures/invalid/bool/almost-true.stderr":"86b33938625e15e30d4166b4e81f89c669e84c5b96c2cf708d84dbf628536e07","tests/fixtures/invalid/bool/just-f.stderr":"657f90406495c748243b526e1e01737c418453a1a5ad12ff0400631e9fdaf859","tests/fixtures/invalid/bool/just-t.stderr":"8a8f5aa45b0d0acd13f121caafa85a52a8d17f1bd81542d21d3a5ff07f460b60","tests/fixtures/invalid/bool/mixed-case.stderr":"2e9a16757a17c7e604e081584e6f015ecffb0fd7b6ed969a1fe2096c09e7155c","tests/fixtures/invalid/bool/starting-same-false.stderr":"87069893e084d03c3ab540e0607498d371563c0341c6f043aff756c8f1b32c64","tests/fixtures/invalid/bool/starting-same-true.stderr":"2a1817a1e3a6558860eec1d802e1be8f2f2b54da9b2d9eaf1cddecd35d71a8d6","tests/fixtures/invalid/bool/wrong-case-false.stderr":"5eb58e82290b767febd475712f7de9ee712f094a30dcb627a757b305ab64d096","tests/fixtures/invalid/bool/wrong-case-true.stderr":"dc8e696e9137f737a232009e7e9f801aa9ebe4320a445259af74d83a6235c7b7","tests/fixtures/invalid/control/bare-cr.stderr":"568eff61d56bb362866973d9a7a488831b8b08d02f4808538a04b22ebe10bf09","tests/fixtures/invalid/control/bare-formfeed.stderr":"4532c2fdc7c4bab8fa6683cc4c46975c1dddf2f531459793dedfaab73e4ae347","tests/fixtures/invalid/control/bare-null.stderr":"fe799f446b55ba89609a52842b4eb63bfa725035c0006107c85c6a8f6e8db688","tests/fixtures/invalid/control/bare-vertical-tab.stderr":"b85c55e64c58b85343482dadcd5d833fa771a79e1d0f13a24f4185a4d0d826d5","tests/fixtures/invalid/control/comment-cr.stderr":"656e1b16fbc152545a9726a290a8ce84463a73d780ad13a32b65291f56cb7dc6","tests/fixtures/invalid/control/comment-del.stderr":"08f586fc1f6ea69e3718ab43fded3da139d5ae296cfe70bc27a7ffb4b2f106d5","tests/fixtures/invalid/control/comment-lf.stderr":"71725b218014e5ae260d5075f6bb90477e97c946e27a40c797710a190d586a58","tests/fixtures/invalid/control/comment-null.stderr":"39ca1697c9e13969314368c85401dbb141ee80f514ab4a359ea8e74880e33d28","tests/fixtures/invalid/control/comment-us.stderr":"1d8c3a908fb274503d357bdc428b82c97fd9f9b37681be09129a46454f31e0cd","tests/fixtures/invalid/control/control.stderr":"aa1ae71dbb29473161d8f82a163e6862f78c7c55d4831574e6994651fdccdb19","tests/fixtures/invalid/control/multi-del.stderr":"812c0742dab1b933689c925dd1cca16ed185d091acc51026e8fc6585c0401c00","tests/fixtures/invalid/control/multi-lf.stderr":"3d2ac666d19fc3d0fe676b4897557fe3735c43da64b4a71577c04445a1341a06","tests/fixtures/invalid/control/multi-null.stderr":"9fec8ad3ba45ddb96ad3b6a118b4fa648056e26a9128528b2c0a8fa3b01e741c","tests/fixtures/invalid/control/multi-us.stderr":"a4769a44b32457fbc791b15b442293f37c936d2394ca9aa87ad5c964dc7cbb35","tests/fixtures/invalid/control/rawmulti-del.stderr":"b2dd93070d5bb09e19ea6ca015cfa1ef279ac2cf5e7fb242d8b74318f5d8418c","tests/fixtures/invalid/control/rawmulti-lf.stderr":"7e1d64429ed08f831783bace226535852bcebb48aae05541590fb242491cd7e9","tests/fixtures/invalid/control/rawmulti-null.stderr":"84c04cc89a6bc716b6f7811142899014abdb0b49c4ea56bc163c19220b14c323","tests/fixtures/invalid/control/rawmulti-us.stderr":"4e4566a74bde0a055d2e5a0dde72d41208c2ed188175b11c9e46167dff231d3c","tests/fixtures/invalid/control/rawstring-del.stderr":"c49c702bda4ed350dec4fc43edecb16202f8e5f1f4b02b06b42b2109d775a9b5","tests/fixtures/invalid/control/rawstring-lf.stderr":"5b11decc012a95bde096088a285eaaad4b8984f6d683bd633640141b19135530","tests/fixtures/invalid/control/rawstring-null.stderr":"eafa2a63e9d12293b290405049457860a8fef70de56c4ba2f203e5f2c79a8634","tests/fixtures/invalid/control/rawstring-us.stderr":"b3d8e5dcb1c66b93f2543ea325a50decb62178a5f0bea59fe64b04d89472b25e","tests/fixtures/invalid/control/string-bs.stderr":"1b35fdd656fb29e3011e5f4302fd37d0354922a21e740eb947dac766cebf3200","tests/fixtures/invalid/control/string-del.stderr":"ec80f70e9aea38e11191e50e9dfd80415de5b0406608c935aae8b8dbed9a8a7f","tests/fixtures/invalid/control/string-lf.stderr":"f91e1e0035af8ff259ff98c79097f845d8be8886629a93da962daba1079cb382","tests/fixtures/invalid/control/string-null.stderr":"fe34d284c478853bad94235aac1f37ac3c591f97e12990847b5da0b6c99bd47d","tests/fixtures/invalid/control/string-us.stderr":"dce016319c9fa0981f03cfd8b2b1d52d2d847697ea88e037f5a0e28bb53d8830","tests/fixtures/invalid/datetime/hour-over.stderr":"bd2220bdbaa96caf3d2aaff640620e4856bffb722a0e5be61dcb5283ffd08056","tests/fixtures/invalid/datetime/mday-over.stderr":"de9d27d65c68dd09da10c229167ce881dfe0ebda457badfe24b7598ae80c47a6","tests/fixtures/invalid/datetime/mday-under.stderr":"18daf3ce2a6a972476ccabcf92690a488e4f3be804dab8458da2aebad22a2c8c","tests/fixtures/invalid/datetime/minute-over.stderr":"a29009d3f7a6b1d9afad2420f223d6a6e02df8149577547837f5eeec4075bb9a","tests/fixtures/invalid/datetime/month-over.stderr":"37a203b22c3b2510541e413ff347447f9f3319a896ee005b96f65bc0d68150f4","tests/fixtures/invalid/datetime/month-under.stderr":"24c554595ca9a999a1d8e1ef7dc28b443f2f0ad6e17337ee157fb18bdcf678c1","tests/fixtures/invalid/datetime/no-leads-with-milli.stderr":"a35c496884e921aa086c1404bc812ff74f2bfd347a3ecd96640942be5555afbb","tests/fixtures/invalid/datetime/no-leads.stderr":"2e20cb60a1ecee85b172d1402e4d8c425362e4db607706bd39494385dc6dc98e","tests/fixtures/invalid/datetime/no-secs.stderr":"65871ee020e645e737c363b22cf43c160b295871cd4ac97a37d3ea46f60e3250","tests/fixtures/invalid/datetime/no-t.stderr":"ff50b85f6bc0d49000ec6f1303fda9b44bf934c2ede61743363411bbf6ebecbb","tests/fixtures/invalid/datetime/second-over.stderr":"0ed555a874efa08b711b5227501208758d87a01ad8360cf76c3dc8761807fac4","tests/fixtures/invalid/datetime/time-no-leads-2.stderr":"f725d49ddb5af69b7285f071d68e3d8441d5e331adcfd8c025c1f3cbb68028a5","tests/fixtures/invalid/datetime/time-no-leads.stderr":"cf06f3847f3d14655a94d8cfd5a6984dc74115b1d3cdbee0662ef215738bbf65","tests/fixtures/invalid/datetime/trailing-t.stderr":"87a15cd62bbe7cba2b942fe424c045ce30a12fe439a1b49587a5cc037ffa6b09","tests/fixtures/invalid/encoding/bad-utf8-at-end.stderr":"518dc443f0404d486b40bbbd152870276016795b05f3cc8a1de64a0e08fcdda2","tests/fixtures/invalid/encoding/bad-utf8-in-comment.stderr":"e0f252d14c18ea072c098834997db8e5f68b807bb0fa6d3d34e4042a5ea6fbb7","tests/fixtures/invalid/encoding/bad-utf8-in-multiline-literal.stderr":"2328a89cd9043de10ee656f4ea0dd5e6491fd8c0484ac36099c23161dd7a2625","tests/fixtures/invalid/encoding/bad-utf8-in-multiline.stderr":"2328a89cd9043de10ee656f4ea0dd5e6491fd8c0484ac36099c23161dd7a2625","tests/fixtures/invalid/encoding/bad-utf8-in-string-literal.stderr":"eefb00fee073933fbdb95d24a9e7050c281d4719d0cb970c2c06a71a86f108b3","tests/fixtures/invalid/encoding/bad-utf8-in-string.stderr":"eefb00fee073933fbdb95d24a9e7050c281d4719d0cb970c2c06a71a86f108b3","tests/fixtures/invalid/encoding/bom-not-at-start-1.stderr":"bd4e557b8b4586cdb39a8fde46f0bb214954f9f8ef37be46e2cc19823f6d6919","tests/fixtures/invalid/encoding/bom-not-at-start-2.stderr":"27003a498cb355011782dc21f01e15457490b78c472bb9ddb54147413c8f597e","tests/fixtures/invalid/encoding/utf16-bom.stderr":"a8800edcb8f6184b712da53e74bb787c39eb891073575acbae1ad575f15043cc","tests/fixtures/invalid/encoding/utf16.stderr":"edb66c01034865f484ccf7921bfcec1efaa8599762cb9cd30c9c8103275bc4e6","tests/fixtures/invalid/float/double-point-1.stderr":"2917901dd186adc39cb5965faf388fa2babe577ef3bfcadd4919232868a727cf","tests/fixtures/invalid/float/double-point-2.stderr":"7eda489da0436d6f0f2268aa4005b422d215b4785af0c1696c8731908a563f17","tests/fixtures/invalid/float/exp-double-e-1.stderr":"e64082e328fcfbeff57e6801448c769b12bc8e879b77421b688b2e147e386713","tests/fixtures/invalid/float/exp-double-e-2.stderr":"5c45326ef7287ea16a9e08275222e281b5d61c9322f8764f6533707f9772e255","tests/fixtures/invalid/float/exp-double-us.stderr":"ebd30aa3f7cd3a0a5e79bbbde1beff209d24f4ab58eb5552c1baf0eb2194e97b","tests/fixtures/invalid/float/exp-leading-us.stderr":"19c8f676dd45a5db09bd5baba5c3e7b661e83099a340331ee6bb10defe679569","tests/fixtures/invalid/float/exp-point-1.stderr":"23e73e4e63db888546866967a1c0319a1db269f23ee9c277b298e9f2db88800e","tests/fixtures/invalid/float/exp-point-2.stderr":"633328e085fb04d6a79cdfb696f45a1836c3a8b6afafc4cd5e16d48465aa4613","tests/fixtures/invalid/float/exp-trailing-us.stderr":"d633c5a44a55dc2b6cac18f739cecb33526f31d85f72cada0ebf70c4cca56dcd","tests/fixtures/invalid/float/float.stderr":"cc664d16849deec2ae7ebee6a3f46923bd5959075e282315c4f60461cdb13a0f","tests/fixtures/invalid/float/inf-incomplete-1.stderr":"38cd906dfee7f13b8cbdb27f3406ab0499fae3ae16f3c77bc7fc48d009595d93","tests/fixtures/invalid/float/inf-incomplete-2.stderr":"97a9ae1ff194a95b5be2abaf2cd8179ada832cdd9fad349efa9951e7ab92e435","tests/fixtures/invalid/float/inf-incomplete-3.stderr":"034bc609343ecf1e659d6250f719e5f93512e8140228e44e57b538765e58a1f7","tests/fixtures/invalid/float/inf_underscore.stderr":"621326dde26e5364c7af1b562fb651f4184d9b5fc9bc45edc12f52b588d506bc","tests/fixtures/invalid/float/leading-point-neg.stderr":"d19e28ba2f11069800df4dd1951025aa7f75425f7258e8caf4bbf6abe0e84bc9","tests/fixtures/invalid/float/leading-point-plus.stderr":"10750e9acccb17f0682db30fb175d083d06c822a4863d3d6b8ddb6c75b7b22ec","tests/fixtures/invalid/float/leading-point.stderr":"2545b7a615528595f5d53a7338403c83a8587e70600b1501225446e5f456c805","tests/fixtures/invalid/float/leading-us.stderr":"dc958138922097b2e1e3865c7818604b2249268af4acbe5cafe0ce8c68a90a86","tests/fixtures/invalid/float/leading-zero-neg.stderr":"d1fad35fa8d18f93ebfdf681d3476f02600e5c39cc942ca9bc36181476cbbe53","tests/fixtures/invalid/float/leading-zero-plus.stderr":"ad8ba7a7c12cb4b296cc0d43915106732e6a6a713aea67034587d1fc0c8093df","tests/fixtures/invalid/float/leading-zero.stderr":"cc664d16849deec2ae7ebee6a3f46923bd5959075e282315c4f60461cdb13a0f","tests/fixtures/invalid/float/nan-incomplete-1.stderr":"f4bee0b1c639bf800fc4dda38276142e715cd85ab6cc5e93ae2112ea63d7de89","tests/fixtures/invalid/float/nan-incomplete-2.stderr":"dc908ec577d29083bfd709fc4bdc2fa641d7fb2ba77a5d7441215680a8839d69","tests/fixtures/invalid/float/nan-incomplete-3.stderr":"abab5a41e0f2f1bad2d2050d0c913dfd8c15e50530d53ef8de327f106f564e02","tests/fixtures/invalid/float/nan_underscore.stderr":"25b67a7d6c743f673be7b409c9990de5de8b52a1d97c32e6f4e62f33147f1872","tests/fixtures/invalid/float/trailing-point-min.stderr":"69ad03ae81990d580a6d63bdd5ab594de00c0a16694c8671704c6243b4578b38","tests/fixtures/invalid/float/trailing-point-plus.stderr":"fba0bbad890020fe943e9f23644e81bf0bb7d114230fe16182e866fddcfc108b","tests/fixtures/invalid/float/trailing-point.stderr":"2f12b368fd94304ab0126ebb5888c519475f9ca28e9ca702c477cf0085ba9216","tests/fixtures/invalid/float/trailing-us-exp.stderr":"2ad53ae4736ce5134921acf0c16bc5031627c0da3119edcdc4bd7eb300d40337","tests/fixtures/invalid/float/trailing-us.stderr":"506cb8051f1045ea1dc7f11865d58cbca0216502d273e1c10366c8be7cc9ab43","tests/fixtures/invalid/float/us-after-point.stderr":"fa9fb59f703b6770be3dc094c04eb2c4add8a7a7ab79d9fe508cfeee785404f1","tests/fixtures/invalid/float/us-before-point.stderr":"14e09a7a382e249e5143d1c81d6e4623408eb2d505e1e3f86c370a3a3bf6cd9e","tests/fixtures/invalid/inline-table/add.stderr":"bf95d34749254300f4179ed1314cc9cabd7c7b63fc2453fc7adbc7869b63be4a","tests/fixtures/invalid/inline-table/double-comma.stderr":"2132a1c4d97fab140089818f990284333e22ef91d20a9f65e11d4dd15b1a701a","tests/fixtures/invalid/inline-table/duplicate-key.stderr":"72bea73b20005f15ced977aae70a1b0f3bbe3e35598231aca9a2303d770efdc3","tests/fixtures/invalid/inline-table/empty.stderr":"604fef40337f04e5f37a52239d6509850aba95677a7a94ca8476a6c21b648a43","tests/fixtures/invalid/inline-table/linebreak-1.stderr":"45b0611d37c1ece88bf6c88b3528adc3d73e0cd3e3b24dcf07ab151023a6f488","tests/fixtures/invalid/inline-table/linebreak-2.stderr":"f7672965326b44adaf0cb4796a087fbe779a8b17fbb458090a33375d0c54e5b4","tests/fixtures/invalid/inline-table/linebreak-3.stderr":"e8c70f0c91b15e701567e93d8df1cd3bec593696af05ec1d95e8f9e00ab20fa6","tests/fixtures/invalid/inline-table/linebreak-4.stderr":"3d31147f9e1ff5f94384e4df1675dfff2da6f076cb0a729771615f05b990be91","tests/fixtures/invalid/inline-table/no-comma.stderr":"9f1c85e0df72c7e7e011c26a0d5dd9dea8b7a5e18c3ba9a53ff4a20a9429dce9","tests/fixtures/invalid/inline-table/overwrite.stderr":"812d1bc74d07750048a521e513a565676e606d4fa1a32d2ebda7af8fa064d3ab","tests/fixtures/invalid/inline-table/trailing-comma.stderr":"4791911dafd6602e2891d6ffc4d32ef8e9d0c1f8f6d37e84d440feb896d9cb88","tests/fixtures/invalid/integer/capital-bin.stderr":"fcfc8b0bddd36a641d3f5cc2ceee88554619fabf6874e11cdfdd147be8781881","tests/fixtures/invalid/integer/capital-hex.stderr":"c8e2d64f9659435a0387bb7e6447896eda253fef77e0214a4073fcffbac693a7","tests/fixtures/invalid/integer/capital-oct.stderr":"ec465fa25da212b0c9b6265ac8e9cd05c1fa07d614dafb3bc9b2ca74d6c2a7a7","tests/fixtures/invalid/integer/double-sign-nex.stderr":"8d57da526240c1cf73423b688442922ae291ff26e3c09f9c3b5b150e62e5cbaa","tests/fixtures/invalid/integer/double-sign-plus.stderr":"55896d9bd19637e124482966a12109a1a8351620ddc6f8d28553d70359f523f1","tests/fixtures/invalid/integer/double-us.stderr":"f14ed7bd3ad26b2203763fa953dd6e99212e50fb8e43a4eaeb115c1a7df4fc25","tests/fixtures/invalid/integer/incomplete-bin.stderr":"64168fc7ede87a10c12f82325fce644a7d9b9c3af55a313184175df7926845e3","tests/fixtures/invalid/integer/incomplete-hex.stderr":"ed2423540e288f4673bc68822a799bea04f571db5de56154e10360b03ab79553","tests/fixtures/invalid/integer/incomplete-oct.stderr":"9ed35e3078703a38996f20dc3e86477149564c8abd237c644bdf3a5ef26e3417","tests/fixtures/invalid/integer/integer.stderr":"ed5ef991b733b3d51700364da18bf58f1b7eb68053467afcbff22775b3b82788","tests/fixtures/invalid/integer/invalid-bin.stderr":"7248d47f2c7db309254a3a41af28bc1a6e96bfa95e0c8c94d607f65a1a30cee6","tests/fixtures/invalid/integer/invalid-hex.stderr":"3976255c6fe35a1e29f0fed7324eee8420ababd0f6f1f7702908c3df47c88846","tests/fixtures/invalid/integer/invalid-oct.stderr":"9f6776e33887cb446a5590d8fe4e51c36747c634cd5e4efaa84f807d3ce244e0","tests/fixtures/invalid/integer/leading-us-bin.stderr":"28edc918ac016cc9cb7b0b20fe2a5e1dc0175de0aa8105d7a6ca263815c6e4e7","tests/fixtures/invalid/integer/leading-us-hex.stderr":"2a1a5943399c8ba5849ba569411bfefc8323659c852bd714ca917231f6212ef0","tests/fixtures/invalid/integer/leading-us-oct.stderr":"aad69bdd80f94e907bda03558a1302e54d58d8911fe2b564e93cb0ec48403b09","tests/fixtures/invalid/integer/leading-us.stderr":"3a265cc11f1b0d43d4b532a47776486ec7c7ea7afe70813ab00c5a37cf87a9df","tests/fixtures/invalid/integer/leading-zero-1.stderr":"ed5ef991b733b3d51700364da18bf58f1b7eb68053467afcbff22775b3b82788","tests/fixtures/invalid/integer/leading-zero-2.stderr":"5c70e7874256512c0ef6bb364497d4e10154e994056f2feb7c5c729016522091","tests/fixtures/invalid/integer/leading-zero-3.stderr":"fb2730feda6f669a3b8c4332f01369e52ce1b942807f1bf3d9762b1fea04aeac","tests/fixtures/invalid/integer/leading-zero-sign-1.stderr":"c9d2d992eea36c4fe228eb74741bd8d0ede1e354cad132b79462e7b502b37f95","tests/fixtures/invalid/integer/leading-zero-sign-2.stderr":"4248329b339020cc2ea586f2775a0b4f4cbe2ae3f0f75b935263363b8be5eaf5","tests/fixtures/invalid/integer/leading-zero-sign-3.stderr":"3b414808727d3a446efdfca0033525e17536f9b54104d8a9cb9278b054d213df","tests/fixtures/invalid/integer/negative-bin.stderr":"74aae673b861bd46544e4835fe7075e20158dd69e27f75c790d48a6006476c73","tests/fixtures/invalid/integer/negative-hex.stderr":"799bd8120f4cf2c36e7f65a5f9aa43a3ec87dd95dd3bf68501059da9f21f8c9e","tests/fixtures/invalid/integer/negative-oct.stderr":"fb082674d0f5a8a231c91c2d34cf47fdeece4c8c5c8c7b23fb09fce95ed59a9f","tests/fixtures/invalid/integer/positive-bin.stderr":"54d8a33743737f374480cd1235bf3f7e0847d252ef7e2bb1d447529cbc0f6692","tests/fixtures/invalid/integer/positive-hex.stderr":"3b21b23cc3dd6b213a19256f4ffb4bb36172de2f739f90bbea78636f7a50524b","tests/fixtures/invalid/integer/positive-oct.stderr":"cc493d14bcb092f49b517fa5143e29c45020d491d94ac662f85b2af34805cf11","tests/fixtures/invalid/integer/text-after-integer.stderr":"07a13ad4841a452eff00947234a4ebac4d209ea0294162888db35668648bb55d","tests/fixtures/invalid/integer/trailing-us-bin.stderr":"62da06cf06527b9e9cbeba6c5299ce6001d40592e9d007c8350090977f4d1b58","tests/fixtures/invalid/integer/trailing-us-hex.stderr":"1b290eada58a7202b1a9251afd8e0e72a4caa8ad5c85036d1050e7de8141e94d","tests/fixtures/invalid/integer/trailing-us-oct.stderr":"34e6f86ffb0099e6e1ba67deb51e36af62dfce4e7299b94503a219339bf16447","tests/fixtures/invalid/integer/trailing-us.stderr":"3ab49ee921eb772f5aa4eaf0fb3619b1dcd9a9db3f4ebbd9bc505581a985e753","tests/fixtures/invalid/integer/us-after-bin.stderr":"a94a87ebab3536899ce7c0c785f020b3a236c60d24c0bd7494628ca310c40768","tests/fixtures/invalid/integer/us-after-hex.stderr":"9009b187f615f06e3392eabd8ffa58311ed1c2b1cd76f8c5bd99671242f2e026","tests/fixtures/invalid/integer/us-after-oct.stderr":"05af70a21980416fbd602337f9af22a1c600a294635d10ef1ca1b2138338e712","tests/fixtures/invalid/key/after-array.stderr":"487d957b20226ac36e27d6efb1e3d24147284c9a5e10a0188427a1c940d31ef0","tests/fixtures/invalid/key/after-table.stderr":"f70e84770817f096fcc1b6195c6b0a79d25210c6930ce412a89646040ee3d713","tests/fixtures/invalid/key/after-value.stderr":"00d4d2d3ccd61f64a92df0ca575aeafcd96e91d053d835ca855973339ba458cf","tests/fixtures/invalid/key/bare-invalid-character.stderr":"b1f64d54a43017e6cc09755fa7ba477901721d23f9271ec658fc9362f46631b3","tests/fixtures/invalid/key/dotted-redefine-table.stderr":"564febb355d1556df42f428a046ac6fdc5dad49b2b736be5824b0c13fcd1fae9","tests/fixtures/invalid/key/duplicate-keys.stderr":"7c9dfef2ef19b1487b7592a267ab5ba21c8b833dfa9ec1c3151e369c2fdba26e","tests/fixtures/invalid/key/duplicate.stderr":"764ef48bb06c9096c853b1156c8d29ba0065616939a5335146f5af88a424cea3","tests/fixtures/invalid/key/empty.stderr":"af6d3636ca73e5496c40d9c918c59b61fd86812db262649e5268094193873130","tests/fixtures/invalid/key/escape.stderr":"155aa9389f0eb28cac3b42974af7ea9e2eef8d96f084f08f9f75e960fc8ce8c7","tests/fixtures/invalid/key/hash.stderr":"85dd91b96aa4f81cc7922b02b411f25d9053bddd1e5b893c2a2ee9d0115a7cac","tests/fixtures/invalid/key/multiline.stderr":"d625f2caaf01d53d72d6f1c3df0952fe3ca8c5f3b081503cb02b9994c088b733","tests/fixtures/invalid/key/newline.stderr":"714aed0a140062f977ec85b9afa50f68448c67e806168e60b4f4554ab270b2b9","tests/fixtures/invalid/key/no-eol.stderr":"440ec927e94f0e520a0f256c865041f0478e1c82f3bb79323b7ddc36fc942edf","tests/fixtures/invalid/key/open-bracket.stderr":"3b36814373f51a8ea00a448d65bc514e8d99f5163b7dd8101df62bcd0a06e801","tests/fixtures/invalid/key/partial-quoted.stderr":"dc9059a014ed53071ed170b1e280923556dc09e0be2ae96cc8474e9da59fa378","tests/fixtures/invalid/key/quoted-unclosed-1.stderr":"6cdec8a7c5352a2f246273afaa923dfa81d4d2e68cca5b4f9a19193559b164c2","tests/fixtures/invalid/key/quoted-unclosed-2.stderr":"b4817e6f85a90fbb6adf049ba57c268f9888f1b42b3d62200c359606176170b1","tests/fixtures/invalid/key/single-open-bracket.stderr":"917c0203d1e45309fcff82ce33fdd2d989f630fb99290a40cb9e08a6f7ca0ef8","tests/fixtures/invalid/key/space.stderr":"3a5fa712d667890678873e3d4e4cabb084c67091c5ec6155355d5bd4229585dc","tests/fixtures/invalid/key/special-character.stderr":"a84c2f293c1e421a1c87050cb0211de80dbfe7a79939db0338fa35bf0c181ef2","tests/fixtures/invalid/key/start-bracket.stderr":"223d8a22bf34459cd9bcb993ae2a51ab3cc436674e3367e92f7d74e9f8710a45","tests/fixtures/invalid/key/start-dot.stderr":"f9366a1492ae24fd0721724b4039d2675e91219de564aff2826adefd83fac571","tests/fixtures/invalid/key/two-equals.stderr":"a0aae899cfa75df41104a4d3090a309fc7ebcd95bb5a944cf742f3d3fc9d4782","tests/fixtures/invalid/key/two-equals2.stderr":"861826b9456ab3a74f63f5c555e13d959a3991dfa6ce126ae5ed14d43f7dcee1","tests/fixtures/invalid/key/two-equals3.stderr":"71614864344e321ac5de238b7ef9d097c6d7f3ac3eee4118d96827b4b8bd6658","tests/fixtures/invalid/key/without-value-1.stderr":"16c2823a39a82c3c27e0959a691b7a95e3392d62195884697893d373b967b9c0","tests/fixtures/invalid/key/without-value-2.stderr":"d340f94f5d96f5730ab269db7ef27aca171d64e35af1181c474d75a7d11d6590","tests/fixtures/invalid/key/without-value-3.stderr":"3cf3072fe9206bfe6c682103d0414627a5a63db4c4a319cf37efeb5fe6b92007","tests/fixtures/invalid/key/without-value-4.stderr":"07132bec96e9a9a672bafdc3c448b7c596257245f8c3e2cae04641f9798644ec","tests/fixtures/invalid/spec/inline-table-2-0.stderr":"5ad1a938b1d1f0f3fdbd1871efdebfd30e136407ecdd9e2eff22150d00624b3f","tests/fixtures/invalid/spec/inline-table-3-0.stderr":"fcbc05e911b7db81bd918768fe98a51a7026fd476d616718cc417d2f08bcc1a1","tests/fixtures/invalid/spec/key-value-pair-1.stderr":"d5391142dfd56040840cf91b1e28e3c048229e3d9998534d41001cd6657f9bd6","tests/fixtures/invalid/spec/keys-2.stderr":"3c4ee6066fc75d2c1f1b325f618a01113694c318e330ff4f237e89127f332c87","tests/fixtures/invalid/spec/string-4-0.stderr":"910ee4b240159b828a7509c8dfb46507071a8d8636f3935a3914d6d91f315295","tests/fixtures/invalid/spec/string-7-0.stderr":"5128f0a930b3034e494a6bee4f384a587e9fd858b25f8cc529a488c94ee9670d","tests/fixtures/invalid/spec/table-9-0.stderr":"49dac70d337266f5c6b333fee468f279fed1bff62bfb4ec7436c8b6683ce0dd2","tests/fixtures/invalid/spec/table-9-1.stderr":"d9e071c70356c01b6537f876989ad2067e7773dd5eb24a298439d192dbad12d0","tests/fixtures/invalid/string/bad-byte-escape.stderr":"14f6ae446b3b8cb434267eba11c6ec5a1badef4f867169b173698cf9f1a29d95","tests/fixtures/invalid/string/bad-codepoint.stderr":"e5a9704b87fe85e447e817197ad4e59e27b33bd93e7c5ad3987561d119ce6ee4","tests/fixtures/invalid/string/bad-concat.stderr":"499219633467b9174471db40543ca188e2b906c470e511d2f701f5f5475d96be","tests/fixtures/invalid/string/bad-escape-1.stderr":"34a15ce7012217c62d31d5392038517c216f0cbfd5d75fb5f3c2bb07afd3f25c","tests/fixtures/invalid/string/bad-escape-2.stderr":"955aab40b16043c847d85d04e6adcd093c930dd8416d29c2ab5953c077eac6f4","tests/fixtures/invalid/string/bad-hex-esc-1.stderr":"aea935cf1e17743356e6fb1059afed2d0ee5262906594782e5537a025398038e","tests/fixtures/invalid/string/bad-hex-esc-2.stderr":"deac5217cf80acc759e1b40c43f5f56431b276dc2c896aae5490d57583105e06","tests/fixtures/invalid/string/bad-hex-esc-3.stderr":"94ecf886427e8fe5daf1d8f932bf1887f2533b10bc1f57cb6de03ea28fef466f","tests/fixtures/invalid/string/bad-hex-esc-4.stderr":"382b011dd4070554ee875fde06703d8332ef6ad36f3619f3536b0a4997ee2745","tests/fixtures/invalid/string/bad-hex-esc-5.stderr":"a8a039fae822eda68591da28ff2a117b5d85e99d066e9126ebbb6426a1cad52d","tests/fixtures/invalid/string/bad-hex-esc.stderr":"aea935cf1e17743356e6fb1059afed2d0ee5262906594782e5537a025398038e","tests/fixtures/invalid/string/bad-multiline.stderr":"141e5770190dd184bb1f64f6bb14fc017210bbd918ab5c8b7a3d80b86b21772b","tests/fixtures/invalid/string/bad-slash-escape.stderr":"d62f894ee166bddf84432507fb4ba56473c0a230fd88a3ccc2b199a72a34e613","tests/fixtures/invalid/string/bad-uni-esc-1.stderr":"d1d6e0c78b64f776a428aa7cb332b0ccd659d24950dd3e8f1d2a1450f61b37e5","tests/fixtures/invalid/string/bad-uni-esc-2.stderr":"d8ed938bafdeda05c083d79ed73f5043dabe0f5f1515c6857ae7a61db9026ebc","tests/fixtures/invalid/string/bad-uni-esc-3.stderr":"de1c29897549ae37988a38e1c370f9974fcbf7d4c4b3fd457d731999cfc05929","tests/fixtures/invalid/string/bad-uni-esc-4.stderr":"4e5a715e8dc212d073d399bb0ae9b49413396744282a195c34cb03e6f4fbd9eb","tests/fixtures/invalid/string/bad-uni-esc-5.stderr":"2419cd927d8e31ebf5025558e70bb1295d98bdb36c17f0e00620b9c4a7aadbf6","tests/fixtures/invalid/string/basic-byte-escapes.stderr":"b42fd0273c7438bf13ddea9552204bb9209cdcc8e4151311d2446185d2cd546a","tests/fixtures/invalid/string/basic-multiline-out-of-range-unicode-escape-1.stderr":"725cd4955987c3d6e736832281316d6c1a2446303e9a1dc78900cef4bb84ee64","tests/fixtures/invalid/string/basic-multiline-out-of-range-unicode-escape-2.stderr":"c6698fbdb95188d53bfdaa4a4f590d86a73aafcc321a5d9511ab43ce51be1c78","tests/fixtures/invalid/string/basic-multiline-quotes.stderr":"28177a49532f22aaffc9dc204592a2c5eca2fc20f8e208b7c7f589201e8b7de5","tests/fixtures/invalid/string/basic-multiline-unknown-escape.stderr":"a83406b30eb3ab2cebb0230d8d65d0b7583885138f2c070976ae61de2c8b17f3","tests/fixtures/invalid/string/basic-out-of-range-unicode-escape-1.stderr":"19af67599c6c2eef340c9fdb0ab2cc788928def50280af939247a1274447781f","tests/fixtures/invalid/string/basic-out-of-range-unicode-escape-2.stderr":"0e2e1a69358502ec17a07e4fc151b70e8a3b5123798cb38f98fe2d146515a84e","tests/fixtures/invalid/string/basic-unknown-escape.stderr":"1de467948fb18f61336350063701d9c5a6615054fe740a9be650f71f5ca4236b","tests/fixtures/invalid/string/literal-multiline-quotes-1.stderr":"249123229606aa8eedff1b5bdead5022daf470e47dbca639e32019d1d61dbcf9","tests/fixtures/invalid/string/literal-multiline-quotes-2.stderr":"d9784af1ff056a90bf531307749d53a5d24ffffbc0f4aada7fcee417a50d1615","tests/fixtures/invalid/string/missing-quotes.stderr":"462f24701d2c51d36b18d06b69be2f6eb36449b5f3ffbaa737fcbd2b2151ae4a","tests/fixtures/invalid/string/multiline-bad-escape-1.stderr":"18469c4d37d011b3f30ae17e3111b5e8a9526d593475e5d8d7a9b19461a40e8d","tests/fixtures/invalid/string/multiline-bad-escape-2.stderr":"d43896d3005c8470dc8149e2b74eb8825c6d9fedfe9f48125ad88a95c1dc3035","tests/fixtures/invalid/string/multiline-bad-escape-3.stderr":"92f732c6bcb922e25d2a001a389f93b596dd0e91109cbdcb651efa146309dc2a","tests/fixtures/invalid/string/multiline-escape-space.stderr":"94b451b6c03055186777a248cb216f95a1b2e29df25549f345d96bd0a4e63f1e","tests/fixtures/invalid/string/multiline-no-close-2.stderr":"e500e99a44305b1e148b211e963478cf1554f8c9536d3108390cf41d5b2ce069","tests/fixtures/invalid/string/multiline-no-close.stderr":"d5b9602d23b0cb023fbe3ae80d862fd60332475ba8863a1e977f17cb326a4548","tests/fixtures/invalid/string/multiline-quotes-1.stderr":"046956658c0a73e665e7a6a2044ff83c8efb8cdd8c2ab153c163eb1e61068c56","tests/fixtures/invalid/string/no-close.stderr":"3ad8aff0932d98592b808fc6f44fa68a854097f8025e92c11af1acb6de3d3cc7","tests/fixtures/invalid/string/text-after-string.stderr":"1c1e4677be8d3dba0e7933b3ed1cbb6e0bcf6f600cf9a989a7b09c9424a4d0a7","tests/fixtures/invalid/string/wrong-close.stderr":"441f4f1b73c11c8dbf2f73cf9a7766f17a9517b3b9142e86736ed43eaec07f18","tests/fixtures/invalid/table/append-with-dotted-keys-1.stderr":"a67f1f152005295e0a1bb3dcaaa755edd05f19ac5316b8ad2eb4d45797e0f770","tests/fixtures/invalid/table/append-with-dotted-keys-2.stderr":"72d9ea8a90b4d9e5319c2bf951bdde6a87a205612e82ed5a09cea2b706bfde7f","tests/fixtures/invalid/table/array-empty.stderr":"e8a41c60adf7756361920816b6c4f44125a813c869b71fae2c98473e4da1b231","tests/fixtures/invalid/table/array-implicit.stderr":"7797ce41aab0567fc9d40e277cc32c12e1f16ffc0e73857fdb3bbf754246305f","tests/fixtures/invalid/table/array-missing-bracket.stderr":"5f1e8703d59398f6595d21ed0abcc7dc3ce77943ad0f71eede9ad63ea2bcc7c1","tests/fixtures/invalid/table/duplicate-key-dotted-table.stderr":"ca58908463cbe2ec6b3de314237c178fee64245cc738c72a7b9e08bb3d02b2b0","tests/fixtures/invalid/table/duplicate-key-dotted-table2.stderr":"cb59f2ed324642de947f3cd9373ca111ec35104a5f33578f64c48084ce1a84f5","tests/fixtures/invalid/table/duplicate-key-table.stderr":"f4816522738b3e2ace87d1100a3d73e6a122d8dc67d05e0b35a1438e16a8952c","tests/fixtures/invalid/table/duplicate-table-array.stderr":"11d293e4b4f205fc98cd892f25a25f533cb922c963ecf095a932d2e9d550be4f","tests/fixtures/invalid/table/duplicate-table-array2.stderr":"fa9cd3b1212eed14ec56b66a16471ac2f7c0398d743982abb7c5cb4b5c7a5fe4","tests/fixtures/invalid/table/duplicate.stderr":"3e6d1b1a2f44d449e8cb0098e7c40ad1e755363b446f3821c399abfb26eb9939","tests/fixtures/invalid/table/empty-implicit-table.stderr":"cd3606ce97c5537d18146cd978403636a65fa703c83616da75b8cafa86e8fa24","tests/fixtures/invalid/table/empty.stderr":"4399e419abbcfbec93f5915e7fbdd11b6e462a4c066a29eacda159abfc588734","tests/fixtures/invalid/table/equals-sign.stderr":"472de6b908a03c99637b635a3a898ed956684ae422e1b4b135ec94986ea45f2d","tests/fixtures/invalid/table/llbrace.stderr":"db6bbee7ed15994398901c46ed4b40904897e71f5d972deb7904ccac49cd834e","tests/fixtures/invalid/table/nested-brackets-close.stderr":"e1dff60ea8f77dd1b8fae7d1d63c788c838c80560172d92377cc168f5cb5923a","tests/fixtures/invalid/table/nested-brackets-open.stderr":"bd58eb0630dc0c51ebc288258d360d707c8f43a5877ddc21e9420f8eb76a2f4c","tests/fixtures/invalid/table/quoted-no-close.stderr":"6bf7e2d30c735a55f595140af7c7f6be89b6faf868f4473ea39570fdb87d5823","tests/fixtures/invalid/table/redefine.stderr":"3e794bce5bb6ae9f603f50e3dc62d136701ec478078e8a8e99c94229778e24ca","tests/fixtures/invalid/table/rrbrace.stderr":"342a5ff362c8b4c1e85a6442029291bd33165a3b36552794fcd5269249bf36a1","tests/fixtures/invalid/table/text-after-table.stderr":"6dfaf1fc3199f0602fea52f7b1c65869eb2f8643b9e90dc1e718a183fb972485","tests/fixtures/invalid/table/whitespace.stderr":"fa48d4dc83f92e729dc25c6fc6a0c336014391b4bdb3392998f18141d2deb350","tests/fixtures/invalid/table/with-pound.stderr":"97dbd1ceb7f357bd98cc1caa9a602c638aaa5831237b7d63b18153acc64d3af4","tests/invalid.rs":"daa9034453fb7f10718020e36a07a19664eb852071995f17480c595cb44e2cdf","tests/testsuite/convert.rs":"9140d681dbb9370b975d5bc1cd4e9e640ac4023c6789edcae544e66657ad5fe9","tests/testsuite/datetime.rs":"105d95570d05e9ecbc30bfe7d081f9d63e2f36634e9124da012f467c6134549e","tests/testsuite/edit.rs":"7ff72670fe971ce9cd3e94a9254d1f54ebc792d8881b688d397cd9a996f2d051","tests/testsuite/invalid.rs":"31789643e3419ab922f8258e5a0421e1648b64aa5b96d3e1fb79bae36abf286e","tests/testsuite/main.rs":"a363749a7074ee95e3b7c556c0b0f59f5818445ca4762ec53693f451359b268a","tests/testsuite/parse.rs":"3bd2b50bd735c6ef5ed276ce6409f068c3aa93abe2480f285c18a9c5425fbd96","tests/testsuite/stackoverflow.rs":"426d4e621bbafe62f8aba2e8c62e715929185d5eca4c5083b6427b601abc667a"},"package":"266f016b7f039eec8a1a80dfe6156b633d208b9fccca5e4db1d6775b0c4e34a7"}
\ No newline at end of file +{"files":{"Cargo.lock":"55e407de6911279cc050b5fa6b8dd0699f15aa5e23849cf7d2fb4991e764403c","Cargo.toml":"fc34ca3071e98775e09ed6f57cd80e88783bb0fa6f3fb85961996fcffe064fec","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"4ba025b28a1ea4c063512d92a206a0510972cd98daec7c6a64ab846ce8e3702d","README.md":"61071236d49e09b94cda5955f5d61a6196b192b11a990883d458dc6e3d72da6f","examples/visit.rs":"657756caba28aa87a8b10104aba704fd2365579c57a293bc572a8d72173ba174","src/array.rs":"46d62e3898f39b5cc0c2a98f0f38986ad0cbac837366849a2c07b458524dae47","src/array_of_tables.rs":"a4c391b2dedd475546159fec824e2cca5f32e4e684fdf02792f645d2162881ed","src/de/array.rs":"7969d28e98e366cd16c9ed74128404a147a2b787c54d0450594811a92d17b310","src/de/datetime.rs":"a29e76372fc382686c31ee93fd54c749ea3d775c8d4fcc2b2643f9464ea23730","src/de/key.rs":"f8a977fe08e1f929e599f2216734db678ca6ec9fb7f6860b75f1cdfc628b52c6","src/de/mod.rs":"b7344ac410b21b2c82eb88782f48979d6f850a778a19bb2eea7228e834374d2f","src/de/spanned.rs":"5c959639bf4b3d19c6b18e625a57b28b311164bf7b191bbc4d30aa97b7239679","src/de/table.rs":"b1f0f95ea502126b8707ba945596f3c47d83d46680622899334567df1b58df1d","src/de/table_enum.rs":"879a78836ac3b00ab35b9cd72a08fb8486a6c4ae05c779481ae9fcb9546b8390","src/de/value.rs":"03a294f1913c9794dca6420fb3db37abd5c9150f692689269215b7c306bdf6d7","src/document.rs":"7882374aa62978cac3752f346253399f281121a544927feed2882ed9a008361d","src/encode.rs":"4fd14a1d23bc42cbc925d7b240c7f17641ccff0df31d8ed1aeb3cf4c9c598c36","src/index.rs":"34ed0a4cc0cd55ce29885ed8123cc7c09c8ba3b9aa8d3b0b47554c1a41d31577","src/inline_table.rs":"497c56915a15f0d4826f20726aee056c7a6ab57af561b0901260f0a102199a36","src/internal_string.rs":"8c84f94363ed012eb7114c6b3f6b371155d0ce740ce44ec9d315aedf048c1d11","src/item.rs":"d0908cd810e7c57f00c2b7e84b48f83b9157837cb07945ca4e6fa24da46181e6","src/key.rs":"b6577a803b818e2010134615bc8cf93ff3a03d7097f29cba7a6b98306a81fdce","src/lib.rs":"3ff2ffd3366e495278fd7b3118ea54b7d09534380396a75b46c409e3c563c67c","src/parser/array.rs":"c8c2e789ce082cb617c11e28f07cfeed3663966f608b9b3d76a57aa321b898d5","src/parser/datetime.rs":"b1717d8038d6c58b90065d7552b38d8fa614c1271a3eaf056076fd68f1bdc85f","src/parser/document.rs":"0b94e7e0bd53606949d66bb6854bf275bed399b869bbce18d6acbd65238de112","src/parser/errors.rs":"65e1f80b782a8cd5334792937d487b190450cc4e70820a64fa7e23b74cd117c6","src/parser/inline_table.rs":"91bb5f1a54574e66727fbc03ec4f73d3c435fc54ee4a22159709ee2612bfc118","src/parser/key.rs":"0de3bb1d3ab843b4da6c8913f28ea90bb54f35d1cbbad96b0d6f92597109dd0b","src/parser/mod.rs":"a3e8d11af94b930249a3c62cf0b54eb1b8c7033c3b59495786c158799b73fa8e","src/parser/numbers.rs":"76a61210ce5b399f7367347c4dd1d71871d99e6dc06aeeb7b7e8b84962831e21","src/parser/state.rs":"8b7ba46e124007c3dfdf894d881768f2dd0895749e217e2b1fedb86d9281b8b2","src/parser/strings.rs":"d4f1383d83699ab43f2ce04613fa656f9015d5d588910e71122ed88c3b09c25a","src/parser/table.rs":"c716d82caed27229afb22e757cb14b2828356fc69d33ab94d8f43043f992cd2b","src/parser/trivia.rs":"c2d9feaa958c339de82c6756a2e8ee749d0324db0c9890abc237fb213bf7b2e0","src/parser/value.rs":"ffc4b97539b121f195051857089071344ae3b68d563566425e19fa0365a6ae62","src/raw_string.rs":"dcec7da0aab75a5ff5891a0b4a22265ed47c17f9d802ec135e40f2bb1b0a7c60","src/repr.rs":"68356f3b89cd76b75bd9f78b6fbd31fbcc96d8195a7118d286dca92950adaee4","src/ser/array.rs":"5fb55303365bf6991f7af523931d1a046e88d3125c099317e12a7d4f592321a8","src/ser/key.rs":"9bad3bee90876c5c54aaa5caee92bfe30d79a100615902118b35b3ceb40b524e","src/ser/map.rs":"700ddcac68f1cb92969bb8e3168d9ad5d1e1b545d68cc7711f0eb58cf41d9f8c","src/ser/mod.rs":"9b37c484e6ac281a40260206e8cb5bec9e2dab09126c9a2010a52786fbf7df78","src/ser/pretty.rs":"9a9f6d43b2eab487de8af216b9950c93318c9ee6a91f4707ffa41e2ee492c902","src/ser/value.rs":"4e53308b7b82e50382a6d48251c27cf817eabea063c99e6ab9abe30d781c3afc","src/table.rs":"267478d627cae7bf63d4e88c9b757b7fa55a1f58ae1914ae9f5ec29279f8421e","src/value.rs":"881f7aee14ef968f5f843ccbbaa648117ceac2148df6e09d171f41c174d35dd9","src/visit.rs":"34b49c3091a6ef7c1513429f8290c26989da25cec496d3993abf33fa65ebfc58","src/visit_mut.rs":"b184d7bb94038fdc2e0fee8689112f01377d9f8c05ffafb8a1f5f2263e80ee27","tests/decoder.rs":"8093389d542f50974d6a606321b0413941709ac2cbdef48934b60088bb21e3a3","tests/decoder_compliance.rs":"a06a10a2b89758ef08dda24c4475d13638b7c31e8872ed6edc6919d5b9910bd4","tests/encoder.rs":"c84dd8e14ade77a4d55f932418567196e188fe65d3957408b9ce07c2c27c4da0","tests/encoder_compliance.rs":"643b529e2f4762b2ce98e041dffa5d4b87fee5942996e093afa5b8494e02a3c0","tests/fixtures/invalid/array/double-comma-1.stderr":"abfcc7bc82100306faf21d3636f0ae684d0fbc5e9ea89032e6cd39ecfcb92c84","tests/fixtures/invalid/array/double-comma-2.stderr":"56bd3cecd5b5ec4204d206f07751c34e1e65bee7aa108ca74ef7a8cb1aaaea43","tests/fixtures/invalid/array/extending-table.stderr":"a6c077cb49c41a9d10aca0bac6c571e570f0a772c6311d6a835f9cc46f4ab7cd","tests/fixtures/invalid/array/missing-separator.stderr":"eb38b2683f119d8b9b8c6b8ffd46da784112565ef1033febbe59469e14baea76","tests/fixtures/invalid/array/no-close-2.stderr":"214a9c5953175709a068433f0a594e0cf2be88d633905dc6e9047894b5249e4e","tests/fixtures/invalid/array/no-close-table-2.stderr":"5a2b4bf9026aa20c749551cd77458c5ffba008b5b235fa05fb7c756917018eb8","tests/fixtures/invalid/array/no-close-table.stderr":"545ad4381d5a007a6cd940a4523ae2f629617d298611c0898283a1c4783604cb","tests/fixtures/invalid/array/no-close.stderr":"85935faa2e3a57c4f0a7d519629630a96826ce4f217650972cd070fb7dca23a2","tests/fixtures/invalid/array/tables-1.stderr":"f105a34c2d87b61160881eeb09b7f54d244ba2a222d32fbfc755091939942247","tests/fixtures/invalid/array/tables-2.stderr":"77010599d1d61a34119a99acea7d84162d217df93bca01aed3ae73f1eb62dafe","tests/fixtures/invalid/array/text-after-array-entries.stderr":"391ee42f4fa3a7ec51ba1b90e69f1d9278c105426fe66ae1f80e65d7fb6ed379","tests/fixtures/invalid/array/text-before-array-separator.stderr":"7292ebcb8c9c8aaa4041279af5414de3e710977cac948988cdc8b0947223b62b","tests/fixtures/invalid/array/text-in-array.stderr":"0486e3ec5d299e39c61380a2ed8826d886edb730f6d9555a765e4314da7f5b68","tests/fixtures/invalid/bool/almost-false-with-extra.stderr":"0a14178172a5e9ed65a7d551870b4df768e7cfb39f7b66a2ac0643e2aa8374af","tests/fixtures/invalid/bool/almost-false.stderr":"ed5307c42046d6adf0bf4c3d1aa1c75faa23a46029d5e229f0c2ab4db068df1c","tests/fixtures/invalid/bool/almost-true-with-extra.stderr":"6e4dc09948a38c284f5bc52e011322a2c0182ee2f35c772d460fa15a76461d2d","tests/fixtures/invalid/bool/almost-true.stderr":"86b33938625e15e30d4166b4e81f89c669e84c5b96c2cf708d84dbf628536e07","tests/fixtures/invalid/bool/just-f.stderr":"657f90406495c748243b526e1e01737c418453a1a5ad12ff0400631e9fdaf859","tests/fixtures/invalid/bool/just-t.stderr":"8a8f5aa45b0d0acd13f121caafa85a52a8d17f1bd81542d21d3a5ff07f460b60","tests/fixtures/invalid/bool/mixed-case.stderr":"2e9a16757a17c7e604e081584e6f015ecffb0fd7b6ed969a1fe2096c09e7155c","tests/fixtures/invalid/bool/starting-same-false.stderr":"87069893e084d03c3ab540e0607498d371563c0341c6f043aff756c8f1b32c64","tests/fixtures/invalid/bool/starting-same-true.stderr":"2a1817a1e3a6558860eec1d802e1be8f2f2b54da9b2d9eaf1cddecd35d71a8d6","tests/fixtures/invalid/bool/wrong-case-false.stderr":"5eb58e82290b767febd475712f7de9ee712f094a30dcb627a757b305ab64d096","tests/fixtures/invalid/bool/wrong-case-true.stderr":"dc8e696e9137f737a232009e7e9f801aa9ebe4320a445259af74d83a6235c7b7","tests/fixtures/invalid/control/bare-cr.stderr":"568eff61d56bb362866973d9a7a488831b8b08d02f4808538a04b22ebe10bf09","tests/fixtures/invalid/control/bare-formfeed.stderr":"4532c2fdc7c4bab8fa6683cc4c46975c1dddf2f531459793dedfaab73e4ae347","tests/fixtures/invalid/control/bare-null.stderr":"fe799f446b55ba89609a52842b4eb63bfa725035c0006107c85c6a8f6e8db688","tests/fixtures/invalid/control/bare-vertical-tab.stderr":"b85c55e64c58b85343482dadcd5d833fa771a79e1d0f13a24f4185a4d0d826d5","tests/fixtures/invalid/control/comment-cr.stderr":"656e1b16fbc152545a9726a290a8ce84463a73d780ad13a32b65291f56cb7dc6","tests/fixtures/invalid/control/comment-del.stderr":"08f586fc1f6ea69e3718ab43fded3da139d5ae296cfe70bc27a7ffb4b2f106d5","tests/fixtures/invalid/control/comment-lf.stderr":"71725b218014e5ae260d5075f6bb90477e97c946e27a40c797710a190d586a58","tests/fixtures/invalid/control/comment-null.stderr":"39ca1697c9e13969314368c85401dbb141ee80f514ab4a359ea8e74880e33d28","tests/fixtures/invalid/control/comment-us.stderr":"1d8c3a908fb274503d357bdc428b82c97fd9f9b37681be09129a46454f31e0cd","tests/fixtures/invalid/control/control.stderr":"aa1ae71dbb29473161d8f82a163e6862f78c7c55d4831574e6994651fdccdb19","tests/fixtures/invalid/control/multi-del.stderr":"812c0742dab1b933689c925dd1cca16ed185d091acc51026e8fc6585c0401c00","tests/fixtures/invalid/control/multi-lf.stderr":"3d2ac666d19fc3d0fe676b4897557fe3735c43da64b4a71577c04445a1341a06","tests/fixtures/invalid/control/multi-null.stderr":"9fec8ad3ba45ddb96ad3b6a118b4fa648056e26a9128528b2c0a8fa3b01e741c","tests/fixtures/invalid/control/multi-us.stderr":"a4769a44b32457fbc791b15b442293f37c936d2394ca9aa87ad5c964dc7cbb35","tests/fixtures/invalid/control/rawmulti-del.stderr":"b2dd93070d5bb09e19ea6ca015cfa1ef279ac2cf5e7fb242d8b74318f5d8418c","tests/fixtures/invalid/control/rawmulti-lf.stderr":"7e1d64429ed08f831783bace226535852bcebb48aae05541590fb242491cd7e9","tests/fixtures/invalid/control/rawmulti-null.stderr":"84c04cc89a6bc716b6f7811142899014abdb0b49c4ea56bc163c19220b14c323","tests/fixtures/invalid/control/rawmulti-us.stderr":"4e4566a74bde0a055d2e5a0dde72d41208c2ed188175b11c9e46167dff231d3c","tests/fixtures/invalid/control/rawstring-del.stderr":"c49c702bda4ed350dec4fc43edecb16202f8e5f1f4b02b06b42b2109d775a9b5","tests/fixtures/invalid/control/rawstring-lf.stderr":"5b11decc012a95bde096088a285eaaad4b8984f6d683bd633640141b19135530","tests/fixtures/invalid/control/rawstring-null.stderr":"eafa2a63e9d12293b290405049457860a8fef70de56c4ba2f203e5f2c79a8634","tests/fixtures/invalid/control/rawstring-us.stderr":"b3d8e5dcb1c66b93f2543ea325a50decb62178a5f0bea59fe64b04d89472b25e","tests/fixtures/invalid/control/string-bs.stderr":"1b35fdd656fb29e3011e5f4302fd37d0354922a21e740eb947dac766cebf3200","tests/fixtures/invalid/control/string-del.stderr":"ec80f70e9aea38e11191e50e9dfd80415de5b0406608c935aae8b8dbed9a8a7f","tests/fixtures/invalid/control/string-lf.stderr":"f91e1e0035af8ff259ff98c79097f845d8be8886629a93da962daba1079cb382","tests/fixtures/invalid/control/string-null.stderr":"fe34d284c478853bad94235aac1f37ac3c591f97e12990847b5da0b6c99bd47d","tests/fixtures/invalid/control/string-us.stderr":"dce016319c9fa0981f03cfd8b2b1d52d2d847697ea88e037f5a0e28bb53d8830","tests/fixtures/invalid/datetime/hour-over.stderr":"bd2220bdbaa96caf3d2aaff640620e4856bffb722a0e5be61dcb5283ffd08056","tests/fixtures/invalid/datetime/mday-over.stderr":"de9d27d65c68dd09da10c229167ce881dfe0ebda457badfe24b7598ae80c47a6","tests/fixtures/invalid/datetime/mday-under.stderr":"18daf3ce2a6a972476ccabcf92690a488e4f3be804dab8458da2aebad22a2c8c","tests/fixtures/invalid/datetime/minute-over.stderr":"a29009d3f7a6b1d9afad2420f223d6a6e02df8149577547837f5eeec4075bb9a","tests/fixtures/invalid/datetime/month-over.stderr":"37a203b22c3b2510541e413ff347447f9f3319a896ee005b96f65bc0d68150f4","tests/fixtures/invalid/datetime/month-under.stderr":"24c554595ca9a999a1d8e1ef7dc28b443f2f0ad6e17337ee157fb18bdcf678c1","tests/fixtures/invalid/datetime/no-leads-with-milli.stderr":"a35c496884e921aa086c1404bc812ff74f2bfd347a3ecd96640942be5555afbb","tests/fixtures/invalid/datetime/no-leads.stderr":"2e20cb60a1ecee85b172d1402e4d8c425362e4db607706bd39494385dc6dc98e","tests/fixtures/invalid/datetime/no-secs.stderr":"65871ee020e645e737c363b22cf43c160b295871cd4ac97a37d3ea46f60e3250","tests/fixtures/invalid/datetime/no-t.stderr":"ff50b85f6bc0d49000ec6f1303fda9b44bf934c2ede61743363411bbf6ebecbb","tests/fixtures/invalid/datetime/second-over.stderr":"0ed555a874efa08b711b5227501208758d87a01ad8360cf76c3dc8761807fac4","tests/fixtures/invalid/datetime/time-no-leads-2.stderr":"f725d49ddb5af69b7285f071d68e3d8441d5e331adcfd8c025c1f3cbb68028a5","tests/fixtures/invalid/datetime/time-no-leads.stderr":"cf06f3847f3d14655a94d8cfd5a6984dc74115b1d3cdbee0662ef215738bbf65","tests/fixtures/invalid/datetime/trailing-t.stderr":"87a15cd62bbe7cba2b942fe424c045ce30a12fe439a1b49587a5cc037ffa6b09","tests/fixtures/invalid/encoding/bad-utf8-at-end.stderr":"518dc443f0404d486b40bbbd152870276016795b05f3cc8a1de64a0e08fcdda2","tests/fixtures/invalid/encoding/bad-utf8-in-comment.stderr":"e0f252d14c18ea072c098834997db8e5f68b807bb0fa6d3d34e4042a5ea6fbb7","tests/fixtures/invalid/encoding/bad-utf8-in-multiline-literal.stderr":"2328a89cd9043de10ee656f4ea0dd5e6491fd8c0484ac36099c23161dd7a2625","tests/fixtures/invalid/encoding/bad-utf8-in-multiline.stderr":"2328a89cd9043de10ee656f4ea0dd5e6491fd8c0484ac36099c23161dd7a2625","tests/fixtures/invalid/encoding/bad-utf8-in-string-literal.stderr":"eefb00fee073933fbdb95d24a9e7050c281d4719d0cb970c2c06a71a86f108b3","tests/fixtures/invalid/encoding/bad-utf8-in-string.stderr":"eefb00fee073933fbdb95d24a9e7050c281d4719d0cb970c2c06a71a86f108b3","tests/fixtures/invalid/encoding/bom-not-at-start-1.stderr":"bd4e557b8b4586cdb39a8fde46f0bb214954f9f8ef37be46e2cc19823f6d6919","tests/fixtures/invalid/encoding/bom-not-at-start-2.stderr":"27003a498cb355011782dc21f01e15457490b78c472bb9ddb54147413c8f597e","tests/fixtures/invalid/encoding/utf16-bom.stderr":"a8800edcb8f6184b712da53e74bb787c39eb891073575acbae1ad575f15043cc","tests/fixtures/invalid/encoding/utf16.stderr":"edb66c01034865f484ccf7921bfcec1efaa8599762cb9cd30c9c8103275bc4e6","tests/fixtures/invalid/float/double-point-1.stderr":"2917901dd186adc39cb5965faf388fa2babe577ef3bfcadd4919232868a727cf","tests/fixtures/invalid/float/double-point-2.stderr":"7eda489da0436d6f0f2268aa4005b422d215b4785af0c1696c8731908a563f17","tests/fixtures/invalid/float/exp-double-e-1.stderr":"e64082e328fcfbeff57e6801448c769b12bc8e879b77421b688b2e147e386713","tests/fixtures/invalid/float/exp-double-e-2.stderr":"5c45326ef7287ea16a9e08275222e281b5d61c9322f8764f6533707f9772e255","tests/fixtures/invalid/float/exp-double-us.stderr":"ebd30aa3f7cd3a0a5e79bbbde1beff209d24f4ab58eb5552c1baf0eb2194e97b","tests/fixtures/invalid/float/exp-leading-us.stderr":"19c8f676dd45a5db09bd5baba5c3e7b661e83099a340331ee6bb10defe679569","tests/fixtures/invalid/float/exp-point-1.stderr":"23e73e4e63db888546866967a1c0319a1db269f23ee9c277b298e9f2db88800e","tests/fixtures/invalid/float/exp-point-2.stderr":"633328e085fb04d6a79cdfb696f45a1836c3a8b6afafc4cd5e16d48465aa4613","tests/fixtures/invalid/float/exp-trailing-us.stderr":"d633c5a44a55dc2b6cac18f739cecb33526f31d85f72cada0ebf70c4cca56dcd","tests/fixtures/invalid/float/float.stderr":"cc664d16849deec2ae7ebee6a3f46923bd5959075e282315c4f60461cdb13a0f","tests/fixtures/invalid/float/inf-incomplete-1.stderr":"38cd906dfee7f13b8cbdb27f3406ab0499fae3ae16f3c77bc7fc48d009595d93","tests/fixtures/invalid/float/inf-incomplete-2.stderr":"97a9ae1ff194a95b5be2abaf2cd8179ada832cdd9fad349efa9951e7ab92e435","tests/fixtures/invalid/float/inf-incomplete-3.stderr":"034bc609343ecf1e659d6250f719e5f93512e8140228e44e57b538765e58a1f7","tests/fixtures/invalid/float/inf_underscore.stderr":"621326dde26e5364c7af1b562fb651f4184d9b5fc9bc45edc12f52b588d506bc","tests/fixtures/invalid/float/leading-point-neg.stderr":"d19e28ba2f11069800df4dd1951025aa7f75425f7258e8caf4bbf6abe0e84bc9","tests/fixtures/invalid/float/leading-point-plus.stderr":"10750e9acccb17f0682db30fb175d083d06c822a4863d3d6b8ddb6c75b7b22ec","tests/fixtures/invalid/float/leading-point.stderr":"2545b7a615528595f5d53a7338403c83a8587e70600b1501225446e5f456c805","tests/fixtures/invalid/float/leading-us.stderr":"dc958138922097b2e1e3865c7818604b2249268af4acbe5cafe0ce8c68a90a86","tests/fixtures/invalid/float/leading-zero-neg.stderr":"d1fad35fa8d18f93ebfdf681d3476f02600e5c39cc942ca9bc36181476cbbe53","tests/fixtures/invalid/float/leading-zero-plus.stderr":"ad8ba7a7c12cb4b296cc0d43915106732e6a6a713aea67034587d1fc0c8093df","tests/fixtures/invalid/float/leading-zero.stderr":"cc664d16849deec2ae7ebee6a3f46923bd5959075e282315c4f60461cdb13a0f","tests/fixtures/invalid/float/nan-incomplete-1.stderr":"f4bee0b1c639bf800fc4dda38276142e715cd85ab6cc5e93ae2112ea63d7de89","tests/fixtures/invalid/float/nan-incomplete-2.stderr":"dc908ec577d29083bfd709fc4bdc2fa641d7fb2ba77a5d7441215680a8839d69","tests/fixtures/invalid/float/nan-incomplete-3.stderr":"abab5a41e0f2f1bad2d2050d0c913dfd8c15e50530d53ef8de327f106f564e02","tests/fixtures/invalid/float/nan_underscore.stderr":"25b67a7d6c743f673be7b409c9990de5de8b52a1d97c32e6f4e62f33147f1872","tests/fixtures/invalid/float/trailing-point-min.stderr":"69ad03ae81990d580a6d63bdd5ab594de00c0a16694c8671704c6243b4578b38","tests/fixtures/invalid/float/trailing-point-plus.stderr":"fba0bbad890020fe943e9f23644e81bf0bb7d114230fe16182e866fddcfc108b","tests/fixtures/invalid/float/trailing-point.stderr":"2f12b368fd94304ab0126ebb5888c519475f9ca28e9ca702c477cf0085ba9216","tests/fixtures/invalid/float/trailing-us-exp.stderr":"2ad53ae4736ce5134921acf0c16bc5031627c0da3119edcdc4bd7eb300d40337","tests/fixtures/invalid/float/trailing-us.stderr":"506cb8051f1045ea1dc7f11865d58cbca0216502d273e1c10366c8be7cc9ab43","tests/fixtures/invalid/float/us-after-point.stderr":"fa9fb59f703b6770be3dc094c04eb2c4add8a7a7ab79d9fe508cfeee785404f1","tests/fixtures/invalid/float/us-before-point.stderr":"14e09a7a382e249e5143d1c81d6e4623408eb2d505e1e3f86c370a3a3bf6cd9e","tests/fixtures/invalid/inline-table/add.stderr":"bf95d34749254300f4179ed1314cc9cabd7c7b63fc2453fc7adbc7869b63be4a","tests/fixtures/invalid/inline-table/double-comma.stderr":"2132a1c4d97fab140089818f990284333e22ef91d20a9f65e11d4dd15b1a701a","tests/fixtures/invalid/inline-table/duplicate-key.stderr":"72bea73b20005f15ced977aae70a1b0f3bbe3e35598231aca9a2303d770efdc3","tests/fixtures/invalid/inline-table/empty.stderr":"604fef40337f04e5f37a52239d6509850aba95677a7a94ca8476a6c21b648a43","tests/fixtures/invalid/inline-table/linebreak-1.stderr":"45b0611d37c1ece88bf6c88b3528adc3d73e0cd3e3b24dcf07ab151023a6f488","tests/fixtures/invalid/inline-table/linebreak-2.stderr":"f7672965326b44adaf0cb4796a087fbe779a8b17fbb458090a33375d0c54e5b4","tests/fixtures/invalid/inline-table/linebreak-3.stderr":"e8c70f0c91b15e701567e93d8df1cd3bec593696af05ec1d95e8f9e00ab20fa6","tests/fixtures/invalid/inline-table/linebreak-4.stderr":"3d31147f9e1ff5f94384e4df1675dfff2da6f076cb0a729771615f05b990be91","tests/fixtures/invalid/inline-table/no-comma.stderr":"9f1c85e0df72c7e7e011c26a0d5dd9dea8b7a5e18c3ba9a53ff4a20a9429dce9","tests/fixtures/invalid/inline-table/overwrite.stderr":"812d1bc74d07750048a521e513a565676e606d4fa1a32d2ebda7af8fa064d3ab","tests/fixtures/invalid/inline-table/trailing-comma.stderr":"4791911dafd6602e2891d6ffc4d32ef8e9d0c1f8f6d37e84d440feb896d9cb88","tests/fixtures/invalid/integer/capital-bin.stderr":"fcfc8b0bddd36a641d3f5cc2ceee88554619fabf6874e11cdfdd147be8781881","tests/fixtures/invalid/integer/capital-hex.stderr":"c8e2d64f9659435a0387bb7e6447896eda253fef77e0214a4073fcffbac693a7","tests/fixtures/invalid/integer/capital-oct.stderr":"ec465fa25da212b0c9b6265ac8e9cd05c1fa07d614dafb3bc9b2ca74d6c2a7a7","tests/fixtures/invalid/integer/double-sign-nex.stderr":"8d57da526240c1cf73423b688442922ae291ff26e3c09f9c3b5b150e62e5cbaa","tests/fixtures/invalid/integer/double-sign-plus.stderr":"55896d9bd19637e124482966a12109a1a8351620ddc6f8d28553d70359f523f1","tests/fixtures/invalid/integer/double-us.stderr":"f14ed7bd3ad26b2203763fa953dd6e99212e50fb8e43a4eaeb115c1a7df4fc25","tests/fixtures/invalid/integer/incomplete-bin.stderr":"64168fc7ede87a10c12f82325fce644a7d9b9c3af55a313184175df7926845e3","tests/fixtures/invalid/integer/incomplete-hex.stderr":"ed2423540e288f4673bc68822a799bea04f571db5de56154e10360b03ab79553","tests/fixtures/invalid/integer/incomplete-oct.stderr":"9ed35e3078703a38996f20dc3e86477149564c8abd237c644bdf3a5ef26e3417","tests/fixtures/invalid/integer/integer.stderr":"ed5ef991b733b3d51700364da18bf58f1b7eb68053467afcbff22775b3b82788","tests/fixtures/invalid/integer/invalid-bin.stderr":"7248d47f2c7db309254a3a41af28bc1a6e96bfa95e0c8c94d607f65a1a30cee6","tests/fixtures/invalid/integer/invalid-hex.stderr":"3976255c6fe35a1e29f0fed7324eee8420ababd0f6f1f7702908c3df47c88846","tests/fixtures/invalid/integer/invalid-oct.stderr":"9f6776e33887cb446a5590d8fe4e51c36747c634cd5e4efaa84f807d3ce244e0","tests/fixtures/invalid/integer/leading-us-bin.stderr":"28edc918ac016cc9cb7b0b20fe2a5e1dc0175de0aa8105d7a6ca263815c6e4e7","tests/fixtures/invalid/integer/leading-us-hex.stderr":"2a1a5943399c8ba5849ba569411bfefc8323659c852bd714ca917231f6212ef0","tests/fixtures/invalid/integer/leading-us-oct.stderr":"aad69bdd80f94e907bda03558a1302e54d58d8911fe2b564e93cb0ec48403b09","tests/fixtures/invalid/integer/leading-us.stderr":"3a265cc11f1b0d43d4b532a47776486ec7c7ea7afe70813ab00c5a37cf87a9df","tests/fixtures/invalid/integer/leading-zero-1.stderr":"ed5ef991b733b3d51700364da18bf58f1b7eb68053467afcbff22775b3b82788","tests/fixtures/invalid/integer/leading-zero-2.stderr":"5c70e7874256512c0ef6bb364497d4e10154e994056f2feb7c5c729016522091","tests/fixtures/invalid/integer/leading-zero-3.stderr":"fb2730feda6f669a3b8c4332f01369e52ce1b942807f1bf3d9762b1fea04aeac","tests/fixtures/invalid/integer/leading-zero-sign-1.stderr":"c9d2d992eea36c4fe228eb74741bd8d0ede1e354cad132b79462e7b502b37f95","tests/fixtures/invalid/integer/leading-zero-sign-2.stderr":"4248329b339020cc2ea586f2775a0b4f4cbe2ae3f0f75b935263363b8be5eaf5","tests/fixtures/invalid/integer/leading-zero-sign-3.stderr":"3b414808727d3a446efdfca0033525e17536f9b54104d8a9cb9278b054d213df","tests/fixtures/invalid/integer/negative-bin.stderr":"74aae673b861bd46544e4835fe7075e20158dd69e27f75c790d48a6006476c73","tests/fixtures/invalid/integer/negative-hex.stderr":"799bd8120f4cf2c36e7f65a5f9aa43a3ec87dd95dd3bf68501059da9f21f8c9e","tests/fixtures/invalid/integer/negative-oct.stderr":"fb082674d0f5a8a231c91c2d34cf47fdeece4c8c5c8c7b23fb09fce95ed59a9f","tests/fixtures/invalid/integer/positive-bin.stderr":"54d8a33743737f374480cd1235bf3f7e0847d252ef7e2bb1d447529cbc0f6692","tests/fixtures/invalid/integer/positive-hex.stderr":"3b21b23cc3dd6b213a19256f4ffb4bb36172de2f739f90bbea78636f7a50524b","tests/fixtures/invalid/integer/positive-oct.stderr":"cc493d14bcb092f49b517fa5143e29c45020d491d94ac662f85b2af34805cf11","tests/fixtures/invalid/integer/text-after-integer.stderr":"07a13ad4841a452eff00947234a4ebac4d209ea0294162888db35668648bb55d","tests/fixtures/invalid/integer/trailing-us-bin.stderr":"62da06cf06527b9e9cbeba6c5299ce6001d40592e9d007c8350090977f4d1b58","tests/fixtures/invalid/integer/trailing-us-hex.stderr":"1b290eada58a7202b1a9251afd8e0e72a4caa8ad5c85036d1050e7de8141e94d","tests/fixtures/invalid/integer/trailing-us-oct.stderr":"34e6f86ffb0099e6e1ba67deb51e36af62dfce4e7299b94503a219339bf16447","tests/fixtures/invalid/integer/trailing-us.stderr":"3ab49ee921eb772f5aa4eaf0fb3619b1dcd9a9db3f4ebbd9bc505581a985e753","tests/fixtures/invalid/integer/us-after-bin.stderr":"a94a87ebab3536899ce7c0c785f020b3a236c60d24c0bd7494628ca310c40768","tests/fixtures/invalid/integer/us-after-hex.stderr":"9009b187f615f06e3392eabd8ffa58311ed1c2b1cd76f8c5bd99671242f2e026","tests/fixtures/invalid/integer/us-after-oct.stderr":"05af70a21980416fbd602337f9af22a1c600a294635d10ef1ca1b2138338e712","tests/fixtures/invalid/key/after-array.stderr":"487d957b20226ac36e27d6efb1e3d24147284c9a5e10a0188427a1c940d31ef0","tests/fixtures/invalid/key/after-table.stderr":"f70e84770817f096fcc1b6195c6b0a79d25210c6930ce412a89646040ee3d713","tests/fixtures/invalid/key/after-value.stderr":"00d4d2d3ccd61f64a92df0ca575aeafcd96e91d053d835ca855973339ba458cf","tests/fixtures/invalid/key/bare-invalid-character.stderr":"b1f64d54a43017e6cc09755fa7ba477901721d23f9271ec658fc9362f46631b3","tests/fixtures/invalid/key/dotted-redefine-table.stderr":"564febb355d1556df42f428a046ac6fdc5dad49b2b736be5824b0c13fcd1fae9","tests/fixtures/invalid/key/duplicate-keys.stderr":"7c9dfef2ef19b1487b7592a267ab5ba21c8b833dfa9ec1c3151e369c2fdba26e","tests/fixtures/invalid/key/duplicate.stderr":"764ef48bb06c9096c853b1156c8d29ba0065616939a5335146f5af88a424cea3","tests/fixtures/invalid/key/empty.stderr":"af6d3636ca73e5496c40d9c918c59b61fd86812db262649e5268094193873130","tests/fixtures/invalid/key/escape.stderr":"155aa9389f0eb28cac3b42974af7ea9e2eef8d96f084f08f9f75e960fc8ce8c7","tests/fixtures/invalid/key/hash.stderr":"85dd91b96aa4f81cc7922b02b411f25d9053bddd1e5b893c2a2ee9d0115a7cac","tests/fixtures/invalid/key/multiline.stderr":"d625f2caaf01d53d72d6f1c3df0952fe3ca8c5f3b081503cb02b9994c088b733","tests/fixtures/invalid/key/newline.stderr":"714aed0a140062f977ec85b9afa50f68448c67e806168e60b4f4554ab270b2b9","tests/fixtures/invalid/key/no-eol.stderr":"440ec927e94f0e520a0f256c865041f0478e1c82f3bb79323b7ddc36fc942edf","tests/fixtures/invalid/key/open-bracket.stderr":"3b36814373f51a8ea00a448d65bc514e8d99f5163b7dd8101df62bcd0a06e801","tests/fixtures/invalid/key/partial-quoted.stderr":"dc9059a014ed53071ed170b1e280923556dc09e0be2ae96cc8474e9da59fa378","tests/fixtures/invalid/key/quoted-unclosed-1.stderr":"6cdec8a7c5352a2f246273afaa923dfa81d4d2e68cca5b4f9a19193559b164c2","tests/fixtures/invalid/key/quoted-unclosed-2.stderr":"b4817e6f85a90fbb6adf049ba57c268f9888f1b42b3d62200c359606176170b1","tests/fixtures/invalid/key/single-open-bracket.stderr":"917c0203d1e45309fcff82ce33fdd2d989f630fb99290a40cb9e08a6f7ca0ef8","tests/fixtures/invalid/key/space.stderr":"3a5fa712d667890678873e3d4e4cabb084c67091c5ec6155355d5bd4229585dc","tests/fixtures/invalid/key/special-character.stderr":"a84c2f293c1e421a1c87050cb0211de80dbfe7a79939db0338fa35bf0c181ef2","tests/fixtures/invalid/key/start-bracket.stderr":"223d8a22bf34459cd9bcb993ae2a51ab3cc436674e3367e92f7d74e9f8710a45","tests/fixtures/invalid/key/start-dot.stderr":"f9366a1492ae24fd0721724b4039d2675e91219de564aff2826adefd83fac571","tests/fixtures/invalid/key/two-equals.stderr":"a0aae899cfa75df41104a4d3090a309fc7ebcd95bb5a944cf742f3d3fc9d4782","tests/fixtures/invalid/key/two-equals2.stderr":"861826b9456ab3a74f63f5c555e13d959a3991dfa6ce126ae5ed14d43f7dcee1","tests/fixtures/invalid/key/two-equals3.stderr":"71614864344e321ac5de238b7ef9d097c6d7f3ac3eee4118d96827b4b8bd6658","tests/fixtures/invalid/key/without-value-1.stderr":"16c2823a39a82c3c27e0959a691b7a95e3392d62195884697893d373b967b9c0","tests/fixtures/invalid/key/without-value-2.stderr":"d340f94f5d96f5730ab269db7ef27aca171d64e35af1181c474d75a7d11d6590","tests/fixtures/invalid/key/without-value-3.stderr":"3cf3072fe9206bfe6c682103d0414627a5a63db4c4a319cf37efeb5fe6b92007","tests/fixtures/invalid/key/without-value-4.stderr":"07132bec96e9a9a672bafdc3c448b7c596257245f8c3e2cae04641f9798644ec","tests/fixtures/invalid/spec/inline-table-2-0.stderr":"5ad1a938b1d1f0f3fdbd1871efdebfd30e136407ecdd9e2eff22150d00624b3f","tests/fixtures/invalid/spec/inline-table-3-0.stderr":"fcbc05e911b7db81bd918768fe98a51a7026fd476d616718cc417d2f08bcc1a1","tests/fixtures/invalid/spec/key-value-pair-1.stderr":"d5391142dfd56040840cf91b1e28e3c048229e3d9998534d41001cd6657f9bd6","tests/fixtures/invalid/spec/keys-2.stderr":"3c4ee6066fc75d2c1f1b325f618a01113694c318e330ff4f237e89127f332c87","tests/fixtures/invalid/spec/string-4-0.stderr":"910ee4b240159b828a7509c8dfb46507071a8d8636f3935a3914d6d91f315295","tests/fixtures/invalid/spec/string-7-0.stderr":"5128f0a930b3034e494a6bee4f384a587e9fd858b25f8cc529a488c94ee9670d","tests/fixtures/invalid/spec/table-9-0.stderr":"49dac70d337266f5c6b333fee468f279fed1bff62bfb4ec7436c8b6683ce0dd2","tests/fixtures/invalid/spec/table-9-1.stderr":"d9e071c70356c01b6537f876989ad2067e7773dd5eb24a298439d192dbad12d0","tests/fixtures/invalid/string/bad-byte-escape.stderr":"14f6ae446b3b8cb434267eba11c6ec5a1badef4f867169b173698cf9f1a29d95","tests/fixtures/invalid/string/bad-codepoint.stderr":"e5a9704b87fe85e447e817197ad4e59e27b33bd93e7c5ad3987561d119ce6ee4","tests/fixtures/invalid/string/bad-concat.stderr":"499219633467b9174471db40543ca188e2b906c470e511d2f701f5f5475d96be","tests/fixtures/invalid/string/bad-escape-1.stderr":"34a15ce7012217c62d31d5392038517c216f0cbfd5d75fb5f3c2bb07afd3f25c","tests/fixtures/invalid/string/bad-escape-2.stderr":"955aab40b16043c847d85d04e6adcd093c930dd8416d29c2ab5953c077eac6f4","tests/fixtures/invalid/string/bad-hex-esc-1.stderr":"aea935cf1e17743356e6fb1059afed2d0ee5262906594782e5537a025398038e","tests/fixtures/invalid/string/bad-hex-esc-2.stderr":"deac5217cf80acc759e1b40c43f5f56431b276dc2c896aae5490d57583105e06","tests/fixtures/invalid/string/bad-hex-esc-3.stderr":"94ecf886427e8fe5daf1d8f932bf1887f2533b10bc1f57cb6de03ea28fef466f","tests/fixtures/invalid/string/bad-hex-esc-4.stderr":"382b011dd4070554ee875fde06703d8332ef6ad36f3619f3536b0a4997ee2745","tests/fixtures/invalid/string/bad-hex-esc-5.stderr":"a8a039fae822eda68591da28ff2a117b5d85e99d066e9126ebbb6426a1cad52d","tests/fixtures/invalid/string/bad-hex-esc.stderr":"aea935cf1e17743356e6fb1059afed2d0ee5262906594782e5537a025398038e","tests/fixtures/invalid/string/bad-multiline.stderr":"141e5770190dd184bb1f64f6bb14fc017210bbd918ab5c8b7a3d80b86b21772b","tests/fixtures/invalid/string/bad-slash-escape.stderr":"d62f894ee166bddf84432507fb4ba56473c0a230fd88a3ccc2b199a72a34e613","tests/fixtures/invalid/string/bad-uni-esc-1.stderr":"d1d6e0c78b64f776a428aa7cb332b0ccd659d24950dd3e8f1d2a1450f61b37e5","tests/fixtures/invalid/string/bad-uni-esc-2.stderr":"d8ed938bafdeda05c083d79ed73f5043dabe0f5f1515c6857ae7a61db9026ebc","tests/fixtures/invalid/string/bad-uni-esc-3.stderr":"de1c29897549ae37988a38e1c370f9974fcbf7d4c4b3fd457d731999cfc05929","tests/fixtures/invalid/string/bad-uni-esc-4.stderr":"4e5a715e8dc212d073d399bb0ae9b49413396744282a195c34cb03e6f4fbd9eb","tests/fixtures/invalid/string/bad-uni-esc-5.stderr":"2419cd927d8e31ebf5025558e70bb1295d98bdb36c17f0e00620b9c4a7aadbf6","tests/fixtures/invalid/string/basic-byte-escapes.stderr":"b42fd0273c7438bf13ddea9552204bb9209cdcc8e4151311d2446185d2cd546a","tests/fixtures/invalid/string/basic-multiline-out-of-range-unicode-escape-1.stderr":"725cd4955987c3d6e736832281316d6c1a2446303e9a1dc78900cef4bb84ee64","tests/fixtures/invalid/string/basic-multiline-out-of-range-unicode-escape-2.stderr":"c6698fbdb95188d53bfdaa4a4f590d86a73aafcc321a5d9511ab43ce51be1c78","tests/fixtures/invalid/string/basic-multiline-quotes.stderr":"28177a49532f22aaffc9dc204592a2c5eca2fc20f8e208b7c7f589201e8b7de5","tests/fixtures/invalid/string/basic-multiline-unknown-escape.stderr":"a83406b30eb3ab2cebb0230d8d65d0b7583885138f2c070976ae61de2c8b17f3","tests/fixtures/invalid/string/basic-out-of-range-unicode-escape-1.stderr":"19af67599c6c2eef340c9fdb0ab2cc788928def50280af939247a1274447781f","tests/fixtures/invalid/string/basic-out-of-range-unicode-escape-2.stderr":"0e2e1a69358502ec17a07e4fc151b70e8a3b5123798cb38f98fe2d146515a84e","tests/fixtures/invalid/string/basic-unknown-escape.stderr":"1de467948fb18f61336350063701d9c5a6615054fe740a9be650f71f5ca4236b","tests/fixtures/invalid/string/literal-multiline-quotes-1.stderr":"249123229606aa8eedff1b5bdead5022daf470e47dbca639e32019d1d61dbcf9","tests/fixtures/invalid/string/literal-multiline-quotes-2.stderr":"d9784af1ff056a90bf531307749d53a5d24ffffbc0f4aada7fcee417a50d1615","tests/fixtures/invalid/string/missing-quotes.stderr":"462f24701d2c51d36b18d06b69be2f6eb36449b5f3ffbaa737fcbd2b2151ae4a","tests/fixtures/invalid/string/multiline-bad-escape-1.stderr":"18469c4d37d011b3f30ae17e3111b5e8a9526d593475e5d8d7a9b19461a40e8d","tests/fixtures/invalid/string/multiline-bad-escape-2.stderr":"d43896d3005c8470dc8149e2b74eb8825c6d9fedfe9f48125ad88a95c1dc3035","tests/fixtures/invalid/string/multiline-bad-escape-3.stderr":"92f732c6bcb922e25d2a001a389f93b596dd0e91109cbdcb651efa146309dc2a","tests/fixtures/invalid/string/multiline-escape-space.stderr":"94b451b6c03055186777a248cb216f95a1b2e29df25549f345d96bd0a4e63f1e","tests/fixtures/invalid/string/multiline-no-close-2.stderr":"e500e99a44305b1e148b211e963478cf1554f8c9536d3108390cf41d5b2ce069","tests/fixtures/invalid/string/multiline-no-close.stderr":"d5b9602d23b0cb023fbe3ae80d862fd60332475ba8863a1e977f17cb326a4548","tests/fixtures/invalid/string/multiline-quotes-1.stderr":"046956658c0a73e665e7a6a2044ff83c8efb8cdd8c2ab153c163eb1e61068c56","tests/fixtures/invalid/string/no-close.stderr":"3ad8aff0932d98592b808fc6f44fa68a854097f8025e92c11af1acb6de3d3cc7","tests/fixtures/invalid/string/text-after-string.stderr":"1c1e4677be8d3dba0e7933b3ed1cbb6e0bcf6f600cf9a989a7b09c9424a4d0a7","tests/fixtures/invalid/string/wrong-close.stderr":"441f4f1b73c11c8dbf2f73cf9a7766f17a9517b3b9142e86736ed43eaec07f18","tests/fixtures/invalid/table/append-with-dotted-keys-1.stderr":"a67f1f152005295e0a1bb3dcaaa755edd05f19ac5316b8ad2eb4d45797e0f770","tests/fixtures/invalid/table/append-with-dotted-keys-2.stderr":"72d9ea8a90b4d9e5319c2bf951bdde6a87a205612e82ed5a09cea2b706bfde7f","tests/fixtures/invalid/table/array-empty.stderr":"e8a41c60adf7756361920816b6c4f44125a813c869b71fae2c98473e4da1b231","tests/fixtures/invalid/table/array-implicit.stderr":"7797ce41aab0567fc9d40e277cc32c12e1f16ffc0e73857fdb3bbf754246305f","tests/fixtures/invalid/table/array-missing-bracket.stderr":"5f1e8703d59398f6595d21ed0abcc7dc3ce77943ad0f71eede9ad63ea2bcc7c1","tests/fixtures/invalid/table/duplicate-key-dotted-table.stderr":"ca58908463cbe2ec6b3de314237c178fee64245cc738c72a7b9e08bb3d02b2b0","tests/fixtures/invalid/table/duplicate-key-dotted-table2.stderr":"cb59f2ed324642de947f3cd9373ca111ec35104a5f33578f64c48084ce1a84f5","tests/fixtures/invalid/table/duplicate-key-table.stderr":"f4816522738b3e2ace87d1100a3d73e6a122d8dc67d05e0b35a1438e16a8952c","tests/fixtures/invalid/table/duplicate-table-array.stderr":"11d293e4b4f205fc98cd892f25a25f533cb922c963ecf095a932d2e9d550be4f","tests/fixtures/invalid/table/duplicate-table-array2.stderr":"fa9cd3b1212eed14ec56b66a16471ac2f7c0398d743982abb7c5cb4b5c7a5fe4","tests/fixtures/invalid/table/duplicate.stderr":"3e6d1b1a2f44d449e8cb0098e7c40ad1e755363b446f3821c399abfb26eb9939","tests/fixtures/invalid/table/empty-implicit-table.stderr":"cd3606ce97c5537d18146cd978403636a65fa703c83616da75b8cafa86e8fa24","tests/fixtures/invalid/table/empty.stderr":"4399e419abbcfbec93f5915e7fbdd11b6e462a4c066a29eacda159abfc588734","tests/fixtures/invalid/table/equals-sign.stderr":"472de6b908a03c99637b635a3a898ed956684ae422e1b4b135ec94986ea45f2d","tests/fixtures/invalid/table/llbrace.stderr":"db6bbee7ed15994398901c46ed4b40904897e71f5d972deb7904ccac49cd834e","tests/fixtures/invalid/table/nested-brackets-close.stderr":"e1dff60ea8f77dd1b8fae7d1d63c788c838c80560172d92377cc168f5cb5923a","tests/fixtures/invalid/table/nested-brackets-open.stderr":"bd58eb0630dc0c51ebc288258d360d707c8f43a5877ddc21e9420f8eb76a2f4c","tests/fixtures/invalid/table/quoted-no-close.stderr":"6bf7e2d30c735a55f595140af7c7f6be89b6faf868f4473ea39570fdb87d5823","tests/fixtures/invalid/table/redefine.stderr":"3e794bce5bb6ae9f603f50e3dc62d136701ec478078e8a8e99c94229778e24ca","tests/fixtures/invalid/table/rrbrace.stderr":"342a5ff362c8b4c1e85a6442029291bd33165a3b36552794fcd5269249bf36a1","tests/fixtures/invalid/table/text-after-table.stderr":"6dfaf1fc3199f0602fea52f7b1c65869eb2f8643b9e90dc1e718a183fb972485","tests/fixtures/invalid/table/whitespace.stderr":"fa48d4dc83f92e729dc25c6fc6a0c336014391b4bdb3392998f18141d2deb350","tests/fixtures/invalid/table/with-pound.stderr":"97dbd1ceb7f357bd98cc1caa9a602c638aaa5831237b7d63b18153acc64d3af4","tests/invalid.rs":"daa9034453fb7f10718020e36a07a19664eb852071995f17480c595cb44e2cdf","tests/testsuite/convert.rs":"9140d681dbb9370b975d5bc1cd4e9e640ac4023c6789edcae544e66657ad5fe9","tests/testsuite/datetime.rs":"105d95570d05e9ecbc30bfe7d081f9d63e2f36634e9124da012f467c6134549e","tests/testsuite/edit.rs":"7ff72670fe971ce9cd3e94a9254d1f54ebc792d8881b688d397cd9a996f2d051","tests/testsuite/invalid.rs":"31789643e3419ab922f8258e5a0421e1648b64aa5b96d3e1fb79bae36abf286e","tests/testsuite/main.rs":"a363749a7074ee95e3b7c556c0b0f59f5818445ca4762ec53693f451359b268a","tests/testsuite/parse.rs":"3bd2b50bd735c6ef5ed276ce6409f068c3aa93abe2480f285c18a9c5425fbd96","tests/testsuite/stackoverflow.rs":"426d4e621bbafe62f8aba2e8c62e715929185d5eca4c5083b6427b601abc667a"},"package":"f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a"}
\ No newline at end of file diff --git a/vendor/toml_edit/Cargo.lock b/vendor/toml_edit/Cargo.lock index 1cea4cabf..5dfc8c25f 100644 --- a/vendor/toml_edit/Cargo.lock +++ b/vendor/toml_edit/Cargo.lock @@ -666,7 +666,7 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.19.11" +version = "0.19.14" dependencies = [ "indexmap", "kstring", @@ -890,9 +890,9 @@ checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" [[package]] name = "winnow" -version = "0.4.6" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61de7bac303dc551fe038e2b3cef0f571087a47571ea6e79a87692ac99b99699" +checksum = "81fac9742fd1ad1bd9643b991319f72dd031016d44b77039a26977eb667141e7" dependencies = [ "memchr", ] diff --git a/vendor/toml_edit/Cargo.toml b/vendor/toml_edit/Cargo.toml index 989877150..26929ff2a 100644 --- a/vendor/toml_edit/Cargo.toml +++ b/vendor/toml_edit/Cargo.toml @@ -13,7 +13,7 @@ edition = "2021" rust-version = "1.64.0" name = "toml_edit" -version = "0.19.11" +version = "0.19.14" authors = [ "Andronik Ordian <write@reusable.software>", "Ed Page <eopage@gmail.com>", @@ -127,7 +127,7 @@ optional = true version = "0.6.3" [dependencies.winnow] -version = "0.4.6" +version = "0.5.0" [dev-dependencies.libtest-mimic] version = "0.6.0" diff --git a/vendor/toml_edit/src/array.rs b/vendor/toml_edit/src/array.rs index 68cb4467a..045b451e0 100644 --- a/vendor/toml_edit/src/array.rs +++ b/vendor/toml_edit/src/array.rs @@ -303,6 +303,20 @@ impl Array { } } + /// Retains only the values specified by the `keep` predicate. + /// + /// In other words, remove all values for which `keep(&value)` returns `false`. + /// + /// This method operates in place, visiting each element exactly once in the + /// original order, and preserves the order of the retained elements. + pub fn retain<F>(&mut self, mut keep: F) + where + F: FnMut(&Value) -> bool, + { + self.values + .retain(|item| item.as_value().map(&mut keep).unwrap_or(false)); + } + fn value_op<T>( &mut self, v: Value, diff --git a/vendor/toml_edit/src/array_of_tables.rs b/vendor/toml_edit/src/array_of_tables.rs index 461a716c2..c4d719488 100644 --- a/vendor/toml_edit/src/array_of_tables.rs +++ b/vendor/toml_edit/src/array_of_tables.rs @@ -91,6 +91,20 @@ impl ArrayOfTables { pub fn remove(&mut self, index: usize) { self.values.remove(index); } + + /// Retains only the elements specified by the `keep` predicate. + /// + /// In other words, remove all tables for which `keep(&table)` returns `false`. + /// + /// This method operates in place, visiting each element exactly once in the + /// original order, and preserves the order of the retained elements. + pub fn retain<F>(&mut self, mut keep: F) + where + F: FnMut(&Table) -> bool, + { + self.values + .retain(|item| item.as_table().map(&mut keep).unwrap_or(false)); + } } /// An iterator type over `ArrayOfTables`'s values. diff --git a/vendor/toml_edit/src/inline_table.rs b/vendor/toml_edit/src/inline_table.rs index 9327818e6..3dc6c0c05 100644 --- a/vendor/toml_edit/src/inline_table.rs +++ b/vendor/toml_edit/src/inline_table.rs @@ -363,6 +363,24 @@ impl InlineTable { kv.value.into_value().ok().map(|value| (key, value)) }) } + + /// Retains only the elements specified by the `keep` predicate. + /// + /// In other words, remove all pairs `(key, value)` for which + /// `keep(&key, &mut value)` returns `false`. + /// + /// The elements are visited in iteration order. + pub fn retain<F>(&mut self, mut keep: F) + where + F: FnMut(&str, &mut Value) -> bool, + { + self.items.retain(|key, item| { + item.value + .as_value_mut() + .map(|value| keep(key, value)) + .unwrap_or(false) + }); + } } impl std::fmt::Display for InlineTable { diff --git a/vendor/toml_edit/src/item.rs b/vendor/toml_edit/src/item.rs index 48a1a3566..2025fd916 100644 --- a/vendor/toml_edit/src/item.rs +++ b/vendor/toml_edit/src/item.rs @@ -7,7 +7,7 @@ use crate::table::TableLike; use crate::{Array, InlineTable, Table, Value}; /// Type representing either a value, a table, an array of tables, or none. -#[derive(Debug, Clone)] +#[derive(Debug)] pub enum Item { /// Type representing none. None, @@ -316,6 +316,18 @@ impl Item { } } +impl Clone for Item { + #[inline(never)] + fn clone(&self) -> Self { + match self { + Item::None => Item::None, + Item::Value(v) => Item::Value(v.clone()), + Item::Table(v) => Item::Table(v.clone()), + Item::ArrayOfTables(v) => Item::ArrayOfTables(v.clone()), + } + } +} + impl Default for Item { fn default() -> Self { Item::None diff --git a/vendor/toml_edit/src/key.rs b/vendor/toml_edit/src/key.rs index b7038c36d..c1ee1655c 100644 --- a/vendor/toml_edit/src/key.rs +++ b/vendor/toml_edit/src/key.rs @@ -29,7 +29,7 @@ use crate::InternalString; /// For details see [toml spec](https://github.com/toml-lang/toml/#keyvalue-pair). /// /// To parse a key use `FromStr` trait implementation: `"string".parse::<Key>()`. -#[derive(Debug, Clone)] +#[derive(Debug)] pub struct Key { key: InternalString, pub(crate) repr: Option<Repr>, @@ -142,6 +142,17 @@ impl Key { } } +impl Clone for Key { + #[inline(never)] + fn clone(&self) -> Self { + Self { + key: self.key.clone(), + repr: self.repr.clone(), + decor: self.decor.clone(), + } + } +} + impl std::ops::Deref for Key { type Target = str; diff --git a/vendor/toml_edit/src/parser/array.rs b/vendor/toml_edit/src/parser/array.rs index a99bb8241..e3b1f3f52 100644 --- a/vendor/toml_edit/src/parser/array.rs +++ b/vendor/toml_edit/src/parser/array.rs @@ -2,6 +2,7 @@ use winnow::combinator::cut_err; use winnow::combinator::delimited; use winnow::combinator::opt; use winnow::combinator::separated1; +use winnow::trace::trace; use crate::parser::trivia::ws_comment_newline; use crate::parser::value::value; @@ -12,19 +13,17 @@ use crate::parser::prelude::*; // ;; Array // array = array-open array-values array-close -pub(crate) fn array( - check: RecursionCheck, -) -> impl FnMut(Input<'_>) -> IResult<Input<'_>, Array, ParserError<'_>> { - move |input| { +pub(crate) fn array<'i>(check: RecursionCheck) -> impl Parser<Input<'i>, Array, ContextError> { + trace("array", move |input: &mut Input<'i>| { delimited( ARRAY_OPEN, cut_err(array_values(check)), cut_err(ARRAY_CLOSE) - .context(Context::Expression("array")) - .context(Context::Expected(ParserValue::CharLiteral(']'))), + .context(StrContext::Label("array")) + .context(StrContext::Expected(StrContextValue::CharLiteral(']'))), ) .parse_next(input) - } + }) } // note: we're omitting ws and newlines here, because @@ -39,10 +38,10 @@ const ARRAY_SEP: u8 = b','; // note: this rule is modified // array-values = [ ( array-value array-sep array-values ) / // array-value / ws-comment-newline ] -pub(crate) fn array_values( +pub(crate) fn array_values<'i>( check: RecursionCheck, -) -> impl FnMut(Input<'_>) -> IResult<Input<'_>, Array, ParserError<'_>> { - move |input| { +) -> impl Parser<Input<'i>, Array, ContextError> { + move |input: &mut Input<'i>| { let check = check.recursing(input)?; ( opt( @@ -67,10 +66,10 @@ pub(crate) fn array_values( } } -pub(crate) fn array_value( +pub(crate) fn array_value<'i>( check: RecursionCheck, -) -> impl FnMut(Input<'_>) -> IResult<Input<'_>, Value, ParserError<'_>> { - move |input| { +) -> impl Parser<Input<'i>, Value, ContextError> { + move |input: &mut Input<'i>| { ( ws_comment_newline.span(), value(check), diff --git a/vendor/toml_edit/src/parser/datetime.rs b/vendor/toml_edit/src/parser/datetime.rs index 122a00f5a..6e89b9779 100644 --- a/vendor/toml_edit/src/parser/datetime.rs +++ b/vendor/toml_edit/src/parser/datetime.rs @@ -11,6 +11,7 @@ use winnow::combinator::opt; use winnow::combinator::preceded; use winnow::token::one_of; use winnow::token::take_while; +use winnow::trace::trace; // ;; Date and Time (as defined in RFC 3339) @@ -20,89 +21,101 @@ use winnow::token::take_while; // local-date = full-date // local-time = partial-time // full-time = partial-time time-offset -pub(crate) fn date_time(input: Input<'_>) -> IResult<Input<'_>, Datetime, ParserError<'_>> { - alt(( - (full_date, opt((time_delim, partial_time, opt(time_offset)))) - .map(|(date, opt)| { - match opt { - // Offset Date-Time - Some((_, time, offset)) => Datetime { - date: Some(date), - time: Some(time), - offset, - }, - // Local Date - None => Datetime { - date: Some(date), - time: None, - offset: None, - }, - } - }) - .context(Context::Expression("date-time")), - partial_time - .map(|t| t.into()) - .context(Context::Expression("time")), - )) +pub(crate) fn date_time(input: &mut Input<'_>) -> PResult<Datetime> { + trace( + "date-time", + alt(( + (full_date, opt((time_delim, partial_time, opt(time_offset)))) + .map(|(date, opt)| { + match opt { + // Offset Date-Time + Some((_, time, offset)) => Datetime { + date: Some(date), + time: Some(time), + offset, + }, + // Local Date + None => Datetime { + date: Some(date), + time: None, + offset: None, + }, + } + }) + .context(StrContext::Label("date-time")), + partial_time + .map(|t| t.into()) + .context(StrContext::Label("time")), + )), + ) .parse_next(input) } // full-date = date-fullyear "-" date-month "-" date-mday -pub(crate) fn full_date(input: Input<'_>) -> IResult<Input<'_>, Date, ParserError<'_>> { - (date_fullyear, b'-', cut_err((date_month, b'-', date_mday))) - .map(|(year, _, (month, _, day))| Date { year, month, day }) - .parse_next(input) +pub(crate) fn full_date(input: &mut Input<'_>) -> PResult<Date> { + trace( + "full-date", + (date_fullyear, b'-', cut_err((date_month, b'-', date_mday))) + .map(|(year, _, (month, _, day))| Date { year, month, day }), + ) + .parse_next(input) } // partial-time = time-hour ":" time-minute ":" time-second [time-secfrac] -pub(crate) fn partial_time(input: Input<'_>) -> IResult<Input<'_>, Time, ParserError<'_>> { - ( - time_hour, - b':', - cut_err((time_minute, b':', time_second, opt(time_secfrac))), +pub(crate) fn partial_time(input: &mut Input<'_>) -> PResult<Time> { + trace( + "partial-time", + ( + time_hour, + b':', + cut_err((time_minute, b':', time_second, opt(time_secfrac))), + ) + .map(|(hour, _, (minute, _, second, nanosecond))| Time { + hour, + minute, + second, + nanosecond: nanosecond.unwrap_or_default(), + }), ) - .map(|(hour, _, (minute, _, second, nanosecond))| Time { - hour, - minute, - second, - nanosecond: nanosecond.unwrap_or_default(), - }) - .parse_next(input) + .parse_next(input) } // time-offset = "Z" / time-numoffset // time-numoffset = ( "+" / "-" ) time-hour ":" time-minute -pub(crate) fn time_offset(input: Input<'_>) -> IResult<Input<'_>, Offset, ParserError<'_>> { - alt(( - one_of((b'Z', b'z')).value(Offset::Z), - ( - one_of((b'+', b'-')), - cut_err((time_hour, b':', time_minute)), - ) - .map(|(sign, (hours, _, minutes))| { - let sign = match sign { - b'+' => 1, - b'-' => -1, - _ => unreachable!("Parser prevents this"), - }; - sign * (hours as i16 * 60 + minutes as i16) - }) - .verify(|minutes| ((-24 * 60)..=(24 * 60)).contains(minutes)) - .map(|minutes| Offset::Custom { minutes }), - )) - .context(Context::Expression("time offset")) +pub(crate) fn time_offset(input: &mut Input<'_>) -> PResult<Offset> { + trace( + "time-offset", + alt(( + one_of((b'Z', b'z')).value(Offset::Z), + ( + one_of((b'+', b'-')), + cut_err((time_hour, b':', time_minute)), + ) + .map(|(sign, (hours, _, minutes))| { + let sign = match sign { + b'+' => 1, + b'-' => -1, + _ => unreachable!("Parser prevents this"), + }; + sign * (hours as i16 * 60 + minutes as i16) + }) + .verify(|minutes| ((-24 * 60)..=(24 * 60)).contains(minutes)) + .map(|minutes| Offset::Custom { minutes }), + )) + .context(StrContext::Label("time offset")), + ) .parse_next(input) } // date-fullyear = 4DIGIT -pub(crate) fn date_fullyear(input: Input<'_>) -> IResult<Input<'_>, u16, ParserError<'_>> { +pub(crate) fn date_fullyear(input: &mut Input<'_>) -> PResult<u16> { unsigned_digits::<4, 4> .map(|s: &str| s.parse::<u16>().expect("4DIGIT should match u8")) .parse_next(input) } // date-month = 2DIGIT ; 01-12 -pub(crate) fn date_month(input: Input<'_>) -> IResult<Input<'_>, u8, ParserError<'_>> { +pub(crate) fn date_month(input: &mut Input<'_>) -> PResult<u8> { unsigned_digits::<2, 2> .try_map(|s: &str| { let d = s.parse::<u8>().expect("2DIGIT should match u8"); @@ -116,7 +129,7 @@ pub(crate) fn date_month(input: Input<'_>) -> IResult<Input<'_>, u8, ParserError } // date-mday = 2DIGIT ; 01-28, 01-29, 01-30, 01-31 based on month/year -pub(crate) fn date_mday(input: Input<'_>) -> IResult<Input<'_>, u8, ParserError<'_>> { +pub(crate) fn date_mday(input: &mut Input<'_>) -> PResult<u8> { unsigned_digits::<2, 2> .try_map(|s: &str| { let d = s.parse::<u8>().expect("2DIGIT should match u8"); @@ -130,14 +143,14 @@ pub(crate) fn date_mday(input: Input<'_>) -> IResult<Input<'_>, u8, ParserError< } // time-delim = "T" / %x20 ; T, t, or space -pub(crate) fn time_delim(input: Input<'_>) -> IResult<Input<'_>, u8, ParserError<'_>> { +pub(crate) fn time_delim(input: &mut Input<'_>) -> PResult<u8> { one_of(TIME_DELIM).parse_next(input) } const TIME_DELIM: (u8, u8, u8) = (b'T', b't', b' '); // time-hour = 2DIGIT ; 00-23 -pub(crate) fn time_hour(input: Input<'_>) -> IResult<Input<'_>, u8, ParserError<'_>> { +pub(crate) fn time_hour(input: &mut Input<'_>) -> PResult<u8> { unsigned_digits::<2, 2> .try_map(|s: &str| { let d = s.parse::<u8>().expect("2DIGIT should match u8"); @@ -151,7 +164,7 @@ pub(crate) fn time_hour(input: Input<'_>) -> IResult<Input<'_>, u8, ParserError< } // time-minute = 2DIGIT ; 00-59 -pub(crate) fn time_minute(input: Input<'_>) -> IResult<Input<'_>, u8, ParserError<'_>> { +pub(crate) fn time_minute(input: &mut Input<'_>) -> PResult<u8> { unsigned_digits::<2, 2> .try_map(|s: &str| { let d = s.parse::<u8>().expect("2DIGIT should match u8"); @@ -165,7 +178,7 @@ pub(crate) fn time_minute(input: Input<'_>) -> IResult<Input<'_>, u8, ParserErro } // time-second = 2DIGIT ; 00-58, 00-59, 00-60 based on leap second rules -pub(crate) fn time_second(input: Input<'_>) -> IResult<Input<'_>, u8, ParserError<'_>> { +pub(crate) fn time_second(input: &mut Input<'_>) -> PResult<u8> { unsigned_digits::<2, 2> .try_map(|s: &str| { let d = s.parse::<u8>().expect("2DIGIT should match u8"); @@ -179,7 +192,7 @@ pub(crate) fn time_second(input: Input<'_>) -> IResult<Input<'_>, u8, ParserErro } // time-secfrac = "." 1*DIGIT -pub(crate) fn time_secfrac(input: Input<'_>) -> IResult<Input<'_>, u32, ParserError<'_>> { +pub(crate) fn time_secfrac(input: &mut Input<'_>) -> PResult<u32> { static SCALE: [u32; 10] = [ 0, 100_000_000, @@ -214,9 +227,9 @@ pub(crate) fn time_secfrac(input: Input<'_>) -> IResult<Input<'_>, u32, ParserEr .parse_next(input) } -pub(crate) fn unsigned_digits<const MIN: usize, const MAX: usize>( - input: Input<'_>, -) -> IResult<Input<'_>, &str, ParserError<'_>> { +pub(crate) fn unsigned_digits<'i, const MIN: usize, const MAX: usize>( + input: &mut Input<'i>, +) -> PResult<&'i str> { take_while(MIN..=MAX, DIGIT) .map(|b: &[u8]| unsafe { from_utf8_unchecked(b, "`is_ascii_digit` filters out on-ASCII") }) .parse_next(input) diff --git a/vendor/toml_edit/src/parser/document.rs b/vendor/toml_edit/src/parser/document.rs index 791185b68..aa8fb1158 100644 --- a/vendor/toml_edit/src/parser/document.rs +++ b/vendor/toml_edit/src/parser/document.rs @@ -5,9 +5,9 @@ use winnow::combinator::eof; use winnow::combinator::opt; use winnow::combinator::peek; use winnow::combinator::repeat; -use winnow::error::FromExternalError; use winnow::token::any; use winnow::token::one_of; +use winnow::trace::trace; use crate::document::Document; use crate::key::Key; @@ -30,11 +30,11 @@ use crate::RawString; // ( ws keyval ws [ comment ] ) / // ( ws table ws [ comment ] ) / // ws ) -pub(crate) fn document(input: Input<'_>) -> IResult<Input<'_>, Document, ParserError<'_>> { +pub(crate) fn document(input: &mut Input<'_>) -> PResult<Document> { let state = RefCell::new(ParseState::default()); let state_ref = &state; - let (i, _o) = ( + let _o = ( // Remove BOM if present opt(b"\xEF\xBB\xBF"), parse_ws(state_ref), @@ -52,23 +52,15 @@ pub(crate) fn document(input: Input<'_>) -> IResult<Input<'_>, Document, ParserE eof, ) .parse_next(input)?; - state - .into_inner() - .into_document() - .map(|document| (i, document)) - .map_err(|err| { - winnow::error::ErrMode::Backtrack(ParserError::from_external_error( - i, - winnow::error::ErrorKind::Verify, - err, - )) - }) + state.into_inner().into_document().map_err(|err| { + winnow::error::ErrMode::from_external_error(input, winnow::error::ErrorKind::Verify, err) + }) } pub(crate) fn parse_comment<'s, 'i>( state: &'s RefCell<ParseState>, -) -> impl FnMut(Input<'i>) -> IResult<Input<'i>, (), ParserError<'_>> + 's { - move |i| { +) -> impl Parser<Input<'i>, (), ContextError> + 's { + move |i: &mut Input<'i>| { (comment, line_ending) .span() .map(|span| { @@ -80,8 +72,8 @@ pub(crate) fn parse_comment<'s, 'i>( pub(crate) fn parse_ws<'s, 'i>( state: &'s RefCell<ParseState>, -) -> impl FnMut(Input<'i>) -> IResult<Input<'i>, (), ParserError<'i>> + 's { - move |i| { +) -> impl Parser<Input<'i>, (), ContextError> + 's { + move |i: &mut Input<'i>| { ws.span() .map(|span| state.borrow_mut().on_ws(span)) .parse_next(i) @@ -90,8 +82,8 @@ pub(crate) fn parse_ws<'s, 'i>( pub(crate) fn parse_newline<'s, 'i>( state: &'s RefCell<ParseState>, -) -> impl FnMut(Input<'i>) -> IResult<Input<'i>, (), ParserError<'i>> + 's { - move |i| { +) -> impl Parser<Input<'i>, (), ContextError> + 's { + move |i: &mut Input<'i>| { newline .span() .map(|span| state.borrow_mut().on_ws(span)) @@ -101,8 +93,8 @@ pub(crate) fn parse_newline<'s, 'i>( pub(crate) fn keyval<'s, 'i>( state: &'s RefCell<ParseState>, -) -> impl FnMut(Input<'i>) -> IResult<Input<'i>, (), ParserError<'i>> + 's { - move |i| { +) -> impl Parser<Input<'i>, (), ContextError> + 's { + move |i: &mut Input<'i>| { parse_keyval .try_map(|(p, kv)| state.borrow_mut().on_keyval(p, kv)) .parse_next(i) @@ -110,39 +102,40 @@ pub(crate) fn keyval<'s, 'i>( } // keyval = key keyval-sep val -pub(crate) fn parse_keyval( - input: Input<'_>, -) -> IResult<Input<'_>, (Vec<Key>, TableKeyValue), ParserError<'_>> { - ( - key, - cut_err(( - one_of(KEYVAL_SEP) - .context(Context::Expected(ParserValue::CharLiteral('.'))) - .context(Context::Expected(ParserValue::CharLiteral('='))), - ( - ws.span(), - value(RecursionCheck::default()), - line_trailing - .context(Context::Expected(ParserValue::CharLiteral('\n'))) - .context(Context::Expected(ParserValue::CharLiteral('#'))), - ), - )), - ) - .try_map::<_, _, std::str::Utf8Error>(|(key, (_, v))| { - let mut path = key; - let key = path.pop().expect("grammar ensures at least 1"); +pub(crate) fn parse_keyval(input: &mut Input<'_>) -> PResult<(Vec<Key>, TableKeyValue)> { + trace( + "keyval", + ( + key, + cut_err(( + one_of(KEYVAL_SEP) + .context(StrContext::Expected(StrContextValue::CharLiteral('.'))) + .context(StrContext::Expected(StrContextValue::CharLiteral('='))), + ( + ws.span(), + value(RecursionCheck::default()), + line_trailing + .context(StrContext::Expected(StrContextValue::CharLiteral('\n'))) + .context(StrContext::Expected(StrContextValue::CharLiteral('#'))), + ), + )), + ) + .try_map::<_, _, std::str::Utf8Error>(|(key, (_, v))| { + let mut path = key; + let key = path.pop().expect("grammar ensures at least 1"); - let (pre, v, suf) = v; - let pre = RawString::with_span(pre); - let suf = RawString::with_span(suf); - let v = v.decorated(pre, suf); - Ok(( - path, - TableKeyValue { - key, - value: Item::Value(v), - }, - )) - }) - .parse_next(input) + let (pre, v, suf) = v; + let pre = RawString::with_span(pre); + let suf = RawString::with_span(suf); + let v = v.decorated(pre, suf); + Ok(( + path, + TableKeyValue { + key, + value: Item::Value(v), + }, + )) + }), + ) + .parse_next(input) } diff --git a/vendor/toml_edit/src/parser/errors.rs b/vendor/toml_edit/src/parser/errors.rs index 4e3825f99..859ed5334 100644 --- a/vendor/toml_edit/src/parser/errors.rs +++ b/vendor/toml_edit/src/parser/errors.rs @@ -4,7 +4,8 @@ use std::fmt::{Display, Formatter, Result}; use crate::parser::prelude::*; use crate::Key; -use winnow::BStr; +use winnow::error::ContextError; +use winnow::error::ParseError; /// Type representing a TOML parse error #[derive(Debug, Clone, Eq, PartialEq, Hash)] @@ -16,19 +17,18 @@ pub struct TomlError { } impl TomlError { - pub(crate) fn new(error: ParserError<'_>, original: Input<'_>) -> Self { - use winnow::stream::Offset; + pub(crate) fn new(error: ParseError<Input<'_>, ContextError>, mut original: Input<'_>) -> Self { use winnow::stream::Stream; - let offset = original.offset_to(&error.input); + let offset = error.offset(); let span = if offset == original.len() { offset..offset } else { offset..(offset + 1) }; - let message = error.to_string(); - let original = original.next_slice(original.eof_offset()).1; + let message = error.inner().to_string(); + let original = original.finish(); Self { message, @@ -146,166 +146,6 @@ impl StdError for TomlError { } } -#[derive(Debug)] -pub(crate) struct ParserError<'b> { - input: Input<'b>, - context: Vec<Context>, - cause: Option<Box<dyn std::error::Error + Send + Sync + 'static>>, -} - -impl<'b> winnow::error::ParseError<Input<'b>> for ParserError<'b> { - fn from_error_kind(input: Input<'b>, _kind: winnow::error::ErrorKind) -> Self { - Self { - input, - context: Default::default(), - cause: Default::default(), - } - } - - fn append(self, _input: Input<'b>, _kind: winnow::error::ErrorKind) -> Self { - self - } - - fn or(self, other: Self) -> Self { - other - } -} - -impl<'b> winnow::error::ParseError<&'b str> for ParserError<'b> { - fn from_error_kind(input: &'b str, _kind: winnow::error::ErrorKind) -> Self { - Self { - input: Input::new(BStr::new(input)), - context: Default::default(), - cause: Default::default(), - } - } - - fn append(self, _input: &'b str, _kind: winnow::error::ErrorKind) -> Self { - self - } - - fn or(self, other: Self) -> Self { - other - } -} - -impl<'b> winnow::error::ContextError<Input<'b>, Context> for ParserError<'b> { - fn add_context(mut self, _input: Input<'b>, ctx: Context) -> Self { - self.context.push(ctx); - self - } -} - -impl<'b, E: std::error::Error + Send + Sync + 'static> - winnow::error::FromExternalError<Input<'b>, E> for ParserError<'b> -{ - fn from_external_error(input: Input<'b>, _kind: winnow::error::ErrorKind, e: E) -> Self { - Self { - input, - context: Default::default(), - cause: Some(Box::new(e)), - } - } -} - -impl<'b, E: std::error::Error + Send + Sync + 'static> winnow::error::FromExternalError<&'b str, E> - for ParserError<'b> -{ - fn from_external_error(input: &'b str, _kind: winnow::error::ErrorKind, e: E) -> Self { - Self { - input: Input::new(BStr::new(input)), - context: Default::default(), - cause: Some(Box::new(e)), - } - } -} - -// For tests -impl<'b> std::cmp::PartialEq for ParserError<'b> { - fn eq(&self, other: &Self) -> bool { - self.input == other.input - && self.context == other.context - && self.cause.as_ref().map(ToString::to_string) - == other.cause.as_ref().map(ToString::to_string) - } -} - -impl<'a> std::fmt::Display for ParserError<'a> { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - let expression = self.context.iter().find_map(|c| match c { - Context::Expression(c) => Some(c), - _ => None, - }); - let expected = self - .context - .iter() - .filter_map(|c| match c { - Context::Expected(c) => Some(c), - _ => None, - }) - .collect::<Vec<_>>(); - - let mut newline = false; - - if let Some(expression) = expression { - newline = true; - - write!(f, "invalid {}", expression)?; - } - - if !expected.is_empty() { - if newline { - writeln!(f)?; - } - newline = true; - - write!(f, "expected ")?; - for (i, expected) in expected.iter().enumerate() { - if i != 0 { - write!(f, ", ")?; - } - write!(f, "{}", expected)?; - } - } - if let Some(cause) = &self.cause { - if newline { - writeln!(f)?; - } - write!(f, "{}", cause)?; - } - - Ok(()) - } -} - -#[derive(Copy, Clone, Debug, PartialEq)] -pub(crate) enum Context { - Expression(&'static str), - Expected(ParserValue), -} - -#[derive(Copy, Clone, Debug, PartialEq)] -pub(crate) enum ParserValue { - CharLiteral(char), - StringLiteral(&'static str), - Description(&'static str), -} - -impl std::fmt::Display for ParserValue { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - match self { - ParserValue::CharLiteral('\n') => "newline".fmt(f), - ParserValue::CharLiteral('`') => "'`'".fmt(f), - ParserValue::CharLiteral(c) if c.is_ascii_control() => { - write!(f, "`{}`", c.escape_debug()) - } - ParserValue::CharLiteral(c) => write!(f, "`{}`", c), - ParserValue::StringLiteral(c) => write!(f, "`{}`", c), - ParserValue::Description(c) => write!(f, "{}", c), - } - } -} - fn translate_position(input: &[u8], index: usize) -> (usize, usize) { if input.is_empty() { return (0, index); diff --git a/vendor/toml_edit/src/parser/inline_table.rs b/vendor/toml_edit/src/parser/inline_table.rs index 0a75c2104..994e00336 100644 --- a/vendor/toml_edit/src/parser/inline_table.rs +++ b/vendor/toml_edit/src/parser/inline_table.rs @@ -2,6 +2,7 @@ use winnow::combinator::cut_err; use winnow::combinator::delimited; use winnow::combinator::separated0; use winnow::token::one_of; +use winnow::trace::trace; use crate::key::Key; use crate::parser::errors::CustomError; @@ -17,19 +18,19 @@ use indexmap::map::Entry; // ;; Inline Table // inline-table = inline-table-open inline-table-keyvals inline-table-close -pub(crate) fn inline_table( +pub(crate) fn inline_table<'i>( check: RecursionCheck, -) -> impl FnMut(Input<'_>) -> IResult<Input<'_>, InlineTable, ParserError<'_>> { - move |input| { +) -> impl Parser<Input<'i>, InlineTable, ContextError> { + trace("inline-table", move |input: &mut Input<'i>| { delimited( INLINE_TABLE_OPEN, cut_err(inline_table_keyvals(check).try_map(|(kv, p)| table_from_pairs(kv, p))), cut_err(INLINE_TABLE_CLOSE) - .context(Context::Expression("inline table")) - .context(Context::Expected(ParserValue::CharLiteral('}'))), + .context(StrContext::Label("inline table")) + .context(StrContext::Expected(StrContextValue::CharLiteral('}'))), ) .parse_next(input) - } + }) } fn table_from_pairs( @@ -96,12 +97,10 @@ pub(crate) const KEYVAL_SEP: u8 = b'='; // ( key keyval-sep val inline-table-sep inline-table-keyvals-non-empty ) / // ( key keyval-sep val ) -fn inline_table_keyvals( +fn inline_table_keyvals<'i>( check: RecursionCheck, -) -> impl FnMut( - Input<'_>, -) -> IResult<Input<'_>, (Vec<(Vec<Key>, TableKeyValue)>, RawString), ParserError<'_>> { - move |input| { +) -> impl Parser<Input<'i>, (Vec<(Vec<Key>, TableKeyValue)>, RawString), ContextError> { + move |input: &mut Input<'i>| { let check = check.recursing(input)?; ( separated0(keyval(check), INLINE_TABLE_SEP), @@ -111,16 +110,16 @@ fn inline_table_keyvals( } } -fn keyval( +fn keyval<'i>( check: RecursionCheck, -) -> impl FnMut(Input<'_>) -> IResult<Input<'_>, (Vec<Key>, TableKeyValue), ParserError<'_>> { - move |input| { +) -> impl Parser<Input<'i>, (Vec<Key>, TableKeyValue), ContextError> { + move |input: &mut Input<'i>| { ( key, cut_err(( one_of(KEYVAL_SEP) - .context(Context::Expected(ParserValue::CharLiteral('.'))) - .context(Context::Expected(ParserValue::CharLiteral('='))), + .context(StrContext::Expected(StrContextValue::CharLiteral('.'))) + .context(StrContext::Expected(StrContextValue::CharLiteral('='))), (ws.span(), value(check), ws.span()), )), ) diff --git a/vendor/toml_edit/src/parser/key.rs b/vendor/toml_edit/src/parser/key.rs index eda319307..12715da19 100644 --- a/vendor/toml_edit/src/parser/key.rs +++ b/vendor/toml_edit/src/parser/key.rs @@ -4,6 +4,7 @@ use winnow::combinator::peek; use winnow::combinator::separated1; use winnow::token::any; use winnow::token::take_while; +use winnow::trace::trace; use crate::key::Key; use crate::parser::errors::CustomError; @@ -16,51 +17,58 @@ use crate::RawString; // key = simple-key / dotted-key // dotted-key = simple-key 1*( dot-sep simple-key ) -pub(crate) fn key(input: Input<'_>) -> IResult<Input<'_>, Vec<Key>, ParserError<'_>> { - separated1( - (ws.span(), simple_key, ws.span()).map(|(pre, (raw, key), suffix)| { - Key::new(key) - .with_repr_unchecked(Repr::new_unchecked(raw)) - .with_decor(Decor::new( - RawString::with_span(pre), - RawString::with_span(suffix), - )) +pub(crate) fn key(input: &mut Input<'_>) -> PResult<Vec<Key>> { + trace( + "dotted-key", + separated1( + (ws.span(), simple_key, ws.span()).map(|(pre, (raw, key), suffix)| { + Key::new(key) + .with_repr_unchecked(Repr::new_unchecked(raw)) + .with_decor(Decor::new( + RawString::with_span(pre), + RawString::with_span(suffix), + )) + }), + DOT_SEP, + ) + .context(StrContext::Label("key")) + .try_map(|k: Vec<_>| { + // Inserting the key will require recursion down the line + RecursionCheck::check_depth(k.len())?; + Ok::<_, CustomError>(k) }), - DOT_SEP, ) - .context(Context::Expression("key")) - .try_map(|k: Vec<_>| { - // Inserting the key will require recursion down the line - RecursionCheck::check_depth(k.len())?; - Ok::<_, CustomError>(k) - }) .parse_next(input) } // simple-key = quoted-key / unquoted-key // quoted-key = basic-string / literal-string -pub(crate) fn simple_key( - input: Input<'_>, -) -> IResult<Input<'_>, (RawString, InternalString), ParserError<'_>> { - dispatch! {peek(any); - crate::parser::strings::QUOTATION_MARK => basic_string - .map(|s: std::borrow::Cow<'_, str>| s.as_ref().into()), - crate::parser::strings::APOSTROPHE => literal_string.map(|s: &str| s.into()), - _ => unquoted_key.map(|s: &str| s.into()), - } - .with_span() - .map(|(k, span)| { - let raw = RawString::with_span(span); - (raw, k) - }) +pub(crate) fn simple_key(input: &mut Input<'_>) -> PResult<(RawString, InternalString)> { + trace( + "simple-key", + dispatch! {peek(any); + crate::parser::strings::QUOTATION_MARK => basic_string + .map(|s: std::borrow::Cow<'_, str>| s.as_ref().into()), + crate::parser::strings::APOSTROPHE => literal_string.map(|s: &str| s.into()), + _ => unquoted_key.map(|s: &str| s.into()), + } + .with_span() + .map(|(k, span)| { + let raw = RawString::with_span(span); + (raw, k) + }), + ) .parse_next(input) } // unquoted-key = 1*( ALPHA / DIGIT / %x2D / %x5F ) ; A-Z / a-z / 0-9 / - / _ -fn unquoted_key(input: Input<'_>) -> IResult<Input<'_>, &str, ParserError<'_>> { - take_while(1.., UNQUOTED_CHAR) - .map(|b| unsafe { from_utf8_unchecked(b, "`is_unquoted_char` filters out on-ASCII") }) - .parse_next(input) +fn unquoted_key<'i>(input: &mut Input<'i>) -> PResult<&'i str> { + trace( + "unquoted-key", + take_while(1.., UNQUOTED_CHAR) + .map(|b| unsafe { from_utf8_unchecked(b, "`is_unquoted_char` filters out on-ASCII") }), + ) + .parse_next(input) } pub(crate) fn is_unquoted_char(c: u8) -> bool { diff --git a/vendor/toml_edit/src/parser/macros.rs b/vendor/toml_edit/src/parser/macros.rs deleted file mode 100644 index 93050f5ad..000000000 --- a/vendor/toml_edit/src/parser/macros.rs +++ /dev/null @@ -1,13 +0,0 @@ -macro_rules! dispatch { - ($match_parser: expr; $( $pat:pat $(if $pred:expr)? => $expr: expr ),+ $(,)? ) => { - move |i| - { - let (i, initial) = $match_parser.parse_next(i)?; - match initial { - $( - $pat $(if $pred)? => $expr.parse_next(i), - )* - } - } - } -} diff --git a/vendor/toml_edit/src/parser/mod.rs b/vendor/toml_edit/src/parser/mod.rs index b2ce4bc5e..1b3cc4f0c 100644 --- a/vendor/toml_edit/src/parser/mod.rs +++ b/vendor/toml_edit/src/parser/mod.rs @@ -1,8 +1,5 @@ #![allow(clippy::type_complexity)] -#[macro_use] -pub(crate) mod macros; - pub(crate) mod array; pub(crate) mod datetime; pub(crate) mod document; @@ -76,11 +73,13 @@ pub(crate) fn parse_value(raw: &str) -> Result<crate::Value, TomlError> { } pub(crate) mod prelude { - pub(crate) use super::errors::Context; - pub(crate) use super::errors::ParserError; - pub(crate) use super::errors::ParserValue; - pub(crate) use winnow::IResult; - pub(crate) use winnow::Parser as _; + pub(crate) use winnow::combinator::dispatch; + pub(crate) use winnow::error::ContextError; + pub(crate) use winnow::error::FromExternalError; + pub(crate) use winnow::error::StrContext; + pub(crate) use winnow::error::StrContextValue; + pub(crate) use winnow::PResult; + pub(crate) use winnow::Parser; pub(crate) type Input<'b> = winnow::Located<&'b winnow::BStr>; @@ -88,40 +87,6 @@ pub(crate) mod prelude { winnow::Located::new(winnow::BStr::new(s)) } - pub(crate) fn ok_error<I, O, E>( - res: IResult<I, O, E>, - ) -> Result<Option<(I, O)>, winnow::error::ErrMode<E>> { - match res { - Ok(ok) => Ok(Some(ok)), - Err(winnow::error::ErrMode::Backtrack(_)) => Ok(None), - Err(err) => Err(err), - } - } - - #[allow(dead_code)] - pub(crate) fn trace<I: std::fmt::Debug, O: std::fmt::Debug, E: std::fmt::Debug>( - context: impl std::fmt::Display, - mut parser: impl winnow::Parser<I, O, E>, - ) -> impl FnMut(I) -> IResult<I, O, E> { - static DEPTH: std::sync::atomic::AtomicUsize = std::sync::atomic::AtomicUsize::new(0); - move |input: I| { - let depth = DEPTH.fetch_add(1, std::sync::atomic::Ordering::SeqCst) * 2; - eprintln!("{:depth$}--> {} {:?}", "", context, input); - match parser.parse_next(input) { - Ok((i, o)) => { - DEPTH.fetch_sub(1, std::sync::atomic::Ordering::SeqCst); - eprintln!("{:depth$}<-- {} {:?}", "", context, i); - Ok((i, o)) - } - Err(err) => { - DEPTH.fetch_sub(1, std::sync::atomic::Ordering::SeqCst); - eprintln!("{:depth$}<-- {} {:?}", "", context, err); - Err(err) - } - } - } - } - #[cfg(not(feature = "unbounded"))] #[derive(Copy, Clone, Debug, Default)] pub(crate) struct RecursionCheck { @@ -140,18 +105,16 @@ pub(crate) mod prelude { pub(crate) fn recursing( mut self, - input: Input<'_>, - ) -> Result<Self, winnow::error::ErrMode<ParserError<'_>>> { + input: &mut Input<'_>, + ) -> Result<Self, winnow::error::ErrMode<ContextError>> { self.current += 1; if self.current < 128 { Ok(self) } else { - Err(winnow::error::ErrMode::Backtrack( - winnow::error::FromExternalError::from_external_error( - input, - winnow::error::ErrorKind::Eof, - super::errors::CustomError::RecursionLimitExceeded, - ), + Err(winnow::error::ErrMode::from_external_error( + input, + winnow::error::ErrorKind::Eof, + super::errors::CustomError::RecursionLimitExceeded, )) } } @@ -169,8 +132,8 @@ pub(crate) mod prelude { pub(crate) fn recursing( self, - _input: Input<'_>, - ) -> Result<Self, winnow::error::ErrMode<ParserError<'_>>> { + _input: &mut Input<'_>, + ) -> Result<Self, winnow::error::ErrMode<ContextError>> { Ok(self) } } diff --git a/vendor/toml_edit/src/parser/numbers.rs b/vendor/toml_edit/src/parser/numbers.rs index 803cc9d57..6e4757f06 100644 --- a/vendor/toml_edit/src/parser/numbers.rs +++ b/vendor/toml_edit/src/parser/numbers.rs @@ -10,6 +10,7 @@ use winnow::combinator::rest; use winnow::token::one_of; use winnow::token::tag; use winnow::token::take; +use winnow::trace::trace; use crate::parser::prelude::*; use crate::parser::trivia::from_utf8_unchecked; @@ -18,16 +19,16 @@ use crate::parser::trivia::from_utf8_unchecked; // boolean = true / false #[allow(dead_code)] // directly define in `fn value` -pub(crate) fn boolean(input: Input<'_>) -> IResult<Input<'_>, bool, ParserError<'_>> { - alt((true_, false_)).parse_next(input) +pub(crate) fn boolean(input: &mut Input<'_>) -> PResult<bool> { + trace("boolean", alt((true_, false_))).parse_next(input) } -pub(crate) fn true_(input: Input<'_>) -> IResult<Input<'_>, bool, ParserError<'_>> { +pub(crate) fn true_(input: &mut Input<'_>) -> PResult<bool> { (peek(TRUE[0]), cut_err(TRUE)).value(true).parse_next(input) } const TRUE: &[u8] = b"true"; -pub(crate) fn false_(input: Input<'_>) -> IResult<Input<'_>, bool, ParserError<'_>> { +pub(crate) fn false_(input: &mut Input<'_>) -> PResult<bool> { (peek(FALSE[0]), cut_err(FALSE)) .value(false) .parse_next(input) @@ -37,104 +38,119 @@ const FALSE: &[u8] = b"false"; // ;; Integer // integer = dec-int / hex-int / oct-int / bin-int -pub(crate) fn integer(input: Input<'_>) -> IResult<Input<'_>, i64, ParserError<'_>> { +pub(crate) fn integer(input: &mut Input<'_>) -> PResult<i64> { + trace("integer", dispatch! {peek(opt::<_, &[u8], _, _>(take(2usize))); Some(b"0x") => cut_err(hex_int.try_map(|s| i64::from_str_radix(&s.replace('_', ""), 16))), Some(b"0o") => cut_err(oct_int.try_map(|s| i64::from_str_radix(&s.replace('_', ""), 8))), Some(b"0b") => cut_err(bin_int.try_map(|s| i64::from_str_radix(&s.replace('_', ""), 2))), _ => dec_int.and_then(cut_err(rest .try_map(|s: &str| s.replace('_', "").parse()))) - } + }) .parse_next(input) } // dec-int = [ minus / plus ] unsigned-dec-int // unsigned-dec-int = DIGIT / digit1-9 1*( DIGIT / underscore DIGIT ) -pub(crate) fn dec_int(input: Input<'_>) -> IResult<Input<'_>, &str, ParserError<'_>> { - ( - opt(one_of((b'+', b'-'))), - alt(( - ( - one_of(DIGIT1_9), +pub(crate) fn dec_int<'i>(input: &mut Input<'i>) -> PResult<&'i str> { + trace( + "dec-int", + ( + opt(one_of((b'+', b'-'))), + alt(( + ( + one_of(DIGIT1_9), + repeat( + 0.., + alt(( + digit.value(()), + ( + one_of(b'_'), + cut_err(digit).context(StrContext::Expected( + StrContextValue::Description("digit"), + )), + ) + .value(()), + )), + ) + .map(|()| ()), + ) + .value(()), + digit.value(()), + )), + ) + .recognize() + .map(|b: &[u8]| unsafe { + from_utf8_unchecked(b, "`digit` and `_` filter out non-ASCII") + }) + .context(StrContext::Label("integer")), + ) + .parse_next(input) +} +const DIGIT1_9: RangeInclusive<u8> = b'1'..=b'9'; + +// hex-prefix = %x30.78 ; 0x +// hex-int = hex-prefix HEXDIG *( HEXDIG / underscore HEXDIG ) +pub(crate) fn hex_int<'i>(input: &mut Input<'i>) -> PResult<&'i str> { + trace( + "hex-int", + preceded( + HEX_PREFIX, + cut_err(( + hexdig, repeat( 0.., alt(( - digit.value(()), + hexdig.value(()), ( one_of(b'_'), - cut_err(digit) - .context(Context::Expected(ParserValue::Description("digit"))), + cut_err(hexdig).context(StrContext::Expected( + StrContextValue::Description("digit"), + )), ) .value(()), )), ) .map(|()| ()), - ) - .value(()), - digit.value(()), - )), - ) - .recognize() - .map(|b: &[u8]| unsafe { from_utf8_unchecked(b, "`digit` and `_` filter out non-ASCII") }) - .context(Context::Expression("integer")) - .parse_next(input) -} -const DIGIT1_9: RangeInclusive<u8> = b'1'..=b'9'; - -// hex-prefix = %x30.78 ; 0x -// hex-int = hex-prefix HEXDIG *( HEXDIG / underscore HEXDIG ) -pub(crate) fn hex_int(input: Input<'_>) -> IResult<Input<'_>, &str, ParserError<'_>> { - preceded( - HEX_PREFIX, - cut_err(( - hexdig, - repeat( - 0.., - alt(( - hexdig.value(()), - ( - one_of(b'_'), - cut_err(hexdig) - .context(Context::Expected(ParserValue::Description("digit"))), - ) - .value(()), - )), - ) - .map(|()| ()), - )) - .recognize(), + )) + .recognize(), + ) + .map(|b| unsafe { from_utf8_unchecked(b, "`hexdig` and `_` filter out non-ASCII") }) + .context(StrContext::Label("hexadecimal integer")), ) - .map(|b| unsafe { from_utf8_unchecked(b, "`hexdig` and `_` filter out non-ASCII") }) - .context(Context::Expression("hexadecimal integer")) .parse_next(input) } const HEX_PREFIX: &[u8] = b"0x"; // oct-prefix = %x30.6F ; 0o // oct-int = oct-prefix digit0-7 *( digit0-7 / underscore digit0-7 ) -pub(crate) fn oct_int(input: Input<'_>) -> IResult<Input<'_>, &str, ParserError<'_>> { - preceded( - OCT_PREFIX, - cut_err(( - one_of(DIGIT0_7), - repeat( - 0.., - alt(( - one_of(DIGIT0_7).value(()), - ( - one_of(b'_'), - cut_err(one_of(DIGIT0_7)) - .context(Context::Expected(ParserValue::Description("digit"))), - ) - .value(()), - )), - ) - .map(|()| ()), - )) - .recognize(), +pub(crate) fn oct_int<'i>(input: &mut Input<'i>) -> PResult<&'i str> { + trace( + "oct-int", + preceded( + OCT_PREFIX, + cut_err(( + one_of(DIGIT0_7), + repeat( + 0.., + alt(( + one_of(DIGIT0_7).value(()), + ( + one_of(b'_'), + cut_err(one_of(DIGIT0_7)).context(StrContext::Expected( + StrContextValue::Description("digit"), + )), + ) + .value(()), + )), + ) + .map(|()| ()), + )) + .recognize(), + ) + .map(|b| unsafe { from_utf8_unchecked(b, "`DIGIT0_7` and `_` filter out non-ASCII") }) + .context(StrContext::Label("octal integer")), ) - .map(|b| unsafe { from_utf8_unchecked(b, "`DIGIT0_7` and `_` filter out non-ASCII") }) - .context(Context::Expression("octal integer")) .parse_next(input) } const OCT_PREFIX: &[u8] = b"0o"; @@ -142,29 +158,33 @@ const DIGIT0_7: RangeInclusive<u8> = b'0'..=b'7'; // bin-prefix = %x30.62 ; 0b // bin-int = bin-prefix digit0-1 *( digit0-1 / underscore digit0-1 ) -pub(crate) fn bin_int(input: Input<'_>) -> IResult<Input<'_>, &str, ParserError<'_>> { - preceded( - BIN_PREFIX, - cut_err(( - one_of(DIGIT0_1), - repeat( - 0.., - alt(( - one_of(DIGIT0_1).value(()), - ( - one_of(b'_'), - cut_err(one_of(DIGIT0_1)) - .context(Context::Expected(ParserValue::Description("digit"))), - ) - .value(()), - )), - ) - .map(|()| ()), - )) - .recognize(), +pub(crate) fn bin_int<'i>(input: &mut Input<'i>) -> PResult<&'i str> { + trace( + "bin-int", + preceded( + BIN_PREFIX, + cut_err(( + one_of(DIGIT0_1), + repeat( + 0.., + alt(( + one_of(DIGIT0_1).value(()), + ( + one_of(b'_'), + cut_err(one_of(DIGIT0_1)).context(StrContext::Expected( + StrContextValue::Description("digit"), + )), + ) + .value(()), + )), + ) + .map(|()| ()), + )) + .recognize(), + ) + .map(|b| unsafe { from_utf8_unchecked(b, "`DIGIT0_1` and `_` filter out non-ASCII") }) + .context(StrContext::Label("binary integer")), ) - .map(|b| unsafe { from_utf8_unchecked(b, "`DIGIT0_1` and `_` filter out non-ASCII") }) - .context(Context::Expression("binary integer")) .parse_next(input) } const BIN_PREFIX: &[u8] = b"0b"; @@ -175,20 +195,26 @@ const DIGIT0_1: RangeInclusive<u8> = b'0'..=b'1'; // float = float-int-part ( exp / frac [ exp ] ) // float =/ special-float // float-int-part = dec-int -pub(crate) fn float(input: Input<'_>) -> IResult<Input<'_>, f64, ParserError<'_>> { - alt(( - float_.and_then(cut_err( - rest.try_map(|s: &str| s.replace('_', "").parse()) - .verify(|f: &f64| *f != f64::INFINITY), - )), - special_float, - )) - .context(Context::Expression("floating-point number")) +pub(crate) fn float(input: &mut Input<'_>) -> PResult<f64> { + trace( + "float", + alt(( + float_.and_then(cut_err( + rest.try_map(|s: &str| s.replace('_', "").parse()) + .verify(|f: &f64| *f != f64::INFINITY), + )), + special_float, + )) + .context(StrContext::Label("floating-point number")), + ) .parse_next(input) } -pub(crate) fn float_(input: Input<'_>) -> IResult<Input<'_>, &str, ParserError<'_>> { - (dec_int, alt((exp, (frac, opt(exp)).map(|_| "")))) +pub(crate) fn float_<'i>(input: &mut Input<'i>) -> PResult<&'i str> { + ( + dec_int, + alt((exp.void(), (frac.void(), opt(exp.void())).void())), + ) .recognize() .map(|b: &[u8]| unsafe { from_utf8_unchecked( @@ -201,10 +227,11 @@ pub(crate) fn float_(input: Input<'_>) -> IResult<Input<'_>, &str, ParserError<' // frac = decimal-point zero-prefixable-int // decimal-point = %x2E ; . -pub(crate) fn frac(input: Input<'_>) -> IResult<Input<'_>, &str, ParserError<'_>> { +pub(crate) fn frac<'i>(input: &mut Input<'i>) -> PResult<&'i str> { ( b'.', - cut_err(zero_prefixable_int).context(Context::Expected(ParserValue::Description("digit"))), + cut_err(zero_prefixable_int) + .context(StrContext::Expected(StrContextValue::Description("digit"))), ) .recognize() .map(|b: &[u8]| unsafe { @@ -217,7 +244,7 @@ pub(crate) fn frac(input: Input<'_>) -> IResult<Input<'_>, &str, ParserError<'_> } // zero-prefixable-int = DIGIT *( DIGIT / underscore DIGIT ) -pub(crate) fn zero_prefixable_int(input: Input<'_>) -> IResult<Input<'_>, &str, ParserError<'_>> { +pub(crate) fn zero_prefixable_int<'i>(input: &mut Input<'i>) -> PResult<&'i str> { ( digit, repeat( @@ -226,7 +253,8 @@ pub(crate) fn zero_prefixable_int(input: Input<'_>) -> IResult<Input<'_>, &str, digit.value(()), ( one_of(b'_'), - cut_err(digit).context(Context::Expected(ParserValue::Description("digit"))), + cut_err(digit) + .context(StrContext::Expected(StrContextValue::Description("digit"))), ) .value(()), )), @@ -240,7 +268,7 @@ pub(crate) fn zero_prefixable_int(input: Input<'_>) -> IResult<Input<'_>, &str, // exp = "e" float-exp-part // float-exp-part = [ minus / plus ] zero-prefixable-int -pub(crate) fn exp(input: Input<'_>) -> IResult<Input<'_>, &str, ParserError<'_>> { +pub(crate) fn exp<'i>(input: &mut Input<'i>) -> PResult<&'i str> { ( one_of((b'e', b'E')), opt(one_of([b'+', b'-'])), @@ -257,7 +285,7 @@ pub(crate) fn exp(input: Input<'_>) -> IResult<Input<'_>, &str, ParserError<'_>> } // special-float = [ minus / plus ] ( inf / nan ) -pub(crate) fn special_float(input: Input<'_>) -> IResult<Input<'_>, f64, ParserError<'_>> { +pub(crate) fn special_float(input: &mut Input<'_>) -> PResult<f64> { (opt(one_of((b'+', b'-'))), alt((inf, nan))) .map(|(s, f)| match s { Some(b'+') | None => f, @@ -267,24 +295,24 @@ pub(crate) fn special_float(input: Input<'_>) -> IResult<Input<'_>, f64, ParserE .parse_next(input) } // inf = %x69.6e.66 ; inf -pub(crate) fn inf(input: Input<'_>) -> IResult<Input<'_>, f64, ParserError<'_>> { +pub(crate) fn inf(input: &mut Input<'_>) -> PResult<f64> { tag(INF).value(f64::INFINITY).parse_next(input) } const INF: &[u8] = b"inf"; // nan = %x6e.61.6e ; nan -pub(crate) fn nan(input: Input<'_>) -> IResult<Input<'_>, f64, ParserError<'_>> { +pub(crate) fn nan(input: &mut Input<'_>) -> PResult<f64> { tag(NAN).value(f64::NAN).parse_next(input) } const NAN: &[u8] = b"nan"; // DIGIT = %x30-39 ; 0-9 -pub(crate) fn digit(input: Input<'_>) -> IResult<Input<'_>, u8, ParserError<'_>> { +pub(crate) fn digit(input: &mut Input<'_>) -> PResult<u8> { one_of(DIGIT).parse_next(input) } const DIGIT: RangeInclusive<u8> = b'0'..=b'9'; // HEXDIG = DIGIT / "A" / "B" / "C" / "D" / "E" / "F" -pub(crate) fn hexdig(input: Input<'_>) -> IResult<Input<'_>, u8, ParserError<'_>> { +pub(crate) fn hexdig(input: &mut Input<'_>) -> PResult<u8> { one_of(HEXDIG).parse_next(input) } pub(crate) const HEXDIG: (RangeInclusive<u8>, RangeInclusive<u8>, RangeInclusive<u8>) = diff --git a/vendor/toml_edit/src/parser/strings.rs b/vendor/toml_edit/src/parser/strings.rs index 2ce160506..26f9cc248 100644 --- a/vendor/toml_edit/src/parser/strings.rs +++ b/vendor/toml_edit/src/parser/strings.rs @@ -13,11 +13,13 @@ use winnow::combinator::repeat; use winnow::combinator::success; use winnow::combinator::terminated; use winnow::prelude::*; +use winnow::stream::Stream; use winnow::token::any; use winnow::token::none_of; use winnow::token::one_of; use winnow::token::tag; use winnow::token::take_while; +use winnow::trace::trace; use crate::parser::errors::CustomError; use crate::parser::numbers::HEXDIG; @@ -27,44 +29,48 @@ use crate::parser::trivia::{from_utf8_unchecked, newline, ws, ws_newlines, NON_A // ;; String // string = ml-basic-string / basic-string / ml-literal-string / literal-string -pub(crate) fn string(input: Input<'_>) -> IResult<Input<'_>, Cow<'_, str>, ParserError<'_>> { - alt(( - ml_basic_string, - basic_string, - ml_literal_string, - literal_string.map(Cow::Borrowed), - )) +pub(crate) fn string<'i>(input: &mut Input<'i>) -> PResult<Cow<'i, str>> { + trace( + "string", + alt(( + ml_basic_string, + basic_string, + ml_literal_string, + literal_string.map(Cow::Borrowed), + )), + ) .parse_next(input) } // ;; Basic String // basic-string = quotation-mark *basic-char quotation-mark -pub(crate) fn basic_string(input: Input<'_>) -> IResult<Input<'_>, Cow<'_, str>, ParserError<'_>> { - let (mut input, _) = one_of(QUOTATION_MARK).parse_next(input)?; +pub(crate) fn basic_string<'i>(input: &mut Input<'i>) -> PResult<Cow<'i, str>> { + trace("basic-string", |input: &mut Input<'i>| { + let _ = one_of(QUOTATION_MARK).parse_next(input)?; - let mut c = Cow::Borrowed(""); - if let Some((i, ci)) = ok_error(basic_chars.parse_next(input))? { - input = i; - c = ci; - } - while let Some((i, ci)) = ok_error(basic_chars.parse_next(input))? { - input = i; - c.to_mut().push_str(&ci); - } + let mut c = Cow::Borrowed(""); + if let Some(ci) = opt(basic_chars).parse_next(input)? { + c = ci; + } + while let Some(ci) = opt(basic_chars).parse_next(input)? { + c.to_mut().push_str(&ci); + } - let (input, _) = cut_err(one_of(QUOTATION_MARK)) - .context(Context::Expression("basic string")) - .parse_next(input)?; + let _ = cut_err(one_of(QUOTATION_MARK)) + .context(StrContext::Label("basic string")) + .parse_next(input)?; - Ok((input, c)) + Ok(c) + }) + .parse_next(input) } // quotation-mark = %x22 ; " pub(crate) const QUOTATION_MARK: u8 = b'"'; // basic-char = basic-unescaped / escaped -fn basic_chars(input: Input<'_>) -> IResult<Input<'_>, Cow<'_, str>, ParserError<'_>> { +fn basic_chars<'i>(input: &mut Input<'i>) -> PResult<Cow<'i, str>> { alt(( // Deviate from the official grammar by batching the unescaped chars so we build a string a // chunk at a time, rather than a `char` at a time. @@ -86,7 +92,7 @@ pub(crate) const BASIC_UNESCAPED: ( ) = (WSCHAR, 0x21, 0x23..=0x5B, 0x5D..=0x7E, NON_ASCII); // escaped = escape escape-seq-char -fn escaped(input: Input<'_>) -> IResult<Input<'_>, char, ParserError<'_>> { +fn escaped(input: &mut Input<'_>) -> PResult<char> { preceded(ESCAPE, escape_seq_char).parse_next(input) } @@ -102,37 +108,35 @@ pub(crate) const ESCAPE: u8 = b'\\'; // escape-seq-char =/ %x74 ; t tab U+0009 // escape-seq-char =/ %x75 4HEXDIG ; uXXXX U+XXXX // escape-seq-char =/ %x55 8HEXDIG ; UXXXXXXXX U+XXXXXXXX -fn escape_seq_char(input: Input<'_>) -> IResult<Input<'_>, char, ParserError<'_>> { +fn escape_seq_char(input: &mut Input<'_>) -> PResult<char> { dispatch! {any; b'b' => success('\u{8}'), b'f' => success('\u{c}'), b'n' => success('\n'), b'r' => success('\r'), b't' => success('\t'), - b'u' => cut_err(hexescape::<4>).context(Context::Expression("unicode 4-digit hex code")), - b'U' => cut_err(hexescape::<8>).context(Context::Expression("unicode 8-digit hex code")), + b'u' => cut_err(hexescape::<4>).context(StrContext::Label("unicode 4-digit hex code")), + b'U' => cut_err(hexescape::<8>).context(StrContext::Label("unicode 8-digit hex code")), b'\\' => success('\\'), b'"' => success('"'), _ => { cut_err(fail::<_, char, _>) - .context(Context::Expression("escape sequence")) - .context(Context::Expected(ParserValue::CharLiteral('b'))) - .context(Context::Expected(ParserValue::CharLiteral('f'))) - .context(Context::Expected(ParserValue::CharLiteral('n'))) - .context(Context::Expected(ParserValue::CharLiteral('r'))) - .context(Context::Expected(ParserValue::CharLiteral('t'))) - .context(Context::Expected(ParserValue::CharLiteral('u'))) - .context(Context::Expected(ParserValue::CharLiteral('U'))) - .context(Context::Expected(ParserValue::CharLiteral('\\'))) - .context(Context::Expected(ParserValue::CharLiteral('"'))) + .context(StrContext::Label("escape sequence")) + .context(StrContext::Expected(StrContextValue::CharLiteral('b'))) + .context(StrContext::Expected(StrContextValue::CharLiteral('f'))) + .context(StrContext::Expected(StrContextValue::CharLiteral('n'))) + .context(StrContext::Expected(StrContextValue::CharLiteral('r'))) + .context(StrContext::Expected(StrContextValue::CharLiteral('t'))) + .context(StrContext::Expected(StrContextValue::CharLiteral('u'))) + .context(StrContext::Expected(StrContextValue::CharLiteral('U'))) + .context(StrContext::Expected(StrContextValue::CharLiteral('\\'))) + .context(StrContext::Expected(StrContextValue::CharLiteral('"'))) } } .parse_next(input) } -pub(crate) fn hexescape<const N: usize>( - input: Input<'_>, -) -> IResult<Input<'_>, char, ParserError<'_>> { +pub(crate) fn hexescape<const N: usize>(input: &mut Input<'_>) -> PResult<char> { take_while(0..=N, HEXDIG) .verify(|b: &[u8]| b.len() == N) .map(|b: &[u8]| unsafe { from_utf8_unchecked(b, "`is_ascii_digit` filters out on-ASCII") }) @@ -145,13 +149,16 @@ pub(crate) fn hexescape<const N: usize>( // ml-basic-string = ml-basic-string-delim [ newline ] ml-basic-body // ml-basic-string-delim -fn ml_basic_string(input: Input<'_>) -> IResult<Input<'_>, Cow<'_, str>, ParserError<'_>> { - delimited( - ML_BASIC_STRING_DELIM, - preceded(opt(newline), cut_err(ml_basic_body)), - cut_err(ML_BASIC_STRING_DELIM), +fn ml_basic_string<'i>(input: &mut Input<'i>) -> PResult<Cow<'i, str>> { + trace( + "ml-basic-string", + delimited( + ML_BASIC_STRING_DELIM, + preceded(opt(newline), cut_err(ml_basic_body)), + cut_err(ML_BASIC_STRING_DELIM), + ) + .context(StrContext::Label("multiline basic string")), ) - .context(Context::Expression("multiline basic string")) .parse_next(input) } @@ -159,24 +166,20 @@ fn ml_basic_string(input: Input<'_>) -> IResult<Input<'_>, Cow<'_, str>, ParserE pub(crate) const ML_BASIC_STRING_DELIM: &[u8] = b"\"\"\""; // ml-basic-body = *mlb-content *( mlb-quotes 1*mlb-content ) [ mlb-quotes ] -fn ml_basic_body(mut input: Input<'_>) -> IResult<Input<'_>, Cow<'_, str>, ParserError<'_>> { +fn ml_basic_body<'i>(input: &mut Input<'i>) -> PResult<Cow<'i, str>> { let mut c = Cow::Borrowed(""); - if let Some((i, ci)) = ok_error(mlb_content.parse_next(input))? { - input = i; + if let Some(ci) = opt(mlb_content).parse_next(input)? { c = ci; } - while let Some((i, ci)) = ok_error(mlb_content.parse_next(input))? { - input = i; + while let Some(ci) = opt(mlb_content).parse_next(input)? { c.to_mut().push_str(&ci); } - while let Some((i, qi)) = ok_error(mlb_quotes(none_of(b'\"').value(())).parse_next(input))? { - if let Some((i, ci)) = ok_error(mlb_content.parse_next(i))? { - input = i; + while let Some(qi) = opt(mlb_quotes(none_of(b'\"').value(()))).parse_next(input)? { + if let Some(ci) = opt(mlb_content).parse_next(input)? { c.to_mut().push_str(qi); c.to_mut().push_str(&ci); - while let Some((i, ci)) = ok_error(mlb_content.parse_next(input))? { - input = i; + while let Some(ci) = opt(mlb_content).parse_next(input)? { c.to_mut().push_str(&ci); } } else { @@ -184,19 +187,16 @@ fn ml_basic_body(mut input: Input<'_>) -> IResult<Input<'_>, Cow<'_, str>, Parse } } - if let Some((i, qi)) = - ok_error(mlb_quotes(tag(ML_BASIC_STRING_DELIM).value(())).parse_next(input))? - { - input = i; + if let Some(qi) = opt(mlb_quotes(tag(ML_BASIC_STRING_DELIM).value(()))).parse_next(input)? { c.to_mut().push_str(qi); } - Ok((input, c)) + Ok(c) } // mlb-content = mlb-char / newline / mlb-escaped-nl // mlb-char = mlb-unescaped / escaped -fn mlb_content(input: Input<'_>) -> IResult<Input<'_>, Cow<'_, str>, ParserError<'_>> { +fn mlb_content<'i>(input: &mut Input<'i>) -> PResult<Cow<'i, str>> { alt(( // Deviate from the official grammar by batching the unescaped chars so we build a string a // chunk at a time, rather than a `char` at a time. @@ -213,17 +213,21 @@ fn mlb_content(input: Input<'_>) -> IResult<Input<'_>, Cow<'_, str>, ParserError // mlb-quotes = 1*2quotation-mark fn mlb_quotes<'i>( - mut term: impl winnow::Parser<Input<'i>, (), ParserError<'i>>, -) -> impl FnMut(Input<'i>) -> IResult<Input<'i>, &str, ParserError<'i>> { - move |input| { + mut term: impl winnow::Parser<Input<'i>, (), ContextError>, +) -> impl Parser<Input<'i>, &'i str, ContextError> { + move |input: &mut Input<'i>| { + let start = input.checkpoint(); let res = terminated(b"\"\"", peek(term.by_ref())) .map(|b| unsafe { from_utf8_unchecked(b, "`bytes` out non-ASCII") }) .parse_next(input); match res { - Err(winnow::error::ErrMode::Backtrack(_)) => terminated(b"\"", peek(term.by_ref())) - .map(|b| unsafe { from_utf8_unchecked(b, "`bytes` out non-ASCII") }) - .parse_next(input), + Err(winnow::error::ErrMode::Backtrack(_)) => { + input.reset(start); + terminated(b"\"", peek(term.by_ref())) + .map(|b| unsafe { from_utf8_unchecked(b, "`bytes` out non-ASCII") }) + .parse_next(input) + } res => res, } } @@ -243,7 +247,7 @@ pub(crate) const MLB_UNESCAPED: ( // it will be trimmed along with all whitespace // (including newlines) up to the next non-whitespace // character or closing delimiter. -fn mlb_escaped_nl(input: Input<'_>) -> IResult<Input<'_>, (), ParserError<'_>> { +fn mlb_escaped_nl(input: &mut Input<'_>) -> PResult<()> { repeat(1.., (ESCAPE, ws, ws_newlines)) .map(|()| ()) .value(()) @@ -253,14 +257,17 @@ fn mlb_escaped_nl(input: Input<'_>) -> IResult<Input<'_>, (), ParserError<'_>> { // ;; Literal String // literal-string = apostrophe *literal-char apostrophe -pub(crate) fn literal_string(input: Input<'_>) -> IResult<Input<'_>, &str, ParserError<'_>> { - delimited( - APOSTROPHE, - cut_err(take_while(0.., LITERAL_CHAR)), - cut_err(APOSTROPHE), +pub(crate) fn literal_string<'i>(input: &mut Input<'i>) -> PResult<&'i str> { + trace( + "literal-string", + delimited( + APOSTROPHE, + cut_err(take_while(0.., LITERAL_CHAR)), + cut_err(APOSTROPHE), + ) + .try_map(std::str::from_utf8) + .context(StrContext::Label("literal string")), ) - .try_map(std::str::from_utf8) - .context(Context::Expression("literal string")) .parse_next(input) } @@ -279,19 +286,22 @@ pub(crate) const LITERAL_CHAR: ( // ml-literal-string = ml-literal-string-delim [ newline ] ml-literal-body // ml-literal-string-delim -fn ml_literal_string(input: Input<'_>) -> IResult<Input<'_>, Cow<'_, str>, ParserError<'_>> { - delimited( - (ML_LITERAL_STRING_DELIM, opt(newline)), - cut_err(ml_literal_body.map(|t| { - if t.contains("\r\n") { - Cow::Owned(t.replace("\r\n", "\n")) - } else { - Cow::Borrowed(t) - } - })), - cut_err(ML_LITERAL_STRING_DELIM), +fn ml_literal_string<'i>(input: &mut Input<'i>) -> PResult<Cow<'i, str>> { + trace( + "ml-literal-string", + delimited( + (ML_LITERAL_STRING_DELIM, opt(newline)), + cut_err(ml_literal_body.map(|t| { + if t.contains("\r\n") { + Cow::Owned(t.replace("\r\n", "\n")) + } else { + Cow::Borrowed(t) + } + })), + cut_err(ML_LITERAL_STRING_DELIM), + ) + .context(StrContext::Label("multiline literal string")), ) - .context(Context::Expression("multiline literal string")) .parse_next(input) } @@ -299,7 +309,7 @@ fn ml_literal_string(input: Input<'_>) -> IResult<Input<'_>, Cow<'_, str>, Parse pub(crate) const ML_LITERAL_STRING_DELIM: &[u8] = b"'''"; // ml-literal-body = *mll-content *( mll-quotes 1*mll-content ) [ mll-quotes ] -fn ml_literal_body(input: Input<'_>) -> IResult<Input<'_>, &str, ParserError<'_>> { +fn ml_literal_body<'i>(input: &mut Input<'i>) -> PResult<&'i str> { ( repeat(0.., mll_content).map(|()| ()), repeat( @@ -318,7 +328,7 @@ fn ml_literal_body(input: Input<'_>) -> IResult<Input<'_>, &str, ParserError<'_> } // mll-content = mll-char / newline -fn mll_content(input: Input<'_>) -> IResult<Input<'_>, u8, ParserError<'_>> { +fn mll_content(input: &mut Input<'_>) -> PResult<u8> { alt((one_of(MLL_CHAR), newline)).parse_next(input) } @@ -332,17 +342,21 @@ const MLL_CHAR: ( // mll-quotes = 1*2apostrophe fn mll_quotes<'i>( - mut term: impl winnow::Parser<Input<'i>, (), ParserError<'i>>, -) -> impl FnMut(Input<'i>) -> IResult<Input<'i>, &str, ParserError<'i>> { - move |input| { + mut term: impl winnow::Parser<Input<'i>, (), ContextError>, +) -> impl Parser<Input<'i>, &'i str, ContextError> { + move |input: &mut Input<'i>| { + let start = input.checkpoint(); let res = terminated(b"''", peek(term.by_ref())) .map(|b| unsafe { from_utf8_unchecked(b, "`bytes` out non-ASCII") }) .parse_next(input); match res { - Err(winnow::error::ErrMode::Backtrack(_)) => terminated(b"'", peek(term.by_ref())) - .map(|b| unsafe { from_utf8_unchecked(b, "`bytes` out non-ASCII") }) - .parse_next(input), + Err(winnow::error::ErrMode::Backtrack(_)) => { + input.reset(start); + terminated(b"'", peek(term.by_ref())) + .map(|b| unsafe { from_utf8_unchecked(b, "`bytes` out non-ASCII") }) + .parse_next(input) + } res => res, } } diff --git a/vendor/toml_edit/src/parser/table.rs b/vendor/toml_edit/src/parser/table.rs index 9d2675868..0ace0c7d1 100644 --- a/vendor/toml_edit/src/parser/table.rs +++ b/vendor/toml_edit/src/parser/table.rs @@ -27,20 +27,20 @@ const ARRAY_TABLE_CLOSE: &[u8] = b"]]"; // std-table = std-table-open key *( table-key-sep key) std-table-close pub(crate) fn std_table<'s, 'i>( state: &'s RefCell<ParseState>, -) -> impl FnMut(Input<'i>) -> IResult<Input<'i>, (), ParserError<'i>> + 's { - move |i| { +) -> impl Parser<Input<'i>, (), ContextError> + 's { + move |i: &mut Input<'i>| { ( delimited( STD_TABLE_OPEN, cut_err(key), cut_err(STD_TABLE_CLOSE) - .context(Context::Expected(ParserValue::CharLiteral('.'))) - .context(Context::Expected(ParserValue::StringLiteral("]"))), + .context(StrContext::Expected(StrContextValue::CharLiteral('.'))) + .context(StrContext::Expected(StrContextValue::StringLiteral("]"))), ) .with_span(), cut_err(line_trailing) - .context(Context::Expected(ParserValue::CharLiteral('\n'))) - .context(Context::Expected(ParserValue::CharLiteral('#'))), + .context(StrContext::Expected(StrContextValue::CharLiteral('\n'))) + .context(StrContext::Expected(StrContextValue::CharLiteral('#'))), ) .try_map(|((h, span), t)| state.borrow_mut().deref_mut().on_std_header(h, t, span)) .parse_next(i) @@ -52,20 +52,20 @@ pub(crate) fn std_table<'s, 'i>( // array-table = array-table-open key *( table-key-sep key) array-table-close pub(crate) fn array_table<'s, 'i>( state: &'s RefCell<ParseState>, -) -> impl FnMut(Input<'i>) -> IResult<Input<'i>, (), ParserError<'i>> + 's { - move |i| { +) -> impl Parser<Input<'i>, (), ContextError> + 's { + move |i: &mut Input<'i>| { ( delimited( ARRAY_TABLE_OPEN, cut_err(key), cut_err(ARRAY_TABLE_CLOSE) - .context(Context::Expected(ParserValue::CharLiteral('.'))) - .context(Context::Expected(ParserValue::StringLiteral("]]"))), + .context(StrContext::Expected(StrContextValue::CharLiteral('.'))) + .context(StrContext::Expected(StrContextValue::StringLiteral("]]"))), ) .with_span(), cut_err(line_trailing) - .context(Context::Expected(ParserValue::CharLiteral('\n'))) - .context(Context::Expected(ParserValue::CharLiteral('#'))), + .context(StrContext::Expected(StrContextValue::CharLiteral('\n'))) + .context(StrContext::Expected(StrContextValue::CharLiteral('#'))), ) .try_map(|((h, span), t)| state.borrow_mut().deref_mut().on_array_header(h, t, span)) .parse_next(i) @@ -77,13 +77,13 @@ pub(crate) fn array_table<'s, 'i>( // table = std-table / array-table pub(crate) fn table<'s, 'i>( state: &'s RefCell<ParseState>, -) -> impl FnMut(Input<'i>) -> IResult<Input<'i>, (), ParserError<'i>> + 's { - move |i| { +) -> impl Parser<Input<'i>, (), ContextError> + 's { + move |i: &mut Input<'i>| { dispatch!(peek::<_, &[u8],_,_>(take(2usize)); b"[[" => array_table(state), _ => std_table(state), ) - .context(Context::Expression("table header")) + .context(StrContext::Label("table header")) .parse_next(i) } } diff --git a/vendor/toml_edit/src/parser/trivia.rs b/vendor/toml_edit/src/parser/trivia.rs index ba47dcde6..a359805b2 100644 --- a/vendor/toml_edit/src/parser/trivia.rs +++ b/vendor/toml_edit/src/parser/trivia.rs @@ -28,7 +28,7 @@ pub(crate) unsafe fn from_utf8_unchecked<'b>( pub(crate) const WSCHAR: (u8, u8) = (b' ', b'\t'); // ws = *wschar -pub(crate) fn ws(input: Input<'_>) -> IResult<Input<'_>, &str, ParserError<'_>> { +pub(crate) fn ws<'i>(input: &mut Input<'i>) -> PResult<&'i str> { take_while(0.., WSCHAR) .map(|b| unsafe { from_utf8_unchecked(b, "`is_wschar` filters out on-ASCII") }) .parse_next(input) @@ -48,7 +48,7 @@ pub(crate) const NON_EOL: (u8, RangeInclusive<u8>, RangeInclusive<u8>) = pub(crate) const COMMENT_START_SYMBOL: u8 = b'#'; // comment = comment-start-symbol *non-eol -pub(crate) fn comment(input: Input<'_>) -> IResult<Input<'_>, &[u8], ParserError<'_>> { +pub(crate) fn comment<'i>(input: &mut Input<'i>) -> PResult<&'i [u8]> { (COMMENT_START_SYMBOL, take_while(0.., NON_EOL)) .recognize() .parse_next(input) @@ -56,7 +56,7 @@ pub(crate) fn comment(input: Input<'_>) -> IResult<Input<'_>, &[u8], ParserError // newline = ( %x0A / ; LF // %x0D.0A ) ; CRLF -pub(crate) fn newline(input: Input<'_>) -> IResult<Input<'_>, u8, ParserError<'_>> { +pub(crate) fn newline(input: &mut Input<'_>) -> PResult<u8> { alt(( one_of(LF).value(b'\n'), (one_of(CR), one_of(LF)).value(b'\n'), @@ -67,7 +67,7 @@ pub(crate) const LF: u8 = b'\n'; pub(crate) const CR: u8 = b'\r'; // ws-newline = *( wschar / newline ) -pub(crate) fn ws_newline(input: Input<'_>) -> IResult<Input<'_>, &str, ParserError<'_>> { +pub(crate) fn ws_newline<'i>(input: &mut Input<'i>) -> PResult<&'i str> { repeat( 0.., alt((newline.value(&b"\n"[..]), take_while(1.., WSCHAR))), @@ -79,7 +79,7 @@ pub(crate) fn ws_newline(input: Input<'_>) -> IResult<Input<'_>, &str, ParserErr } // ws-newlines = newline *( wschar / newline ) -pub(crate) fn ws_newlines(input: Input<'_>) -> IResult<Input<'_>, &str, ParserError<'_>> { +pub(crate) fn ws_newlines<'i>(input: &mut Input<'i>) -> PResult<&'i str> { (newline, ws_newline) .recognize() .map(|b| unsafe { @@ -90,7 +90,7 @@ pub(crate) fn ws_newlines(input: Input<'_>) -> IResult<Input<'_>, &str, ParserEr // note: this rule is not present in the original grammar // ws-comment-newline = *( ws-newline-nonempty / comment ) -pub(crate) fn ws_comment_newline(input: Input<'_>) -> IResult<Input<'_>, &[u8], ParserError<'_>> { +pub(crate) fn ws_comment_newline<'i>(input: &mut Input<'i>) -> PResult<&'i [u8]> { repeat( 0.., alt(( @@ -109,15 +109,13 @@ pub(crate) fn ws_comment_newline(input: Input<'_>) -> IResult<Input<'_>, &[u8], // note: this rule is not present in the original grammar // line-ending = newline / eof -pub(crate) fn line_ending(input: Input<'_>) -> IResult<Input<'_>, &str, ParserError<'_>> { +pub(crate) fn line_ending<'i>(input: &mut Input<'i>) -> PResult<&'i str> { alt((newline.value("\n"), eof.value(""))).parse_next(input) } // note: this rule is not present in the original grammar // line-trailing = ws [comment] skip-line-ending -pub(crate) fn line_trailing( - input: Input<'_>, -) -> IResult<Input<'_>, std::ops::Range<usize>, ParserError<'_>> { +pub(crate) fn line_trailing(input: &mut Input<'_>) -> PResult<std::ops::Range<usize>> { terminated((ws, opt(comment)).span(), line_ending).parse_next(input) } diff --git a/vendor/toml_edit/src/parser/value.rs b/vendor/toml_edit/src/parser/value.rs index 19950585b..14cd951c4 100644 --- a/vendor/toml_edit/src/parser/value.rs +++ b/vendor/toml_edit/src/parser/value.rs @@ -1,7 +1,7 @@ -use winnow::branch::alt; -use winnow::bytes::any; +use winnow::combinator::alt; use winnow::combinator::fail; use winnow::combinator::peek; +use winnow::token::any; use crate::parser::array::array; use crate::parser::datetime::date_time; @@ -15,10 +15,8 @@ use crate::RawString; use crate::Value; // val = string / boolean / array / inline-table / date-time / float / integer -pub(crate) fn value( - check: RecursionCheck, -) -> impl FnMut(Input<'_>) -> IResult<Input<'_>, v::Value, ParserError<'_>> { - move |input| { +pub(crate) fn value<'i>(check: RecursionCheck) -> impl Parser<Input<'i>, v::Value, ContextError> { + move |input: &mut Input<'i>| { dispatch!{peek(any); crate::parser::strings::QUOTATION_MARK | crate::parser::strings::APOSTROPHE => string.map(|s| { @@ -44,43 +42,43 @@ pub(crate) fn value( b'_' => { integer .map(v::Value::from) - .context(Context::Expected(ParserValue::Description("leading digit"))) + .context(StrContext::Expected(StrContextValue::Description("leading digit"))) }, // Report as if they were numbers because its most likely a typo b'.' => { float .map(v::Value::from) - .context(Context::Expected(ParserValue::Description("leading digit"))) + .context(StrContext::Expected(StrContextValue::Description("leading digit"))) }, b't' => { crate::parser::numbers::true_.map(v::Value::from) - .context(Context::Expression("string")) - .context(Context::Expected(ParserValue::CharLiteral('"'))) - .context(Context::Expected(ParserValue::CharLiteral('\''))) + .context(StrContext::Label("string")) + .context(StrContext::Expected(StrContextValue::CharLiteral('"'))) + .context(StrContext::Expected(StrContextValue::CharLiteral('\''))) }, b'f' => { crate::parser::numbers::false_.map(v::Value::from) - .context(Context::Expression("string")) - .context(Context::Expected(ParserValue::CharLiteral('"'))) - .context(Context::Expected(ParserValue::CharLiteral('\''))) + .context(StrContext::Label("string")) + .context(StrContext::Expected(StrContextValue::CharLiteral('"'))) + .context(StrContext::Expected(StrContextValue::CharLiteral('\''))) }, b'i' => { crate::parser::numbers::inf.map(v::Value::from) - .context(Context::Expression("string")) - .context(Context::Expected(ParserValue::CharLiteral('"'))) - .context(Context::Expected(ParserValue::CharLiteral('\''))) + .context(StrContext::Label("string")) + .context(StrContext::Expected(StrContextValue::CharLiteral('"'))) + .context(StrContext::Expected(StrContextValue::CharLiteral('\''))) }, b'n' => { crate::parser::numbers::nan.map(v::Value::from) - .context(Context::Expression("string")) - .context(Context::Expected(ParserValue::CharLiteral('"'))) - .context(Context::Expected(ParserValue::CharLiteral('\''))) + .context(StrContext::Label("string")) + .context(StrContext::Expected(StrContextValue::CharLiteral('"'))) + .context(StrContext::Expected(StrContextValue::CharLiteral('\''))) }, _ => { fail - .context(Context::Expression("string")) - .context(Context::Expected(ParserValue::CharLiteral('"'))) - .context(Context::Expected(ParserValue::CharLiteral('\''))) + .context(StrContext::Label("string")) + .context(StrContext::Expected(StrContextValue::CharLiteral('"'))) + .context(StrContext::Expected(StrContextValue::CharLiteral('\''))) }, } .with_span() diff --git a/vendor/toml_edit/src/table.rs b/vendor/toml_edit/src/table.rs index 2f61abf73..45d6d61b6 100644 --- a/vendor/toml_edit/src/table.rs +++ b/vendor/toml_edit/src/table.rs @@ -397,6 +397,20 @@ impl Table { pub fn remove_entry(&mut self, key: &str) -> Option<(Key, Item)> { self.items.shift_remove(key).map(|kv| (kv.key, kv.value)) } + + /// Retains only the elements specified by the `keep` predicate. + /// + /// In other words, remove all pairs `(key, item)` for which + /// `keep(&key, &mut item)` returns `false`. + /// + /// The elements are visited in iteration order. + pub fn retain<F>(&mut self, mut keep: F) + where + F: FnMut(&str, &mut Item) -> bool, + { + self.items + .retain(|key, key_value| keep(key, &mut key_value.value)); + } } impl std::fmt::Display for Table { |