summaryrefslogtreecommitdiffstats
path: root/vendor/toml_edit/tests
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 12:41:41 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 12:41:41 +0000
commit10ee2acdd26a7f1298c6f6d6b7af9b469fe29b87 (patch)
treebdffd5d80c26cf4a7a518281a204be1ace85b4c1 /vendor/toml_edit/tests
parentReleasing progress-linux version 1.70.0+dfsg1-9~progress7.99u1. (diff)
downloadrustc-10ee2acdd26a7f1298c6f6d6b7af9b469fe29b87.tar.xz
rustc-10ee2acdd26a7f1298c6f6d6b7af9b469fe29b87.zip
Merging upstream version 1.70.0+dfsg2.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'vendor/toml_edit/tests')
-rw-r--r--vendor/toml_edit/tests/decoder.rs100
-rw-r--r--vendor/toml_edit/tests/decoder_compliance.rs17
-rw-r--r--vendor/toml_edit/tests/encoder.rs111
-rw-r--r--vendor/toml_edit/tests/encoder_compliance.rs14
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/array/double-comma-1.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/array/double-comma-2.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/array/extending-table.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/array/missing-separator.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/array/no-close-2.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/array/no-close-table-2.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/array/no-close-table.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/array/no-close.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/array/tables-1.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/array/tables-2.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/array/text-after-array-entries.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/array/text-before-array-separator.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/array/text-in-array.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/bool/almost-false-with-extra.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/bool/almost-false.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/bool/almost-true-with-extra.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/bool/almost-true.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/bool/just-f.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/bool/just-t.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/bool/mixed-case.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/bool/starting-same-false.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/bool/starting-same-true.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/bool/wrong-case-false.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/bool/wrong-case-true.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/control/bare-cr.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/control/bare-formfeed.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/control/bare-null.stderrbin0 -> 126 bytes
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/control/bare-vertical-tab.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/control/comment-cr.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/control/comment-del.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/control/comment-lf.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/control/comment-null.stderrbin0 -> 124 bytes
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/control/comment-us.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/control/control.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/control/multi-del.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/control/multi-lf.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/control/multi-null.stderrbin0 -> 128 bytes
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/control/multi-us.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/control/rawmulti-del.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/control/rawmulti-lf.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/control/rawmulti-null.stderrbin0 -> 136 bytes
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/control/rawmulti-us.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/control/rawstring-del.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/control/rawstring-lf.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/control/rawstring-null.stderrbin0 -> 122 bytes
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/control/rawstring-us.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/control/string-bs.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/control/string-del.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/control/string-lf.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/control/string-null.stderrbin0 -> 114 bytes
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/control/string-us.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/datetime/hour-over.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/datetime/mday-over.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/datetime/mday-under.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/datetime/minute-over.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/datetime/month-over.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/datetime/month-under.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/datetime/no-leads-with-milli.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/datetime/no-leads.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/datetime/no-secs.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/datetime/no-t.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/datetime/second-over.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/datetime/time-no-leads-2.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/datetime/time-no-leads.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/datetime/trailing-t.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/encoding/bad-utf8-at-end.stderr1
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/encoding/bad-utf8-in-comment.stderr1
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/encoding/bad-utf8-in-multiline-literal.stderr1
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/encoding/bad-utf8-in-multiline.stderr1
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/encoding/bad-utf8-in-string-literal.stderr1
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/encoding/bad-utf8-in-string.stderr1
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/encoding/bom-not-at-start-1.stderr1
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/encoding/bom-not-at-start-2.stderr1
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/encoding/utf16-bom.stderr1
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/encoding/utf16.stderrbin0 -> 105 bytes
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/float/double-point-1.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/float/double-point-2.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/float/exp-double-e-1.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/float/exp-double-e-2.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/float/exp-double-us.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/float/exp-leading-us.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/float/exp-point-1.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/float/exp-point-2.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/float/exp-trailing-us.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/float/float.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/float/inf-incomplete-1.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/float/inf-incomplete-2.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/float/inf-incomplete-3.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/float/inf_underscore.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/float/leading-point-neg.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/float/leading-point-plus.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/float/leading-point.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/float/leading-us.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/float/leading-zero-neg.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/float/leading-zero-plus.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/float/leading-zero.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/float/nan-incomplete-1.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/float/nan-incomplete-2.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/float/nan-incomplete-3.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/float/nan_underscore.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/float/trailing-point-min.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/float/trailing-point-plus.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/float/trailing-point.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/float/trailing-us-exp.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/float/trailing-us.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/float/us-after-point.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/float/us-before-point.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/inline-table/add.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/inline-table/double-comma.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/inline-table/duplicate-key.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/inline-table/empty.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/inline-table/linebreak-1.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/inline-table/linebreak-2.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/inline-table/linebreak-3.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/inline-table/linebreak-4.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/inline-table/no-comma.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/inline-table/overwrite.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/inline-table/trailing-comma.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/integer/capital-bin.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/integer/capital-hex.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/integer/capital-oct.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/integer/double-sign-nex.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/integer/double-sign-plus.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/integer/double-us.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/integer/incomplete-bin.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/integer/incomplete-hex.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/integer/incomplete-oct.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/integer/integer.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/integer/invalid-bin.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/integer/invalid-hex.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/integer/invalid-oct.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/integer/leading-us-bin.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/integer/leading-us-hex.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/integer/leading-us-oct.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/integer/leading-us.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/integer/leading-zero-1.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/integer/leading-zero-2.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/integer/leading-zero-3.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/integer/leading-zero-sign-1.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/integer/leading-zero-sign-2.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/integer/leading-zero-sign-3.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/integer/negative-bin.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/integer/negative-hex.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/integer/negative-oct.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/integer/positive-bin.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/integer/positive-hex.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/integer/positive-oct.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/integer/text-after-integer.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/integer/trailing-us-bin.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/integer/trailing-us-hex.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/integer/trailing-us-oct.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/integer/trailing-us.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/integer/us-after-bin.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/integer/us-after-hex.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/integer/us-after-oct.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/key/after-array.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/key/after-table.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/key/after-value.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/key/bare-invalid-character.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/key/dotted-redefine-table.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/key/duplicate-keys.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/key/duplicate.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/key/empty.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/key/escape.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/key/hash.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/key/multiline.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/key/newline.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/key/no-eol.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/key/open-bracket.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/key/partial-quoted.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/key/quoted-unclosed-1.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/key/quoted-unclosed-2.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/key/single-open-bracket.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/key/space.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/key/special-character.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/key/start-bracket.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/key/start-dot.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/key/two-equals.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/key/two-equals2.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/key/two-equals3.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/key/without-value-1.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/key/without-value-2.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/key/without-value-3.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/key/without-value-4.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/spec/inline-table-2-0.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/spec/inline-table-3-0.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/spec/key-value-pair-1.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/spec/keys-2.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/spec/string-4-0.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/spec/string-7-0.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/spec/table-9-0.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/spec/table-9-1.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/string/bad-byte-escape.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/string/bad-codepoint.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/string/bad-concat.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/string/bad-escape-1.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/string/bad-escape-2.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/string/bad-hex-esc-1.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/string/bad-hex-esc-2.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/string/bad-hex-esc-3.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/string/bad-hex-esc-4.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/string/bad-hex-esc-5.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/string/bad-hex-esc.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/string/bad-multiline.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/string/bad-slash-escape.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/string/bad-uni-esc-1.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/string/bad-uni-esc-2.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/string/bad-uni-esc-3.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/string/bad-uni-esc-4.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/string/bad-uni-esc-5.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/string/basic-byte-escapes.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/string/basic-multiline-out-of-range-unicode-escape-1.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/string/basic-multiline-out-of-range-unicode-escape-2.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/string/basic-multiline-quotes.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/string/basic-multiline-unknown-escape.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/string/basic-out-of-range-unicode-escape-1.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/string/basic-out-of-range-unicode-escape-2.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/string/basic-unknown-escape.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/string/literal-multiline-quotes-1.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/string/literal-multiline-quotes-2.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/string/missing-quotes.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/string/multiline-bad-escape-1.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/string/multiline-bad-escape-2.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/string/multiline-bad-escape-3.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/string/multiline-escape-space.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/string/multiline-no-close-2.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/string/multiline-no-close.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/string/multiline-quotes-1.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/string/no-close.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/string/text-after-string.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/string/wrong-close.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/table/append-with-dotted-keys-1.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/table/append-with-dotted-keys-2.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/table/array-empty.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/table/array-implicit.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/table/array-missing-bracket.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/table/duplicate-key-dotted-table.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/table/duplicate-key-dotted-table2.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/table/duplicate-key-table.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/table/duplicate-table-array.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/table/duplicate-table-array2.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/table/duplicate.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/table/empty-implicit-table.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/table/empty.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/table/equals-sign.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/table/llbrace.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/table/nested-brackets-close.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/table/nested-brackets-open.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/table/quoted-no-close.stderr5
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/table/redefine.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/table/rrbrace.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/table/text-after-table.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/table/whitespace.stderr6
-rw-r--r--vendor/toml_edit/tests/fixtures/invalid/table/with-pound.stderr6
-rw-r--r--vendor/toml_edit/tests/invalid.rs26
-rw-r--r--vendor/toml_edit/tests/testsuite/convert.rs79
-rw-r--r--vendor/toml_edit/tests/testsuite/datetime.rs256
-rw-r--r--vendor/toml_edit/tests/testsuite/edit.rs855
-rw-r--r--vendor/toml_edit/tests/testsuite/invalid.rs211
-rw-r--r--vendor/toml_edit/tests/testsuite/main.rs8
-rw-r--r--vendor/toml_edit/tests/testsuite/parse.rs1448
-rw-r--r--vendor/toml_edit/tests/testsuite/stackoverflow.rs54
266 files changed, 4495 insertions, 0 deletions
diff --git a/vendor/toml_edit/tests/decoder.rs b/vendor/toml_edit/tests/decoder.rs
new file mode 100644
index 000000000..7306d4557
--- /dev/null
+++ b/vendor/toml_edit/tests/decoder.rs
@@ -0,0 +1,100 @@
+#[derive(Copy, Clone)]
+pub struct Decoder;
+
+impl toml_test_harness::Decoder for Decoder {
+ fn name(&self) -> &str {
+ "toml_edit"
+ }
+
+ fn decode(&self, data: &[u8]) -> Result<toml_test_harness::Decoded, toml_test_harness::Error> {
+ let data = std::str::from_utf8(data).map_err(toml_test_harness::Error::new)?;
+ let document = data
+ .parse::<toml_edit::Document>()
+ .map_err(toml_test_harness::Error::new)?;
+ document_to_decoded(&document)
+ }
+}
+
+fn document_to_decoded(
+ value: &toml_edit::Document,
+) -> Result<toml_test_harness::Decoded, toml_test_harness::Error> {
+ table_to_decoded(value)
+}
+
+fn item_to_decoded(
+ value: &toml_edit::Item,
+) -> Result<toml_test_harness::Decoded, toml_test_harness::Error> {
+ match value {
+ toml_edit::Item::None => unreachable!("No nones"),
+ toml_edit::Item::Value(v) => value_to_decoded(v),
+ toml_edit::Item::Table(v) => table_to_decoded(v),
+ toml_edit::Item::ArrayOfTables(v) => {
+ let v: Result<_, toml_test_harness::Error> = v.iter().map(table_to_decoded).collect();
+ Ok(toml_test_harness::Decoded::Array(v?))
+ }
+ }
+}
+
+fn value_to_decoded(
+ value: &toml_edit::Value,
+) -> Result<toml_test_harness::Decoded, toml_test_harness::Error> {
+ match value {
+ toml_edit::Value::Integer(v) => Ok(toml_test_harness::Decoded::Value(
+ toml_test_harness::DecodedValue::from(*v.value()),
+ )),
+ toml_edit::Value::String(v) => Ok(toml_test_harness::Decoded::Value(
+ toml_test_harness::DecodedValue::from(v.value()),
+ )),
+ toml_edit::Value::Float(v) => Ok(toml_test_harness::Decoded::Value(
+ toml_test_harness::DecodedValue::from(*v.value()),
+ )),
+ toml_edit::Value::Datetime(v) => {
+ let v = v.value();
+ let value = v.to_string();
+ let value = match (v.date.is_some(), v.time.is_some(), v.offset.is_some()) {
+ (true, true, true) => toml_test_harness::DecodedValue::Datetime(value),
+ (true, true, false) => toml_test_harness::DecodedValue::DatetimeLocal(value),
+ (true, false, false) => toml_test_harness::DecodedValue::DateLocal(value),
+ (false, true, false) => toml_test_harness::DecodedValue::TimeLocal(value),
+ _ => unreachable!("Unsupported case"),
+ };
+ Ok(toml_test_harness::Decoded::Value(value))
+ }
+ toml_edit::Value::Boolean(v) => Ok(toml_test_harness::Decoded::Value(
+ toml_test_harness::DecodedValue::from(*v.value()),
+ )),
+ toml_edit::Value::Array(v) => {
+ let v: Result<_, toml_test_harness::Error> = v.iter().map(value_to_decoded).collect();
+ Ok(toml_test_harness::Decoded::Array(v?))
+ }
+ toml_edit::Value::InlineTable(v) => inline_table_to_decoded(v),
+ }
+}
+
+fn table_to_decoded(
+ value: &toml_edit::Table,
+) -> Result<toml_test_harness::Decoded, toml_test_harness::Error> {
+ let table: Result<_, toml_test_harness::Error> = value
+ .iter()
+ .map(|(k, v)| {
+ let k = k.to_owned();
+ let v = item_to_decoded(v)?;
+ Ok((k, v))
+ })
+ .collect();
+ Ok(toml_test_harness::Decoded::Table(table?))
+}
+
+fn inline_table_to_decoded(
+ value: &toml_edit::InlineTable,
+) -> Result<toml_test_harness::Decoded, toml_test_harness::Error> {
+ let table: Result<_, toml_test_harness::Error> = value
+ .iter()
+ .map(|(k, v)| {
+ let k = k.to_owned();
+ let v = value_to_decoded(v)?;
+ Ok((k, v))
+ })
+ .collect();
+ Ok(toml_test_harness::Decoded::Table(table?))
+}
diff --git a/vendor/toml_edit/tests/decoder_compliance.rs b/vendor/toml_edit/tests/decoder_compliance.rs
new file mode 100644
index 000000000..0f0b35015
--- /dev/null
+++ b/vendor/toml_edit/tests/decoder_compliance.rs
@@ -0,0 +1,17 @@
+mod decoder;
+
+fn main() {
+ let decoder = decoder::Decoder;
+ let mut harness = toml_test_harness::DecoderHarness::new(decoder);
+ harness
+ .ignore([
+ "valid/spec/float-0.toml", // Test issue; `Decoder` turns `6.626e-34` into `0.0`
+ // Unreleased
+ "valid/string/escape-esc.toml",
+ "valid/string/hex-escape.toml",
+ "valid/datetime/no-seconds.toml",
+ "valid/inline-table/newline.toml",
+ ])
+ .unwrap();
+ harness.test();
+}
diff --git a/vendor/toml_edit/tests/encoder.rs b/vendor/toml_edit/tests/encoder.rs
new file mode 100644
index 000000000..808a20c42
--- /dev/null
+++ b/vendor/toml_edit/tests/encoder.rs
@@ -0,0 +1,111 @@
+#[derive(Copy, Clone)]
+pub struct Encoder;
+
+impl toml_test_harness::Encoder for Encoder {
+ fn name(&self) -> &str {
+ "toml_edit"
+ }
+
+ fn encode(&self, data: toml_test_harness::Decoded) -> Result<String, toml_test_harness::Error> {
+ let doc = decoded_to_document(&data)?;
+ Ok(doc.to_string())
+ }
+}
+
+fn decoded_to_document(
+ decoded: &toml_test_harness::Decoded,
+) -> Result<toml_edit::Document, toml_test_harness::Error> {
+ let item = root_from_decoded(decoded)?;
+ let mut doc = toml_edit::Document::new();
+ *doc = item;
+ Ok(doc)
+}
+
+fn root_from_decoded(
+ decoded: &toml_test_harness::Decoded,
+) -> Result<toml_edit::Table, toml_test_harness::Error> {
+ match decoded {
+ toml_test_harness::Decoded::Value(_) => {
+ Err(toml_test_harness::Error::new("Root cannot be a value"))
+ }
+ toml_test_harness::Decoded::Table(value) => value
+ .iter()
+ .map(|(k, v)| {
+ let k = k.as_str();
+ let v = from_decoded(v)?;
+ Ok((k, v))
+ })
+ .collect(),
+ toml_test_harness::Decoded::Array(_) => {
+ Err(toml_test_harness::Error::new("Root cannot be an array"))
+ }
+ }
+}
+
+fn from_decoded(
+ decoded: &toml_test_harness::Decoded,
+) -> Result<toml_edit::Value, toml_test_harness::Error> {
+ let value = match decoded {
+ toml_test_harness::Decoded::Value(value) => from_decoded_value(value)?,
+ toml_test_harness::Decoded::Table(value) => {
+ toml_edit::Value::InlineTable(from_table(value)?)
+ }
+ toml_test_harness::Decoded::Array(value) => toml_edit::Value::Array(from_array(value)?),
+ };
+ Ok(value)
+}
+
+fn from_decoded_value(
+ decoded: &toml_test_harness::DecodedValue,
+) -> Result<toml_edit::Value, toml_test_harness::Error> {
+ let value: toml_edit::Value = match decoded {
+ toml_test_harness::DecodedValue::String(value) => value.into(),
+ toml_test_harness::DecodedValue::Integer(value) => value
+ .parse::<i64>()
+ .map_err(toml_test_harness::Error::new)?
+ .into(),
+ toml_test_harness::DecodedValue::Float(value) => value
+ .parse::<f64>()
+ .map_err(toml_test_harness::Error::new)?
+ .into(),
+ toml_test_harness::DecodedValue::Bool(value) => value
+ .parse::<bool>()
+ .map_err(toml_test_harness::Error::new)?
+ .into(),
+ toml_test_harness::DecodedValue::Datetime(value) => value
+ .parse::<toml_edit::Datetime>()
+ .map_err(toml_test_harness::Error::new)?
+ .into(),
+ toml_test_harness::DecodedValue::DatetimeLocal(value) => value
+ .parse::<toml_edit::Datetime>()
+ .map_err(toml_test_harness::Error::new)?
+ .into(),
+ toml_test_harness::DecodedValue::DateLocal(value) => value
+ .parse::<toml_edit::Datetime>()
+ .map_err(toml_test_harness::Error::new)?
+ .into(),
+ toml_test_harness::DecodedValue::TimeLocal(value) => value
+ .parse::<toml_edit::Datetime>()
+ .map_err(toml_test_harness::Error::new)?
+ .into(),
+ };
+ Ok(value)
+}
+
+fn from_table(
+ decoded: &std::collections::HashMap<String, toml_test_harness::Decoded>,
+) -> Result<toml_edit::InlineTable, toml_test_harness::Error> {
+ decoded
+ .iter()
+ .map(|(k, v)| {
+ let v = from_decoded(v)?;
+ Ok((k, v))
+ })
+ .collect()
+}
+
+fn from_array(
+ decoded: &[toml_test_harness::Decoded],
+) -> Result<toml_edit::Array, toml_test_harness::Error> {
+ decoded.iter().map(from_decoded).collect()
+}
diff --git a/vendor/toml_edit/tests/encoder_compliance.rs b/vendor/toml_edit/tests/encoder_compliance.rs
new file mode 100644
index 000000000..ad65d75ce
--- /dev/null
+++ b/vendor/toml_edit/tests/encoder_compliance.rs
@@ -0,0 +1,14 @@
+mod decoder;
+mod encoder;
+
+fn main() {
+ let encoder = encoder::Encoder;
+ let decoder = decoder::Decoder;
+ let mut harness = toml_test_harness::EncoderHarness::new(encoder, decoder);
+ harness
+ .ignore([
+ "valid/spec/float-0.toml", // Test issue; `Decoder` turns `6.626e-34` into `0.0`
+ ])
+ .unwrap();
+ harness.test();
+}
diff --git a/vendor/toml_edit/tests/fixtures/invalid/array/double-comma-1.stderr b/vendor/toml_edit/tests/fixtures/invalid/array/double-comma-1.stderr
new file mode 100644
index 000000000..543e1b680
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/array/double-comma-1.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 12
+ |
+1 | array = [1,,2]
+ | ^
+invalid array
+expected `]`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/array/double-comma-2.stderr b/vendor/toml_edit/tests/fixtures/invalid/array/double-comma-2.stderr
new file mode 100644
index 000000000..694d7ec40
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/array/double-comma-2.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 14
+ |
+1 | array = [1,2,,]
+ | ^
+invalid array
+expected `]`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/array/extending-table.stderr b/vendor/toml_edit/tests/fixtures/invalid/array/extending-table.stderr
new file mode 100644
index 000000000..6f92ff668
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/array/extending-table.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 5, column 1
+ |
+5 | [a.c]
+ | ^
+invalid table header
+dotted key `a` attempted to extend non-table type (array)
diff --git a/vendor/toml_edit/tests/fixtures/invalid/array/missing-separator.stderr b/vendor/toml_edit/tests/fixtures/invalid/array/missing-separator.stderr
new file mode 100644
index 000000000..8e21f51fe
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/array/missing-separator.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 13
+ |
+1 | wrong = [ 1 2 3 ]
+ | ^
+invalid array
+expected `]`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/array/no-close-2.stderr b/vendor/toml_edit/tests/fixtures/invalid/array/no-close-2.stderr
new file mode 100644
index 000000000..81ae5a968
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/array/no-close-2.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 11
+ |
+1 | x = [42 #
+ | ^
+invalid array
+expected `]`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/array/no-close-table-2.stderr b/vendor/toml_edit/tests/fixtures/invalid/array/no-close-table-2.stderr
new file mode 100644
index 000000000..535943e2e
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/array/no-close-table-2.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 17
+ |
+1 | x = [{ key = 42 #
+ | ^
+invalid inline table
+expected `}`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/array/no-close-table.stderr b/vendor/toml_edit/tests/fixtures/invalid/array/no-close-table.stderr
new file mode 100644
index 000000000..b4c3c32d4
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/array/no-close-table.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 16
+ |
+1 | x = [{ key = 42
+ | ^
+invalid inline table
+expected `}`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/array/no-close.stderr b/vendor/toml_edit/tests/fixtures/invalid/array/no-close.stderr
new file mode 100644
index 000000000..a4f0a88d3
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/array/no-close.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 24
+ |
+1 | long_array = [ 1, 2, 3
+ | ^
+invalid array
+expected `]`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/array/tables-1.stderr b/vendor/toml_edit/tests/fixtures/invalid/array/tables-1.stderr
new file mode 100644
index 000000000..771b4f6c9
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/array/tables-1.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 4, column 1
+ |
+4 | [[fruit]] # Not allowed
+ | ^
+invalid table header
+duplicate key `fruit` in document root
diff --git a/vendor/toml_edit/tests/fixtures/invalid/array/tables-2.stderr b/vendor/toml_edit/tests/fixtures/invalid/array/tables-2.stderr
new file mode 100644
index 000000000..1f88e6efd
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/array/tables-2.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 9, column 3
+ |
+9 | [fruit.variety]
+ | ^
+invalid table header
+duplicate key `variety` in table `fruit`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/array/text-after-array-entries.stderr b/vendor/toml_edit/tests/fixtures/invalid/array/text-after-array-entries.stderr
new file mode 100644
index 000000000..23b5ac27c
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/array/text-after-array-entries.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 2, column 46
+ |
+2 | "Is there life after an array separator?", No
+ | ^
+invalid array
+expected `]`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/array/text-before-array-separator.stderr b/vendor/toml_edit/tests/fixtures/invalid/array/text-before-array-separator.stderr
new file mode 100644
index 000000000..9d667990b
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/array/text-before-array-separator.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 2, column 46
+ |
+2 | "Is there life before an array separator?" No,
+ | ^
+invalid array
+expected `]`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/array/text-in-array.stderr b/vendor/toml_edit/tests/fixtures/invalid/array/text-in-array.stderr
new file mode 100644
index 000000000..580237357
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/array/text-in-array.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 3, column 3
+ |
+3 | I don't belong,
+ | ^
+invalid array
+expected `]`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/bool/almost-false-with-extra.stderr b/vendor/toml_edit/tests/fixtures/invalid/bool/almost-false-with-extra.stderr
new file mode 100644
index 000000000..cd6c1cd5f
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/bool/almost-false-with-extra.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 5
+ |
+1 | a = falsify
+ | ^
+invalid string
+expected `"`, `'`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/bool/almost-false.stderr b/vendor/toml_edit/tests/fixtures/invalid/bool/almost-false.stderr
new file mode 100644
index 000000000..550020b92
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/bool/almost-false.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 5
+ |
+1 | a = fals
+ | ^
+invalid string
+expected `"`, `'`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/bool/almost-true-with-extra.stderr b/vendor/toml_edit/tests/fixtures/invalid/bool/almost-true-with-extra.stderr
new file mode 100644
index 000000000..c75c553ee
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/bool/almost-true-with-extra.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 5
+ |
+1 | a = truthy
+ | ^
+invalid string
+expected `"`, `'`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/bool/almost-true.stderr b/vendor/toml_edit/tests/fixtures/invalid/bool/almost-true.stderr
new file mode 100644
index 000000000..0c97e0076
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/bool/almost-true.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 5
+ |
+1 | a = tru
+ | ^
+invalid string
+expected `"`, `'`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/bool/just-f.stderr b/vendor/toml_edit/tests/fixtures/invalid/bool/just-f.stderr
new file mode 100644
index 000000000..ed2b9f0e7
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/bool/just-f.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 5
+ |
+1 | a = f
+ | ^
+invalid string
+expected `"`, `'`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/bool/just-t.stderr b/vendor/toml_edit/tests/fixtures/invalid/bool/just-t.stderr
new file mode 100644
index 000000000..2c8b6a5bd
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/bool/just-t.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 5
+ |
+1 | a = t
+ | ^
+invalid string
+expected `"`, `'`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/bool/mixed-case.stderr b/vendor/toml_edit/tests/fixtures/invalid/bool/mixed-case.stderr
new file mode 100644
index 000000000..b7c6192dd
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/bool/mixed-case.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 9
+ |
+1 | valid = False
+ | ^
+invalid string
+expected `"`, `'`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/bool/starting-same-false.stderr b/vendor/toml_edit/tests/fixtures/invalid/bool/starting-same-false.stderr
new file mode 100644
index 000000000..b3320892c
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/bool/starting-same-false.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 10
+ |
+1 | a = falsey
+ | ^
+expected newline, `#`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/bool/starting-same-true.stderr b/vendor/toml_edit/tests/fixtures/invalid/bool/starting-same-true.stderr
new file mode 100644
index 000000000..6053103c9
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/bool/starting-same-true.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 9
+ |
+1 | a = truer
+ | ^
+expected newline, `#`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/bool/wrong-case-false.stderr b/vendor/toml_edit/tests/fixtures/invalid/bool/wrong-case-false.stderr
new file mode 100644
index 000000000..f67444c40
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/bool/wrong-case-false.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 5
+ |
+1 | b = FALSE
+ | ^
+invalid string
+expected `"`, `'`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/bool/wrong-case-true.stderr b/vendor/toml_edit/tests/fixtures/invalid/bool/wrong-case-true.stderr
new file mode 100644
index 000000000..82bb6194f
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/bool/wrong-case-true.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 5
+ |
+1 | a = TRUE
+ | ^
+invalid string
+expected `"`, `'`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/control/bare-cr.stderr b/vendor/toml_edit/tests/fixtures/invalid/control/bare-cr.stderr
new file mode 100644
index 000000000..f0062f6f2
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/control/bare-cr.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 2, column 1
+ |
+2 |
+ | ^
+
diff --git a/vendor/toml_edit/tests/fixtures/invalid/control/bare-formfeed.stderr b/vendor/toml_edit/tests/fixtures/invalid/control/bare-formfeed.stderr
new file mode 100644
index 000000000..313274a3e
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/control/bare-formfeed.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 17
+ |
+1 | bare-formfeed =
+ | ^
+invalid string
+expected `"`, `'`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/control/bare-null.stderr b/vendor/toml_edit/tests/fixtures/invalid/control/bare-null.stderr
new file mode 100644
index 000000000..cd5e936ac
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/control/bare-null.stderr
Binary files differ
diff --git a/vendor/toml_edit/tests/fixtures/invalid/control/bare-vertical-tab.stderr b/vendor/toml_edit/tests/fixtures/invalid/control/bare-vertical-tab.stderr
new file mode 100644
index 000000000..c8e01ba04
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/control/bare-vertical-tab.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 21
+ |
+1 | bare-vertical-tab =
+ | ^
+invalid string
+expected `"`, `'`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/control/comment-cr.stderr b/vendor/toml_edit/tests/fixtures/invalid/control/comment-cr.stderr
new file mode 100644
index 000000000..fb262e547
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/control/comment-cr.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 45
+ |
+1 | comment-cr = "Carriage return in comment" #
+a=1
+ | ^
+expected newline, `#`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/control/comment-del.stderr b/vendor/toml_edit/tests/fixtures/invalid/control/comment-del.stderr
new file mode 100644
index 000000000..3d25d68dc
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/control/comment-del.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 24
+ |
+1 | comment-del = "0x7f" # 
+ | ^
+expected newline, `#`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/control/comment-lf.stderr b/vendor/toml_edit/tests/fixtures/invalid/control/comment-lf.stderr
new file mode 100644
index 000000000..1613710ed
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/control/comment-lf.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 25
+ |
+1 | comment-lf = "ctrl-P" # 
+ | ^
+expected newline, `#`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/control/comment-null.stderr b/vendor/toml_edit/tests/fixtures/invalid/control/comment-null.stderr
new file mode 100644
index 000000000..4955b9deb
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/control/comment-null.stderr
Binary files differ
diff --git a/vendor/toml_edit/tests/fixtures/invalid/control/comment-us.stderr b/vendor/toml_edit/tests/fixtures/invalid/control/comment-us.stderr
new file mode 100644
index 000000000..b48d4f33c
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/control/comment-us.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 25
+ |
+1 | comment-us = "ctrl-_" # 
+ | ^
+expected newline, `#`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/control/control.stderr b/vendor/toml_edit/tests/fixtures/invalid/control/control.stderr
new file mode 100644
index 000000000..486aacf1b
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/control/control.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 9, column 22
+ |
+9 | string-null = "null\x00"
+ | ^
+invalid escape sequence
+expected `b`, `f`, `n`, `r`, `t`, `u`, `U`, `\`, `"`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/control/multi-del.stderr b/vendor/toml_edit/tests/fixtures/invalid/control/multi-del.stderr
new file mode 100644
index 000000000..62702da7b
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/control/multi-del.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 20
+ |
+1 | multi-del = """null"""
+ | ^
+invalid multiline basic string
diff --git a/vendor/toml_edit/tests/fixtures/invalid/control/multi-lf.stderr b/vendor/toml_edit/tests/fixtures/invalid/control/multi-lf.stderr
new file mode 100644
index 000000000..7b7a13889
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/control/multi-lf.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 19
+ |
+1 | multi-lf = """null"""
+ | ^
+invalid multiline basic string
diff --git a/vendor/toml_edit/tests/fixtures/invalid/control/multi-null.stderr b/vendor/toml_edit/tests/fixtures/invalid/control/multi-null.stderr
new file mode 100644
index 000000000..2d3c33534
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/control/multi-null.stderr
Binary files differ
diff --git a/vendor/toml_edit/tests/fixtures/invalid/control/multi-us.stderr b/vendor/toml_edit/tests/fixtures/invalid/control/multi-us.stderr
new file mode 100644
index 000000000..cf8e73286
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/control/multi-us.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 19
+ |
+1 | multi-us = """null"""
+ | ^
+invalid multiline basic string
diff --git a/vendor/toml_edit/tests/fixtures/invalid/control/rawmulti-del.stderr b/vendor/toml_edit/tests/fixtures/invalid/control/rawmulti-del.stderr
new file mode 100644
index 000000000..3beeae099
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/control/rawmulti-del.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 23
+ |
+1 | rawmulti-del = '''null'''
+ | ^
+invalid multiline literal string
diff --git a/vendor/toml_edit/tests/fixtures/invalid/control/rawmulti-lf.stderr b/vendor/toml_edit/tests/fixtures/invalid/control/rawmulti-lf.stderr
new file mode 100644
index 000000000..40782a261
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/control/rawmulti-lf.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 22
+ |
+1 | rawmulti-lf = '''null'''
+ | ^
+invalid multiline literal string
diff --git a/vendor/toml_edit/tests/fixtures/invalid/control/rawmulti-null.stderr b/vendor/toml_edit/tests/fixtures/invalid/control/rawmulti-null.stderr
new file mode 100644
index 000000000..d583ce6f5
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/control/rawmulti-null.stderr
Binary files differ
diff --git a/vendor/toml_edit/tests/fixtures/invalid/control/rawmulti-us.stderr b/vendor/toml_edit/tests/fixtures/invalid/control/rawmulti-us.stderr
new file mode 100644
index 000000000..d413d54f1
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/control/rawmulti-us.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 22
+ |
+1 | rawmulti-us = '''null'''
+ | ^
+invalid multiline literal string
diff --git a/vendor/toml_edit/tests/fixtures/invalid/control/rawstring-del.stderr b/vendor/toml_edit/tests/fixtures/invalid/control/rawstring-del.stderr
new file mode 100644
index 000000000..640ba463b
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/control/rawstring-del.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 22
+ |
+1 | rawstring-del = 'null'
+ | ^
+invalid literal string
diff --git a/vendor/toml_edit/tests/fixtures/invalid/control/rawstring-lf.stderr b/vendor/toml_edit/tests/fixtures/invalid/control/rawstring-lf.stderr
new file mode 100644
index 000000000..e6499b6b9
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/control/rawstring-lf.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 21
+ |
+1 | rawstring-lf = 'null'
+ | ^
+invalid literal string
diff --git a/vendor/toml_edit/tests/fixtures/invalid/control/rawstring-null.stderr b/vendor/toml_edit/tests/fixtures/invalid/control/rawstring-null.stderr
new file mode 100644
index 000000000..9227d090e
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/control/rawstring-null.stderr
Binary files differ
diff --git a/vendor/toml_edit/tests/fixtures/invalid/control/rawstring-us.stderr b/vendor/toml_edit/tests/fixtures/invalid/control/rawstring-us.stderr
new file mode 100644
index 000000000..492cdf743
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/control/rawstring-us.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 21
+ |
+1 | rawstring-us = 'null'
+ | ^
+invalid literal string
diff --git a/vendor/toml_edit/tests/fixtures/invalid/control/string-bs.stderr b/vendor/toml_edit/tests/fixtures/invalid/control/string-bs.stderr
new file mode 100644
index 000000000..556ba1d7b
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/control/string-bs.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 23
+ |
+1 | string-bs = "backspace"
+ | ^
+invalid basic string
diff --git a/vendor/toml_edit/tests/fixtures/invalid/control/string-del.stderr b/vendor/toml_edit/tests/fixtures/invalid/control/string-del.stderr
new file mode 100644
index 000000000..85d7af397
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/control/string-del.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 19
+ |
+1 | string-del = "null"
+ | ^
+invalid basic string
diff --git a/vendor/toml_edit/tests/fixtures/invalid/control/string-lf.stderr b/vendor/toml_edit/tests/fixtures/invalid/control/string-lf.stderr
new file mode 100644
index 000000000..fbf0d1a3f
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/control/string-lf.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 18
+ |
+1 | string-lf = "null"
+ | ^
+invalid basic string
diff --git a/vendor/toml_edit/tests/fixtures/invalid/control/string-null.stderr b/vendor/toml_edit/tests/fixtures/invalid/control/string-null.stderr
new file mode 100644
index 000000000..e9fc0befa
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/control/string-null.stderr
Binary files differ
diff --git a/vendor/toml_edit/tests/fixtures/invalid/control/string-us.stderr b/vendor/toml_edit/tests/fixtures/invalid/control/string-us.stderr
new file mode 100644
index 000000000..8278e570a
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/control/string-us.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 18
+ |
+1 | string-us = "null"
+ | ^
+invalid basic string
diff --git a/vendor/toml_edit/tests/fixtures/invalid/datetime/hour-over.stderr b/vendor/toml_edit/tests/fixtures/invalid/datetime/hour-over.stderr
new file mode 100644
index 000000000..0e6747da3
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/datetime/hour-over.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 2, column 15
+ |
+2 | d = 2006-01-01T24:00:00-00:00
+ | ^
+expected newline, `#`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/datetime/mday-over.stderr b/vendor/toml_edit/tests/fixtures/invalid/datetime/mday-over.stderr
new file mode 100644
index 000000000..edb976990
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/datetime/mday-over.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 3, column 13
+ |
+3 | d = 2006-01-32T00:00:00-00:00
+ | ^
+invalid date-time
+value is out of range
diff --git a/vendor/toml_edit/tests/fixtures/invalid/datetime/mday-under.stderr b/vendor/toml_edit/tests/fixtures/invalid/datetime/mday-under.stderr
new file mode 100644
index 000000000..6af20509d
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/datetime/mday-under.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 3, column 13
+ |
+3 | d = 2006-01-00T00:00:00-00:00
+ | ^
+invalid date-time
+value is out of range
diff --git a/vendor/toml_edit/tests/fixtures/invalid/datetime/minute-over.stderr b/vendor/toml_edit/tests/fixtures/invalid/datetime/minute-over.stderr
new file mode 100644
index 000000000..20f3b4bc6
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/datetime/minute-over.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 2, column 19
+ |
+2 | d = 2006-01-01T00:60:00-00:00
+ | ^
+invalid date-time
+value is out of range
diff --git a/vendor/toml_edit/tests/fixtures/invalid/datetime/month-over.stderr b/vendor/toml_edit/tests/fixtures/invalid/datetime/month-over.stderr
new file mode 100644
index 000000000..33334755b
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/datetime/month-over.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 2, column 10
+ |
+2 | d = 2006-13-01T00:00:00-00:00
+ | ^
+invalid date-time
+value is out of range
diff --git a/vendor/toml_edit/tests/fixtures/invalid/datetime/month-under.stderr b/vendor/toml_edit/tests/fixtures/invalid/datetime/month-under.stderr
new file mode 100644
index 000000000..5d0cd0645
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/datetime/month-under.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 2, column 10
+ |
+2 | d = 2007-00-01T00:00:00-00:00
+ | ^
+invalid date-time
+value is out of range
diff --git a/vendor/toml_edit/tests/fixtures/invalid/datetime/no-leads-with-milli.stderr b/vendor/toml_edit/tests/fixtures/invalid/datetime/no-leads-with-milli.stderr
new file mode 100644
index 000000000..df9190dcf
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/datetime/no-leads-with-milli.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 2, column 22
+ |
+2 | with-milli = 1987-07-5T17:45:00.12Z
+ | ^
+invalid date-time
diff --git a/vendor/toml_edit/tests/fixtures/invalid/datetime/no-leads.stderr b/vendor/toml_edit/tests/fixtures/invalid/datetime/no-leads.stderr
new file mode 100644
index 000000000..3e0ccf722
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/datetime/no-leads.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 2, column 17
+ |
+2 | no-leads = 1987-7-05T17:45:00Z
+ | ^
+invalid date-time
diff --git a/vendor/toml_edit/tests/fixtures/invalid/datetime/no-secs.stderr b/vendor/toml_edit/tests/fixtures/invalid/datetime/no-secs.stderr
new file mode 100644
index 000000000..078d0a001
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/datetime/no-secs.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 2, column 27
+ |
+2 | no-secs = 1987-07-05T17:45Z
+ | ^
+invalid date-time
diff --git a/vendor/toml_edit/tests/fixtures/invalid/datetime/no-t.stderr b/vendor/toml_edit/tests/fixtures/invalid/datetime/no-t.stderr
new file mode 100644
index 000000000..15e955463
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/datetime/no-t.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 2, column 18
+ |
+2 | no-t = 1987-07-0517:45:00Z
+ | ^
+expected newline, `#`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/datetime/second-over.stderr b/vendor/toml_edit/tests/fixtures/invalid/datetime/second-over.stderr
new file mode 100644
index 000000000..186a38dad
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/datetime/second-over.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 3, column 22
+ |
+3 | d = 2006-01-01T00:00:61-00:00
+ | ^
+invalid date-time
+value is out of range
diff --git a/vendor/toml_edit/tests/fixtures/invalid/datetime/time-no-leads-2.stderr b/vendor/toml_edit/tests/fixtures/invalid/datetime/time-no-leads-2.stderr
new file mode 100644
index 000000000..fd77fb297
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/datetime/time-no-leads-2.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 2, column 11
+ |
+2 | d = 01:32:0
+ | ^
+invalid time
diff --git a/vendor/toml_edit/tests/fixtures/invalid/datetime/time-no-leads.stderr b/vendor/toml_edit/tests/fixtures/invalid/datetime/time-no-leads.stderr
new file mode 100644
index 000000000..7a9890229
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/datetime/time-no-leads.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 2, column 6
+ |
+2 | d = 1:32:00
+ | ^
+expected newline, `#`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/datetime/trailing-t.stderr b/vendor/toml_edit/tests/fixtures/invalid/datetime/trailing-t.stderr
new file mode 100644
index 000000000..061ec2682
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/datetime/trailing-t.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 2, column 15
+ |
+2 | d = 2006-01-30T
+ | ^
+expected newline, `#`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/encoding/bad-utf8-at-end.stderr b/vendor/toml_edit/tests/fixtures/invalid/encoding/bad-utf8-at-end.stderr
new file mode 100644
index 000000000..7a11cf905
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/encoding/bad-utf8-at-end.stderr
@@ -0,0 +1 @@
+incomplete utf-8 byte sequence from index 241 \ No newline at end of file
diff --git a/vendor/toml_edit/tests/fixtures/invalid/encoding/bad-utf8-in-comment.stderr b/vendor/toml_edit/tests/fixtures/invalid/encoding/bad-utf8-in-comment.stderr
new file mode 100644
index 000000000..72d1465ca
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/encoding/bad-utf8-in-comment.stderr
@@ -0,0 +1 @@
+invalid utf-8 sequence of 1 bytes from index 2 \ No newline at end of file
diff --git a/vendor/toml_edit/tests/fixtures/invalid/encoding/bad-utf8-in-multiline-literal.stderr b/vendor/toml_edit/tests/fixtures/invalid/encoding/bad-utf8-in-multiline-literal.stderr
new file mode 100644
index 000000000..0c70f2864
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/encoding/bad-utf8-in-multiline-literal.stderr
@@ -0,0 +1 @@
+invalid utf-8 sequence of 1 bytes from index 66 \ No newline at end of file
diff --git a/vendor/toml_edit/tests/fixtures/invalid/encoding/bad-utf8-in-multiline.stderr b/vendor/toml_edit/tests/fixtures/invalid/encoding/bad-utf8-in-multiline.stderr
new file mode 100644
index 000000000..0c70f2864
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/encoding/bad-utf8-in-multiline.stderr
@@ -0,0 +1 @@
+invalid utf-8 sequence of 1 bytes from index 66 \ No newline at end of file
diff --git a/vendor/toml_edit/tests/fixtures/invalid/encoding/bad-utf8-in-string-literal.stderr b/vendor/toml_edit/tests/fixtures/invalid/encoding/bad-utf8-in-string-literal.stderr
new file mode 100644
index 000000000..9e1a687c6
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/encoding/bad-utf8-in-string-literal.stderr
@@ -0,0 +1 @@
+invalid utf-8 sequence of 1 bytes from index 64 \ No newline at end of file
diff --git a/vendor/toml_edit/tests/fixtures/invalid/encoding/bad-utf8-in-string.stderr b/vendor/toml_edit/tests/fixtures/invalid/encoding/bad-utf8-in-string.stderr
new file mode 100644
index 000000000..9e1a687c6
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/encoding/bad-utf8-in-string.stderr
@@ -0,0 +1 @@
+invalid utf-8 sequence of 1 bytes from index 64 \ No newline at end of file
diff --git a/vendor/toml_edit/tests/fixtures/invalid/encoding/bom-not-at-start-1.stderr b/vendor/toml_edit/tests/fixtures/invalid/encoding/bom-not-at-start-1.stderr
new file mode 100644
index 000000000..8d9d90bfe
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/encoding/bom-not-at-start-1.stderr
@@ -0,0 +1 @@
+invalid utf-8 sequence of 1 bytes from index 17 \ No newline at end of file
diff --git a/vendor/toml_edit/tests/fixtures/invalid/encoding/bom-not-at-start-2.stderr b/vendor/toml_edit/tests/fixtures/invalid/encoding/bom-not-at-start-2.stderr
new file mode 100644
index 000000000..8fce4086e
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/encoding/bom-not-at-start-2.stderr
@@ -0,0 +1 @@
+invalid utf-8 sequence of 1 bytes from index 18 \ No newline at end of file
diff --git a/vendor/toml_edit/tests/fixtures/invalid/encoding/utf16-bom.stderr b/vendor/toml_edit/tests/fixtures/invalid/encoding/utf16-bom.stderr
new file mode 100644
index 000000000..b1b9eedac
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/encoding/utf16-bom.stderr
@@ -0,0 +1 @@
+invalid utf-8 sequence of 1 bytes from index 0 \ No newline at end of file
diff --git a/vendor/toml_edit/tests/fixtures/invalid/encoding/utf16.stderr b/vendor/toml_edit/tests/fixtures/invalid/encoding/utf16.stderr
new file mode 100644
index 000000000..688616546
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/encoding/utf16.stderr
Binary files differ
diff --git a/vendor/toml_edit/tests/fixtures/invalid/float/double-point-1.stderr b/vendor/toml_edit/tests/fixtures/invalid/float/double-point-1.stderr
new file mode 100644
index 000000000..390520f7d
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/float/double-point-1.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 20
+ |
+1 | double-point-1 = 0..1
+ | ^
+invalid floating-point number
+expected digit
diff --git a/vendor/toml_edit/tests/fixtures/invalid/float/double-point-2.stderr b/vendor/toml_edit/tests/fixtures/invalid/float/double-point-2.stderr
new file mode 100644
index 000000000..a020a4846
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/float/double-point-2.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 21
+ |
+1 | double-point-2 = 0.1.2
+ | ^
+expected newline, `#`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/float/exp-double-e-1.stderr b/vendor/toml_edit/tests/fixtures/invalid/float/exp-double-e-1.stderr
new file mode 100644
index 000000000..54118395c
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/float/exp-double-e-1.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 20
+ |
+1 | exp-double-e-1 = 1ee2
+ | ^
+invalid floating-point number
diff --git a/vendor/toml_edit/tests/fixtures/invalid/float/exp-double-e-2.stderr b/vendor/toml_edit/tests/fixtures/invalid/float/exp-double-e-2.stderr
new file mode 100644
index 000000000..1b99d374d
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/float/exp-double-e-2.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 21
+ |
+1 | exp-double-e-2 = 1e2e3
+ | ^
+expected newline, `#`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/float/exp-double-us.stderr b/vendor/toml_edit/tests/fixtures/invalid/float/exp-double-us.stderr
new file mode 100644
index 000000000..6a66e43d6
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/float/exp-double-us.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 19
+ |
+1 | exp-double-us = 1e__23
+ | ^
+invalid floating-point number
diff --git a/vendor/toml_edit/tests/fixtures/invalid/float/exp-leading-us.stderr b/vendor/toml_edit/tests/fixtures/invalid/float/exp-leading-us.stderr
new file mode 100644
index 000000000..769668690
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/float/exp-leading-us.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 20
+ |
+1 | exp-leading-us = 1e_23
+ | ^
+invalid floating-point number
diff --git a/vendor/toml_edit/tests/fixtures/invalid/float/exp-point-1.stderr b/vendor/toml_edit/tests/fixtures/invalid/float/exp-point-1.stderr
new file mode 100644
index 000000000..87f0a0b2e
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/float/exp-point-1.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 18
+ |
+1 | exp-point-1 = 1e2.3
+ | ^
+expected newline, `#`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/float/exp-point-2.stderr b/vendor/toml_edit/tests/fixtures/invalid/float/exp-point-2.stderr
new file mode 100644
index 000000000..808905064
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/float/exp-point-2.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 17
+ |
+1 | exp-point-2 = 1.e2
+ | ^
+invalid floating-point number
+expected digit
diff --git a/vendor/toml_edit/tests/fixtures/invalid/float/exp-trailing-us.stderr b/vendor/toml_edit/tests/fixtures/invalid/float/exp-trailing-us.stderr
new file mode 100644
index 000000000..9a2818493
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/float/exp-trailing-us.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 21
+ |
+1 | exp-trailing-us = 1e_23_
+ | ^
+invalid floating-point number
diff --git a/vendor/toml_edit/tests/fixtures/invalid/float/float.stderr b/vendor/toml_edit/tests/fixtures/invalid/float/float.stderr
new file mode 100644
index 000000000..627650f81
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/float/float.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 17
+ |
+1 | leading-zero = 03.14
+ | ^
+expected newline, `#`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/float/inf-incomplete-1.stderr b/vendor/toml_edit/tests/fixtures/invalid/float/inf-incomplete-1.stderr
new file mode 100644
index 000000000..99fe59b32
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/float/inf-incomplete-1.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 20
+ |
+1 | inf-incomplete-1 = in
+ | ^
+invalid string
+expected `"`, `'`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/float/inf-incomplete-2.stderr b/vendor/toml_edit/tests/fixtures/invalid/float/inf-incomplete-2.stderr
new file mode 100644
index 000000000..38ef4cf4b
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/float/inf-incomplete-2.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 21
+ |
+1 | inf-incomplete-2 = +in
+ | ^
+invalid integer
diff --git a/vendor/toml_edit/tests/fixtures/invalid/float/inf-incomplete-3.stderr b/vendor/toml_edit/tests/fixtures/invalid/float/inf-incomplete-3.stderr
new file mode 100644
index 000000000..af66478ec
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/float/inf-incomplete-3.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 21
+ |
+1 | inf-incomplete-3 = -in
+ | ^
+invalid integer
diff --git a/vendor/toml_edit/tests/fixtures/invalid/float/inf_underscore.stderr b/vendor/toml_edit/tests/fixtures/invalid/float/inf_underscore.stderr
new file mode 100644
index 000000000..825484291
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/float/inf_underscore.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 18
+ |
+1 | inf_underscore = in_f
+ | ^
+invalid string
+expected `"`, `'`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/float/leading-point-neg.stderr b/vendor/toml_edit/tests/fixtures/invalid/float/leading-point-neg.stderr
new file mode 100644
index 000000000..c46efe103
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/float/leading-point-neg.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 22
+ |
+1 | leading-point-neg = -.12345
+ | ^
+invalid integer
diff --git a/vendor/toml_edit/tests/fixtures/invalid/float/leading-point-plus.stderr b/vendor/toml_edit/tests/fixtures/invalid/float/leading-point-plus.stderr
new file mode 100644
index 000000000..a643a7eef
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/float/leading-point-plus.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 23
+ |
+1 | leading-point-plus = +.12345
+ | ^
+invalid integer
diff --git a/vendor/toml_edit/tests/fixtures/invalid/float/leading-point.stderr b/vendor/toml_edit/tests/fixtures/invalid/float/leading-point.stderr
new file mode 100644
index 000000000..65e66b0cc
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/float/leading-point.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 17
+ |
+1 | leading-point = .12345
+ | ^
+invalid floating-point number
+expected leading digit
diff --git a/vendor/toml_edit/tests/fixtures/invalid/float/leading-us.stderr b/vendor/toml_edit/tests/fixtures/invalid/float/leading-us.stderr
new file mode 100644
index 000000000..e6d8e5235
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/float/leading-us.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 14
+ |
+1 | leading-us = _1.2
+ | ^
+invalid integer
+expected leading digit
diff --git a/vendor/toml_edit/tests/fixtures/invalid/float/leading-zero-neg.stderr b/vendor/toml_edit/tests/fixtures/invalid/float/leading-zero-neg.stderr
new file mode 100644
index 000000000..a60ec4da5
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/float/leading-zero-neg.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 22
+ |
+1 | leading-zero-neg = -03.14
+ | ^
+expected newline, `#`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/float/leading-zero-plus.stderr b/vendor/toml_edit/tests/fixtures/invalid/float/leading-zero-plus.stderr
new file mode 100644
index 000000000..f7c612b16
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/float/leading-zero-plus.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 23
+ |
+1 | leading-zero-plus = +03.14
+ | ^
+expected newline, `#`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/float/leading-zero.stderr b/vendor/toml_edit/tests/fixtures/invalid/float/leading-zero.stderr
new file mode 100644
index 000000000..627650f81
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/float/leading-zero.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 17
+ |
+1 | leading-zero = 03.14
+ | ^
+expected newline, `#`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/float/nan-incomplete-1.stderr b/vendor/toml_edit/tests/fixtures/invalid/float/nan-incomplete-1.stderr
new file mode 100644
index 000000000..36faeb0be
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/float/nan-incomplete-1.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 20
+ |
+1 | nan-incomplete-1 = na
+ | ^
+invalid string
+expected `"`, `'`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/float/nan-incomplete-2.stderr b/vendor/toml_edit/tests/fixtures/invalid/float/nan-incomplete-2.stderr
new file mode 100644
index 000000000..38e01516c
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/float/nan-incomplete-2.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 21
+ |
+1 | nan-incomplete-2 = +na
+ | ^
+invalid integer
diff --git a/vendor/toml_edit/tests/fixtures/invalid/float/nan-incomplete-3.stderr b/vendor/toml_edit/tests/fixtures/invalid/float/nan-incomplete-3.stderr
new file mode 100644
index 000000000..e03ff4b92
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/float/nan-incomplete-3.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 21
+ |
+1 | nan-incomplete-3 = -na
+ | ^
+invalid integer
diff --git a/vendor/toml_edit/tests/fixtures/invalid/float/nan_underscore.stderr b/vendor/toml_edit/tests/fixtures/invalid/float/nan_underscore.stderr
new file mode 100644
index 000000000..f6dead338
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/float/nan_underscore.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 18
+ |
+1 | nan_underscore = na_n
+ | ^
+invalid string
+expected `"`, `'`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/float/trailing-point-min.stderr b/vendor/toml_edit/tests/fixtures/invalid/float/trailing-point-min.stderr
new file mode 100644
index 000000000..41f4ad9ce
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/float/trailing-point-min.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 25
+ |
+1 | trailing-point-min = -1.
+ | ^
+invalid floating-point number
+expected digit
diff --git a/vendor/toml_edit/tests/fixtures/invalid/float/trailing-point-plus.stderr b/vendor/toml_edit/tests/fixtures/invalid/float/trailing-point-plus.stderr
new file mode 100644
index 000000000..9927935d0
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/float/trailing-point-plus.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 26
+ |
+1 | trailing-point-plus = +1.
+ | ^
+invalid floating-point number
+expected digit
diff --git a/vendor/toml_edit/tests/fixtures/invalid/float/trailing-point.stderr b/vendor/toml_edit/tests/fixtures/invalid/float/trailing-point.stderr
new file mode 100644
index 000000000..bd345d251
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/float/trailing-point.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 20
+ |
+1 | trailing-point = 1.
+ | ^
+invalid floating-point number
+expected digit
diff --git a/vendor/toml_edit/tests/fixtures/invalid/float/trailing-us-exp.stderr b/vendor/toml_edit/tests/fixtures/invalid/float/trailing-us-exp.stderr
new file mode 100644
index 000000000..811f951e3
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/float/trailing-us-exp.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 2, column 21
+ |
+2 | trailing-us-exp = 1_e2
+ | ^
+invalid integer
+expected digit
diff --git a/vendor/toml_edit/tests/fixtures/invalid/float/trailing-us.stderr b/vendor/toml_edit/tests/fixtures/invalid/float/trailing-us.stderr
new file mode 100644
index 000000000..aa4f28897
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/float/trailing-us.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 19
+ |
+1 | trailing-us = 1.2_
+ | ^
+invalid floating-point number
+expected digit, digit
diff --git a/vendor/toml_edit/tests/fixtures/invalid/float/us-after-point.stderr b/vendor/toml_edit/tests/fixtures/invalid/float/us-after-point.stderr
new file mode 100644
index 000000000..d93821dc5
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/float/us-after-point.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 20
+ |
+1 | us-after-point = 1._2
+ | ^
+invalid floating-point number
+expected digit
diff --git a/vendor/toml_edit/tests/fixtures/invalid/float/us-before-point.stderr b/vendor/toml_edit/tests/fixtures/invalid/float/us-before-point.stderr
new file mode 100644
index 000000000..109d8f71a
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/float/us-before-point.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 21
+ |
+1 | us-before-point = 1_.2
+ | ^
+invalid integer
+expected digit
diff --git a/vendor/toml_edit/tests/fixtures/invalid/inline-table/add.stderr b/vendor/toml_edit/tests/fixtures/invalid/inline-table/add.stderr
new file mode 100644
index 000000000..4108142dc
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/inline-table/add.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 3, column 1
+ |
+3 | [a.b]
+ | ^
+invalid table header
+dotted key `a` attempted to extend non-table type (inline table)
diff --git a/vendor/toml_edit/tests/fixtures/invalid/inline-table/double-comma.stderr b/vendor/toml_edit/tests/fixtures/invalid/inline-table/double-comma.stderr
new file mode 100644
index 000000000..ab4772b5a
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/inline-table/double-comma.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 9
+ |
+1 | t = {x=3,,y=4}
+ | ^
+invalid inline table
+expected `}`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/inline-table/duplicate-key.stderr b/vendor/toml_edit/tests/fixtures/invalid/inline-table/duplicate-key.stderr
new file mode 100644
index 000000000..acee967ac
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/inline-table/duplicate-key.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 2, column 4
+ |
+2 | a={b=1, b=2}
+ | ^
+duplicate key `b`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/inline-table/empty.stderr b/vendor/toml_edit/tests/fixtures/invalid/inline-table/empty.stderr
new file mode 100644
index 000000000..0fcfd34f6
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/inline-table/empty.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 6
+ |
+1 | t = {,}
+ | ^
+invalid inline table
+expected `}`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/inline-table/linebreak-1.stderr b/vendor/toml_edit/tests/fixtures/invalid/inline-table/linebreak-1.stderr
new file mode 100644
index 000000000..ed67c3ac7
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/inline-table/linebreak-1.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 3, column 18
+ |
+3 | simple = { a = 1
+ | ^
+invalid inline table
+expected `}`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/inline-table/linebreak-2.stderr b/vendor/toml_edit/tests/fixtures/invalid/inline-table/linebreak-2.stderr
new file mode 100644
index 000000000..a81575846
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/inline-table/linebreak-2.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 9
+ |
+1 | t = {a=1,
+ | ^
+invalid inline table
+expected `}`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/inline-table/linebreak-3.stderr b/vendor/toml_edit/tests/fixtures/invalid/inline-table/linebreak-3.stderr
new file mode 100644
index 000000000..4aff61b76
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/inline-table/linebreak-3.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 9
+ |
+1 | t = {a=1
+ | ^
+invalid inline table
+expected `}`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/inline-table/linebreak-4.stderr b/vendor/toml_edit/tests/fixtures/invalid/inline-table/linebreak-4.stderr
new file mode 100644
index 000000000..658456b86
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/inline-table/linebreak-4.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 14
+ |
+1 | json_like = {
+ | ^
+invalid inline table
+expected `}`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/inline-table/no-comma.stderr b/vendor/toml_edit/tests/fixtures/invalid/inline-table/no-comma.stderr
new file mode 100644
index 000000000..89552182f
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/inline-table/no-comma.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 12
+ |
+1 | t = {x = 3 y = 4}
+ | ^
+invalid inline table
+expected `}`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/inline-table/overwrite.stderr b/vendor/toml_edit/tests/fixtures/invalid/inline-table/overwrite.stderr
new file mode 100644
index 000000000..5c48ee223
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/inline-table/overwrite.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 3, column 1
+ |
+3 | a={}
+ | ^
+duplicate key `a` in document root
diff --git a/vendor/toml_edit/tests/fixtures/invalid/inline-table/trailing-comma.stderr b/vendor/toml_edit/tests/fixtures/invalid/inline-table/trailing-comma.stderr
new file mode 100644
index 000000000..b17fca503
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/inline-table/trailing-comma.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 3, column 18
+ |
+3 | abc = { abc = 123, }
+ | ^
+invalid inline table
+expected `}`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/integer/capital-bin.stderr b/vendor/toml_edit/tests/fixtures/invalid/integer/capital-bin.stderr
new file mode 100644
index 000000000..333ba92f8
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/integer/capital-bin.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 16
+ |
+1 | capital-bin = 0B0
+ | ^
+expected newline, `#`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/integer/capital-hex.stderr b/vendor/toml_edit/tests/fixtures/invalid/integer/capital-hex.stderr
new file mode 100644
index 000000000..ac064f9c4
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/integer/capital-hex.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 16
+ |
+1 | capital-hex = 0X1
+ | ^
+expected newline, `#`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/integer/capital-oct.stderr b/vendor/toml_edit/tests/fixtures/invalid/integer/capital-oct.stderr
new file mode 100644
index 000000000..774a8f2d6
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/integer/capital-oct.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 16
+ |
+1 | capital-oct = 0O0
+ | ^
+expected newline, `#`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/integer/double-sign-nex.stderr b/vendor/toml_edit/tests/fixtures/invalid/integer/double-sign-nex.stderr
new file mode 100644
index 000000000..542ba06bc
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/integer/double-sign-nex.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 20
+ |
+1 | double-sign-nex = --99
+ | ^
+invalid integer
diff --git a/vendor/toml_edit/tests/fixtures/invalid/integer/double-sign-plus.stderr b/vendor/toml_edit/tests/fixtures/invalid/integer/double-sign-plus.stderr
new file mode 100644
index 000000000..8f8bad0fd
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/integer/double-sign-plus.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 21
+ |
+1 | double-sign-plus = ++99
+ | ^
+invalid integer
diff --git a/vendor/toml_edit/tests/fixtures/invalid/integer/double-us.stderr b/vendor/toml_edit/tests/fixtures/invalid/integer/double-us.stderr
new file mode 100644
index 000000000..e229868b0
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/integer/double-us.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 15
+ |
+1 | double-us = 1__23
+ | ^
+invalid integer
+expected digit
diff --git a/vendor/toml_edit/tests/fixtures/invalid/integer/incomplete-bin.stderr b/vendor/toml_edit/tests/fixtures/invalid/integer/incomplete-bin.stderr
new file mode 100644
index 000000000..13d7b46ff
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/integer/incomplete-bin.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 20
+ |
+1 | incomplete-bin = 0b
+ | ^
+invalid binary integer
diff --git a/vendor/toml_edit/tests/fixtures/invalid/integer/incomplete-hex.stderr b/vendor/toml_edit/tests/fixtures/invalid/integer/incomplete-hex.stderr
new file mode 100644
index 000000000..ea5073a56
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/integer/incomplete-hex.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 20
+ |
+1 | incomplete-hex = 0x
+ | ^
+invalid hexadecimal integer
diff --git a/vendor/toml_edit/tests/fixtures/invalid/integer/incomplete-oct.stderr b/vendor/toml_edit/tests/fixtures/invalid/integer/incomplete-oct.stderr
new file mode 100644
index 000000000..46d51c189
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/integer/incomplete-oct.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 20
+ |
+1 | incomplete-oct = 0o
+ | ^
+invalid octal integer
diff --git a/vendor/toml_edit/tests/fixtures/invalid/integer/integer.stderr b/vendor/toml_edit/tests/fixtures/invalid/integer/integer.stderr
new file mode 100644
index 000000000..f058a2d9e
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/integer/integer.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 19
+ |
+1 | leading-zero-1 = 01
+ | ^
+expected newline, `#`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/integer/invalid-bin.stderr b/vendor/toml_edit/tests/fixtures/invalid/integer/invalid-bin.stderr
new file mode 100644
index 000000000..62c00fb28
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/integer/invalid-bin.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 20
+ |
+1 | invalid-bin = 0b0012
+ | ^
+expected newline, `#`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/integer/invalid-hex.stderr b/vendor/toml_edit/tests/fixtures/invalid/integer/invalid-hex.stderr
new file mode 100644
index 000000000..29b112b25
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/integer/invalid-hex.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 20
+ |
+1 | invalid-hex = 0xaafz
+ | ^
+expected newline, `#`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/integer/invalid-oct.stderr b/vendor/toml_edit/tests/fixtures/invalid/integer/invalid-oct.stderr
new file mode 100644
index 000000000..f3e1ada9b
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/integer/invalid-oct.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 19
+ |
+1 | invalid-oct = 0o778
+ | ^
+expected newline, `#`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/integer/leading-us-bin.stderr b/vendor/toml_edit/tests/fixtures/invalid/integer/leading-us-bin.stderr
new file mode 100644
index 000000000..c893e7547
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/integer/leading-us-bin.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 18
+ |
+1 | leading-us-bin = _0o1
+ | ^
+invalid integer
+expected leading digit
diff --git a/vendor/toml_edit/tests/fixtures/invalid/integer/leading-us-hex.stderr b/vendor/toml_edit/tests/fixtures/invalid/integer/leading-us-hex.stderr
new file mode 100644
index 000000000..12eb8e6f5
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/integer/leading-us-hex.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 18
+ |
+1 | leading-us-hex = _0o1
+ | ^
+invalid integer
+expected leading digit
diff --git a/vendor/toml_edit/tests/fixtures/invalid/integer/leading-us-oct.stderr b/vendor/toml_edit/tests/fixtures/invalid/integer/leading-us-oct.stderr
new file mode 100644
index 000000000..c670551a3
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/integer/leading-us-oct.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 18
+ |
+1 | leading-us-oct = _0o1
+ | ^
+invalid integer
+expected leading digit
diff --git a/vendor/toml_edit/tests/fixtures/invalid/integer/leading-us.stderr b/vendor/toml_edit/tests/fixtures/invalid/integer/leading-us.stderr
new file mode 100644
index 000000000..f53275c0b
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/integer/leading-us.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 14
+ |
+1 | leading-us = _123
+ | ^
+invalid integer
+expected leading digit
diff --git a/vendor/toml_edit/tests/fixtures/invalid/integer/leading-zero-1.stderr b/vendor/toml_edit/tests/fixtures/invalid/integer/leading-zero-1.stderr
new file mode 100644
index 000000000..f058a2d9e
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/integer/leading-zero-1.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 19
+ |
+1 | leading-zero-1 = 01
+ | ^
+expected newline, `#`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/integer/leading-zero-2.stderr b/vendor/toml_edit/tests/fixtures/invalid/integer/leading-zero-2.stderr
new file mode 100644
index 000000000..082381464
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/integer/leading-zero-2.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 19
+ |
+1 | leading-zero-2 = 00
+ | ^
+expected newline, `#`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/integer/leading-zero-3.stderr b/vendor/toml_edit/tests/fixtures/invalid/integer/leading-zero-3.stderr
new file mode 100644
index 000000000..7b0e481d0
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/integer/leading-zero-3.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 19
+ |
+1 | leading-zero-3 = 0_0
+ | ^
+expected newline, `#`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/integer/leading-zero-sign-1.stderr b/vendor/toml_edit/tests/fixtures/invalid/integer/leading-zero-sign-1.stderr
new file mode 100644
index 000000000..384c9d402
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/integer/leading-zero-sign-1.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 25
+ |
+1 | leading-zero-sign-1 = -01
+ | ^
+expected newline, `#`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/integer/leading-zero-sign-2.stderr b/vendor/toml_edit/tests/fixtures/invalid/integer/leading-zero-sign-2.stderr
new file mode 100644
index 000000000..795c3297f
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/integer/leading-zero-sign-2.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 25
+ |
+1 | leading-zero-sign-2 = +01
+ | ^
+expected newline, `#`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/integer/leading-zero-sign-3.stderr b/vendor/toml_edit/tests/fixtures/invalid/integer/leading-zero-sign-3.stderr
new file mode 100644
index 000000000..639aef5f1
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/integer/leading-zero-sign-3.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 25
+ |
+1 | leading-zero-sign-3 = +0_1
+ | ^
+expected newline, `#`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/integer/negative-bin.stderr b/vendor/toml_edit/tests/fixtures/invalid/integer/negative-bin.stderr
new file mode 100644
index 000000000..7122d38f8
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/integer/negative-bin.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 18
+ |
+1 | negative-bin = -0b11010110
+ | ^
+expected newline, `#`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/integer/negative-hex.stderr b/vendor/toml_edit/tests/fixtures/invalid/integer/negative-hex.stderr
new file mode 100644
index 000000000..0c7e58421
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/integer/negative-hex.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 18
+ |
+1 | negative-hex = -0xff
+ | ^
+expected newline, `#`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/integer/negative-oct.stderr b/vendor/toml_edit/tests/fixtures/invalid/integer/negative-oct.stderr
new file mode 100644
index 000000000..fcf31407d
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/integer/negative-oct.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 18
+ |
+1 | negative-oct = -0o99
+ | ^
+expected newline, `#`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/integer/positive-bin.stderr b/vendor/toml_edit/tests/fixtures/invalid/integer/positive-bin.stderr
new file mode 100644
index 000000000..bc5dc4ed3
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/integer/positive-bin.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 18
+ |
+1 | positive-bin = +0b11010110
+ | ^
+expected newline, `#`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/integer/positive-hex.stderr b/vendor/toml_edit/tests/fixtures/invalid/integer/positive-hex.stderr
new file mode 100644
index 000000000..f57111431
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/integer/positive-hex.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 18
+ |
+1 | positive-hex = +0xff
+ | ^
+expected newline, `#`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/integer/positive-oct.stderr b/vendor/toml_edit/tests/fixtures/invalid/integer/positive-oct.stderr
new file mode 100644
index 000000000..cc0946689
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/integer/positive-oct.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 18
+ |
+1 | positive-oct = +0o99
+ | ^
+expected newline, `#`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/integer/text-after-integer.stderr b/vendor/toml_edit/tests/fixtures/invalid/integer/text-after-integer.stderr
new file mode 100644
index 000000000..0405cb410
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/integer/text-after-integer.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 13
+ |
+1 | answer = 42 the ultimate answer?
+ | ^
+expected newline, `#`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/integer/trailing-us-bin.stderr b/vendor/toml_edit/tests/fixtures/invalid/integer/trailing-us-bin.stderr
new file mode 100644
index 000000000..7042a6e39
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/integer/trailing-us-bin.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 23
+ |
+1 | trailing-us-bin = 0b1_
+ | ^
+invalid binary integer
+expected digit
diff --git a/vendor/toml_edit/tests/fixtures/invalid/integer/trailing-us-hex.stderr b/vendor/toml_edit/tests/fixtures/invalid/integer/trailing-us-hex.stderr
new file mode 100644
index 000000000..9526a9489
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/integer/trailing-us-hex.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 23
+ |
+1 | trailing-us-hex = 0x1_
+ | ^
+invalid hexadecimal integer
+expected digit
diff --git a/vendor/toml_edit/tests/fixtures/invalid/integer/trailing-us-oct.stderr b/vendor/toml_edit/tests/fixtures/invalid/integer/trailing-us-oct.stderr
new file mode 100644
index 000000000..bb4330d0e
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/integer/trailing-us-oct.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 23
+ |
+1 | trailing-us-oct = 0o1_
+ | ^
+invalid octal integer
+expected digit
diff --git a/vendor/toml_edit/tests/fixtures/invalid/integer/trailing-us.stderr b/vendor/toml_edit/tests/fixtures/invalid/integer/trailing-us.stderr
new file mode 100644
index 000000000..f8c901ef4
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/integer/trailing-us.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 19
+ |
+1 | trailing-us = 123_
+ | ^
+invalid integer
+expected digit
diff --git a/vendor/toml_edit/tests/fixtures/invalid/integer/us-after-bin.stderr b/vendor/toml_edit/tests/fixtures/invalid/integer/us-after-bin.stderr
new file mode 100644
index 000000000..1620bc6bc
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/integer/us-after-bin.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 18
+ |
+1 | us-after-bin = 0b_1
+ | ^
+invalid binary integer
diff --git a/vendor/toml_edit/tests/fixtures/invalid/integer/us-after-hex.stderr b/vendor/toml_edit/tests/fixtures/invalid/integer/us-after-hex.stderr
new file mode 100644
index 000000000..e8283a070
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/integer/us-after-hex.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 18
+ |
+1 | us-after-hex = 0x_1
+ | ^
+invalid hexadecimal integer
diff --git a/vendor/toml_edit/tests/fixtures/invalid/integer/us-after-oct.stderr b/vendor/toml_edit/tests/fixtures/invalid/integer/us-after-oct.stderr
new file mode 100644
index 000000000..e6884d0c6
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/integer/us-after-oct.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 18
+ |
+1 | us-after-oct = 0o_1
+ | ^
+invalid octal integer
diff --git a/vendor/toml_edit/tests/fixtures/invalid/key/after-array.stderr b/vendor/toml_edit/tests/fixtures/invalid/key/after-array.stderr
new file mode 100644
index 000000000..861f82d13
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/key/after-array.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 14
+ |
+1 | [[agencies]] owner = "S Cjelli"
+ | ^
+invalid table header
+expected newline, `#`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/key/after-table.stderr b/vendor/toml_edit/tests/fixtures/invalid/key/after-table.stderr
new file mode 100644
index 000000000..499a43012
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/key/after-table.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 9
+ |
+1 | [error] this = "should not be here"
+ | ^
+invalid table header
+expected newline, `#`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/key/after-value.stderr b/vendor/toml_edit/tests/fixtures/invalid/key/after-value.stderr
new file mode 100644
index 000000000..9852ec8d0
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/key/after-value.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 15
+ |
+1 | first = "Tom" last = "Preston-Werner" # INVALID
+ | ^
+expected newline, `#`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/key/bare-invalid-character.stderr b/vendor/toml_edit/tests/fixtures/invalid/key/bare-invalid-character.stderr
new file mode 100644
index 000000000..0ba21fd81
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/key/bare-invalid-character.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 5
+ |
+1 | bare!key = 123
+ | ^
+expected `.`, `=`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/key/dotted-redefine-table.stderr b/vendor/toml_edit/tests/fixtures/invalid/key/dotted-redefine-table.stderr
new file mode 100644
index 000000000..3a2b8d5d9
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/key/dotted-redefine-table.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 4, column 1
+ |
+4 | a.b.c = 2
+ | ^
+dotted key `a.b` attempted to extend non-table type (integer)
diff --git a/vendor/toml_edit/tests/fixtures/invalid/key/duplicate-keys.stderr b/vendor/toml_edit/tests/fixtures/invalid/key/duplicate-keys.stderr
new file mode 100644
index 000000000..74149f851
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/key/duplicate-keys.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 2, column 1
+ |
+2 | dupe = true
+ | ^
+duplicate key `dupe` in document root
diff --git a/vendor/toml_edit/tests/fixtures/invalid/key/duplicate.stderr b/vendor/toml_edit/tests/fixtures/invalid/key/duplicate.stderr
new file mode 100644
index 000000000..8c7d7b7ea
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/key/duplicate.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 3, column 1
+ |
+3 | name = "Pradyun"
+ | ^
+duplicate key `name` in document root
diff --git a/vendor/toml_edit/tests/fixtures/invalid/key/empty.stderr b/vendor/toml_edit/tests/fixtures/invalid/key/empty.stderr
new file mode 100644
index 000000000..b859159f8
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/key/empty.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 2
+ |
+1 | = 1
+ | ^
+invalid key
diff --git a/vendor/toml_edit/tests/fixtures/invalid/key/escape.stderr b/vendor/toml_edit/tests/fixtures/invalid/key/escape.stderr
new file mode 100644
index 000000000..2a4ee3f72
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/key/escape.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 1
+ |
+1 | \u00c0 = "latin capital letter A with grave"
+ | ^
+invalid key
diff --git a/vendor/toml_edit/tests/fixtures/invalid/key/hash.stderr b/vendor/toml_edit/tests/fixtures/invalid/key/hash.stderr
new file mode 100644
index 000000000..15d8048ba
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/key/hash.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 2
+ |
+1 | a# = 1
+ | ^
+expected `.`, `=`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/key/multiline.stderr b/vendor/toml_edit/tests/fixtures/invalid/key/multiline.stderr
new file mode 100644
index 000000000..b4241ee9f
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/key/multiline.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 3
+ |
+1 | """long
+ | ^
+expected `.`, `=`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/key/newline.stderr b/vendor/toml_edit/tests/fixtures/invalid/key/newline.stderr
new file mode 100644
index 000000000..141932e42
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/key/newline.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 8
+ |
+1 | barekey
+ | ^
+expected `.`, `=`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/key/no-eol.stderr b/vendor/toml_edit/tests/fixtures/invalid/key/no-eol.stderr
new file mode 100644
index 000000000..fc3c01ebf
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/key/no-eol.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 7
+ |
+1 | a = 1 b = 2
+ | ^
+expected newline, `#`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/key/open-bracket.stderr b/vendor/toml_edit/tests/fixtures/invalid/key/open-bracket.stderr
new file mode 100644
index 000000000..eee8cba03
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/key/open-bracket.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 6
+ |
+1 | [abc = 1
+ | ^
+invalid table header
+expected `.`, `]`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/key/partial-quoted.stderr b/vendor/toml_edit/tests/fixtures/invalid/key/partial-quoted.stderr
new file mode 100644
index 000000000..e0a7c32ba
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/key/partial-quoted.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 8
+ |
+1 | partial"quoted" = 5
+ | ^
+expected `.`, `=`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/key/quoted-unclosed-1.stderr b/vendor/toml_edit/tests/fixtures/invalid/key/quoted-unclosed-1.stderr
new file mode 100644
index 000000000..6f15232e8
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/key/quoted-unclosed-1.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 9
+ |
+1 | "key = x
+ | ^
+invalid basic string
diff --git a/vendor/toml_edit/tests/fixtures/invalid/key/quoted-unclosed-2.stderr b/vendor/toml_edit/tests/fixtures/invalid/key/quoted-unclosed-2.stderr
new file mode 100644
index 000000000..f3fdc7f02
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/key/quoted-unclosed-2.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 5
+ |
+1 | "key
+ | ^
+invalid basic string
diff --git a/vendor/toml_edit/tests/fixtures/invalid/key/single-open-bracket.stderr b/vendor/toml_edit/tests/fixtures/invalid/key/single-open-bracket.stderr
new file mode 100644
index 000000000..022f1fabc
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/key/single-open-bracket.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 2
+ |
+1 | [
+ | ^
+invalid key
diff --git a/vendor/toml_edit/tests/fixtures/invalid/key/space.stderr b/vendor/toml_edit/tests/fixtures/invalid/key/space.stderr
new file mode 100644
index 000000000..cd3258b55
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/key/space.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 3
+ |
+1 | a b = 1
+ | ^
+expected `.`, `=`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/key/special-character.stderr b/vendor/toml_edit/tests/fixtures/invalid/key/special-character.stderr
new file mode 100644
index 000000000..7ada2f21b
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/key/special-character.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 1
+ |
+1 | μ = "greek small letter mu"
+ | ^
+invalid key
diff --git a/vendor/toml_edit/tests/fixtures/invalid/key/start-bracket.stderr b/vendor/toml_edit/tests/fixtures/invalid/key/start-bracket.stderr
new file mode 100644
index 000000000..43f937b25
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/key/start-bracket.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 2, column 6
+ |
+2 | [xyz = 5
+ | ^
+invalid table header
+expected `.`, `]`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/key/start-dot.stderr b/vendor/toml_edit/tests/fixtures/invalid/key/start-dot.stderr
new file mode 100644
index 000000000..c71f0cf53
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/key/start-dot.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 1
+ |
+1 | .key = 1
+ | ^
+invalid key
diff --git a/vendor/toml_edit/tests/fixtures/invalid/key/two-equals.stderr b/vendor/toml_edit/tests/fixtures/invalid/key/two-equals.stderr
new file mode 100644
index 000000000..2f92886e1
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/key/two-equals.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 6
+ |
+1 | key= = 1
+ | ^
+invalid string
+expected `"`, `'`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/key/two-equals2.stderr b/vendor/toml_edit/tests/fixtures/invalid/key/two-equals2.stderr
new file mode 100644
index 000000000..f2adb1f33
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/key/two-equals2.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 3
+ |
+1 | a==1
+ | ^
+invalid string
+expected `"`, `'`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/key/two-equals3.stderr b/vendor/toml_edit/tests/fixtures/invalid/key/two-equals3.stderr
new file mode 100644
index 000000000..dbee16973
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/key/two-equals3.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 3
+ |
+1 | a=b=1
+ | ^
+invalid string
+expected `"`, `'`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/key/without-value-1.stderr b/vendor/toml_edit/tests/fixtures/invalid/key/without-value-1.stderr
new file mode 100644
index 000000000..2ddb1240a
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/key/without-value-1.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 4
+ |
+1 | key
+ | ^
+expected `.`, `=`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/key/without-value-2.stderr b/vendor/toml_edit/tests/fixtures/invalid/key/without-value-2.stderr
new file mode 100644
index 000000000..a3f280f72
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/key/without-value-2.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 7
+ |
+1 | key =
+ | ^
+invalid string
+expected `"`, `'`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/key/without-value-3.stderr b/vendor/toml_edit/tests/fixtures/invalid/key/without-value-3.stderr
new file mode 100644
index 000000000..a6ca6ffd6
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/key/without-value-3.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 6
+ |
+1 | "key"
+ | ^
+expected `.`, `=`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/key/without-value-4.stderr b/vendor/toml_edit/tests/fixtures/invalid/key/without-value-4.stderr
new file mode 100644
index 000000000..c14af0c30
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/key/without-value-4.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 9
+ |
+1 | "key" =
+ | ^
+invalid string
+expected `"`, `'`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/spec/inline-table-2-0.stderr b/vendor/toml_edit/tests/fixtures/invalid/spec/inline-table-2-0.stderr
new file mode 100644
index 000000000..7fed2698e
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/spec/inline-table-2-0.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 3, column 1
+ |
+3 | type.edible = false # INVALID
+ | ^
+dotted key `type` attempted to extend non-table type (inline table)
diff --git a/vendor/toml_edit/tests/fixtures/invalid/spec/inline-table-3-0.stderr b/vendor/toml_edit/tests/fixtures/invalid/spec/inline-table-3-0.stderr
new file mode 100644
index 000000000..45ba696b9
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/spec/inline-table-3-0.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 3, column 1
+ |
+3 | type = { edible = false } # INVALID
+ | ^
+duplicate key `type` in table `product`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/spec/key-value-pair-1.stderr b/vendor/toml_edit/tests/fixtures/invalid/spec/key-value-pair-1.stderr
new file mode 100644
index 000000000..ba765a823
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/spec/key-value-pair-1.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 7
+ |
+1 | key = # INVALID
+ | ^
+invalid string
+expected `"`, `'`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/spec/keys-2.stderr b/vendor/toml_edit/tests/fixtures/invalid/spec/keys-2.stderr
new file mode 100644
index 000000000..bdbcce45b
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/spec/keys-2.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 1
+ |
+1 | = "no key name" # INVALID
+ | ^
+invalid key
diff --git a/vendor/toml_edit/tests/fixtures/invalid/spec/string-4-0.stderr b/vendor/toml_edit/tests/fixtures/invalid/spec/string-4-0.stderr
new file mode 100644
index 000000000..e82601dd7
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/spec/string-4-0.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 2, column 46
+ |
+2 | str5 = """Here are three quotation marks: """.""" # INVALID
+ | ^
+expected newline, `#`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/spec/string-7-0.stderr b/vendor/toml_edit/tests/fixtures/invalid/spec/string-7-0.stderr
new file mode 100644
index 000000000..7a928e190
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/spec/string-7-0.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 3, column 48
+ |
+3 | apos15 = '''Here are fifteen apostrophes: '''''''''''''''''' # INVALID
+ | ^
+expected newline, `#`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/spec/table-9-0.stderr b/vendor/toml_edit/tests/fixtures/invalid/spec/table-9-0.stderr
new file mode 100644
index 000000000..a2e1d4991
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/spec/table-9-0.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 5, column 1
+ |
+5 | [fruit.apple] # INVALID
+ | ^
+invalid table header
+duplicate key `apple` in table `fruit`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/spec/table-9-1.stderr b/vendor/toml_edit/tests/fixtures/invalid/spec/table-9-1.stderr
new file mode 100644
index 000000000..78dea2144
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/spec/table-9-1.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 6, column 1
+ |
+6 | [fruit.apple.taste] # INVALID
+ | ^
+invalid table header
+duplicate key `taste` in table `fruit.apple`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/string/bad-byte-escape.stderr b/vendor/toml_edit/tests/fixtures/invalid/string/bad-byte-escape.stderr
new file mode 100644
index 000000000..6d88863e2
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/string/bad-byte-escape.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 14
+ |
+1 | naughty = "\xAg"
+ | ^
+invalid escape sequence
+expected `b`, `f`, `n`, `r`, `t`, `u`, `U`, `\`, `"`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/string/bad-codepoint.stderr b/vendor/toml_edit/tests/fixtures/invalid/string/bad-codepoint.stderr
new file mode 100644
index 000000000..4061c79cc
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/string/bad-codepoint.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 76
+ |
+1 | invalid-codepoint = "This string contains a non scalar unicode codepoint \uD801"
+ | ^
+invalid unicode 4-digit hex code
+value is out of range
diff --git a/vendor/toml_edit/tests/fixtures/invalid/string/bad-concat.stderr b/vendor/toml_edit/tests/fixtures/invalid/string/bad-concat.stderr
new file mode 100644
index 000000000..a7346a40e
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/string/bad-concat.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 21
+ |
+1 | no_concat = "first" "second"
+ | ^
+expected newline, `#`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/string/bad-escape-1.stderr b/vendor/toml_edit/tests/fixtures/invalid/string/bad-escape-1.stderr
new file mode 100644
index 000000000..02cb48310
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/string/bad-escape-1.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 43
+ |
+1 | invalid-escape = "This string has a bad \a escape character."
+ | ^
+invalid escape sequence
+expected `b`, `f`, `n`, `r`, `t`, `u`, `U`, `\`, `"`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/string/bad-escape-2.stderr b/vendor/toml_edit/tests/fixtures/invalid/string/bad-escape-2.stderr
new file mode 100644
index 000000000..57f0acef5
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/string/bad-escape-2.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 43
+ |
+1 | invalid-escape = "This string has a bad \ escape character."
+ | ^
+invalid escape sequence
+expected `b`, `f`, `n`, `r`, `t`, `u`, `U`, `\`, `"`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/string/bad-hex-esc-1.stderr b/vendor/toml_edit/tests/fixtures/invalid/string/bad-hex-esc-1.stderr
new file mode 100644
index 000000000..5d5577fa5
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/string/bad-hex-esc-1.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 20
+ |
+1 | bad-hex-esc-1 = "\x0g"
+ | ^
+invalid escape sequence
+expected `b`, `f`, `n`, `r`, `t`, `u`, `U`, `\`, `"`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/string/bad-hex-esc-2.stderr b/vendor/toml_edit/tests/fixtures/invalid/string/bad-hex-esc-2.stderr
new file mode 100644
index 000000000..5a40ad444
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/string/bad-hex-esc-2.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 20
+ |
+1 | bad-hex-esc-2 = "\xG0"
+ | ^
+invalid escape sequence
+expected `b`, `f`, `n`, `r`, `t`, `u`, `U`, `\`, `"`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/string/bad-hex-esc-3.stderr b/vendor/toml_edit/tests/fixtures/invalid/string/bad-hex-esc-3.stderr
new file mode 100644
index 000000000..70e1183fd
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/string/bad-hex-esc-3.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 20
+ |
+1 | bad-hex-esc-3 = "\x"
+ | ^
+invalid escape sequence
+expected `b`, `f`, `n`, `r`, `t`, `u`, `U`, `\`, `"`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/string/bad-hex-esc-4.stderr b/vendor/toml_edit/tests/fixtures/invalid/string/bad-hex-esc-4.stderr
new file mode 100644
index 000000000..df028ee8b
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/string/bad-hex-esc-4.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 20
+ |
+1 | bad-hex-esc-4 = "\x 50"
+ | ^
+invalid escape sequence
+expected `b`, `f`, `n`, `r`, `t`, `u`, `U`, `\`, `"`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/string/bad-hex-esc-5.stderr b/vendor/toml_edit/tests/fixtures/invalid/string/bad-hex-esc-5.stderr
new file mode 100644
index 000000000..4b5cd33d3
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/string/bad-hex-esc-5.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 20
+ |
+1 | bad-hex-esc-5 = "\x 50"
+ | ^
+invalid escape sequence
+expected `b`, `f`, `n`, `r`, `t`, `u`, `U`, `\`, `"`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/string/bad-hex-esc.stderr b/vendor/toml_edit/tests/fixtures/invalid/string/bad-hex-esc.stderr
new file mode 100644
index 000000000..5d5577fa5
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/string/bad-hex-esc.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 20
+ |
+1 | bad-hex-esc-1 = "\x0g"
+ | ^
+invalid escape sequence
+expected `b`, `f`, `n`, `r`, `t`, `u`, `U`, `\`, `"`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/string/bad-multiline.stderr b/vendor/toml_edit/tests/fixtures/invalid/string/bad-multiline.stderr
new file mode 100644
index 000000000..f88e0dd04
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/string/bad-multiline.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 20
+ |
+1 | multi = "first line
+ | ^
+invalid basic string
diff --git a/vendor/toml_edit/tests/fixtures/invalid/string/bad-slash-escape.stderr b/vendor/toml_edit/tests/fixtures/invalid/string/bad-slash-escape.stderr
new file mode 100644
index 000000000..19bd111b2
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/string/bad-slash-escape.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 43
+ |
+1 | invalid-escape = "This string has a bad \/ escape character."
+ | ^
+invalid escape sequence
+expected `b`, `f`, `n`, `r`, `t`, `u`, `U`, `\`, `"`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/string/bad-uni-esc-1.stderr b/vendor/toml_edit/tests/fixtures/invalid/string/bad-uni-esc-1.stderr
new file mode 100644
index 000000000..a9e439bff
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/string/bad-uni-esc-1.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 13
+ |
+1 | str = "val\ue"
+ | ^
+invalid unicode 4-digit hex code
diff --git a/vendor/toml_edit/tests/fixtures/invalid/string/bad-uni-esc-2.stderr b/vendor/toml_edit/tests/fixtures/invalid/string/bad-uni-esc-2.stderr
new file mode 100644
index 000000000..87c8681b9
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/string/bad-uni-esc-2.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 13
+ |
+1 | str = "val\Ux"
+ | ^
+invalid unicode 8-digit hex code
diff --git a/vendor/toml_edit/tests/fixtures/invalid/string/bad-uni-esc-3.stderr b/vendor/toml_edit/tests/fixtures/invalid/string/bad-uni-esc-3.stderr
new file mode 100644
index 000000000..61f8dede0
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/string/bad-uni-esc-3.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 13
+ |
+1 | str = "val\U0000000"
+ | ^
+invalid unicode 8-digit hex code
diff --git a/vendor/toml_edit/tests/fixtures/invalid/string/bad-uni-esc-4.stderr b/vendor/toml_edit/tests/fixtures/invalid/string/bad-uni-esc-4.stderr
new file mode 100644
index 000000000..1a781d999
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/string/bad-uni-esc-4.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 13
+ |
+1 | str = "val\U0000"
+ | ^
+invalid unicode 8-digit hex code
diff --git a/vendor/toml_edit/tests/fixtures/invalid/string/bad-uni-esc-5.stderr b/vendor/toml_edit/tests/fixtures/invalid/string/bad-uni-esc-5.stderr
new file mode 100644
index 000000000..88773ca85
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/string/bad-uni-esc-5.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 13
+ |
+1 | str = "val\Ugggggggg"
+ | ^
+invalid unicode 8-digit hex code
diff --git a/vendor/toml_edit/tests/fixtures/invalid/string/basic-byte-escapes.stderr b/vendor/toml_edit/tests/fixtures/invalid/string/basic-byte-escapes.stderr
new file mode 100644
index 000000000..64f8d8654
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/string/basic-byte-escapes.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 13
+ |
+1 | answer = "\x33"
+ | ^
+invalid escape sequence
+expected `b`, `f`, `n`, `r`, `t`, `u`, `U`, `\`, `"`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/string/basic-multiline-out-of-range-unicode-escape-1.stderr b/vendor/toml_edit/tests/fixtures/invalid/string/basic-multiline-out-of-range-unicode-escape-1.stderr
new file mode 100644
index 000000000..c4be6a6c8
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/string/basic-multiline-out-of-range-unicode-escape-1.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 10
+ |
+1 | a = """\UFFFFFFFF"""
+ | ^
+invalid unicode 8-digit hex code
+value is out of range
diff --git a/vendor/toml_edit/tests/fixtures/invalid/string/basic-multiline-out-of-range-unicode-escape-2.stderr b/vendor/toml_edit/tests/fixtures/invalid/string/basic-multiline-out-of-range-unicode-escape-2.stderr
new file mode 100644
index 000000000..f034203f8
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/string/basic-multiline-out-of-range-unicode-escape-2.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 10
+ |
+1 | a = """\U00D80000"""
+ | ^
+invalid unicode 8-digit hex code
+value is out of range
diff --git a/vendor/toml_edit/tests/fixtures/invalid/string/basic-multiline-quotes.stderr b/vendor/toml_edit/tests/fixtures/invalid/string/basic-multiline-quotes.stderr
new file mode 100644
index 000000000..7a1600898
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/string/basic-multiline-quotes.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 46
+ |
+1 | str5 = """Here are three quotation marks: """."""
+ | ^
+expected newline, `#`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/string/basic-multiline-unknown-escape.stderr b/vendor/toml_edit/tests/fixtures/invalid/string/basic-multiline-unknown-escape.stderr
new file mode 100644
index 000000000..d2462bf13
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/string/basic-multiline-unknown-escape.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 10
+ |
+1 | a = """\@"""
+ | ^
+invalid escape sequence
+expected `b`, `f`, `n`, `r`, `t`, `u`, `U`, `\`, `"`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/string/basic-out-of-range-unicode-escape-1.stderr b/vendor/toml_edit/tests/fixtures/invalid/string/basic-out-of-range-unicode-escape-1.stderr
new file mode 100644
index 000000000..806e6e786
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/string/basic-out-of-range-unicode-escape-1.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 8
+ |
+1 | a = "\UFFFFFFFF"
+ | ^
+invalid unicode 8-digit hex code
+value is out of range
diff --git a/vendor/toml_edit/tests/fixtures/invalid/string/basic-out-of-range-unicode-escape-2.stderr b/vendor/toml_edit/tests/fixtures/invalid/string/basic-out-of-range-unicode-escape-2.stderr
new file mode 100644
index 000000000..69396c669
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/string/basic-out-of-range-unicode-escape-2.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 8
+ |
+1 | a = "\U00D80000"
+ | ^
+invalid unicode 8-digit hex code
+value is out of range
diff --git a/vendor/toml_edit/tests/fixtures/invalid/string/basic-unknown-escape.stderr b/vendor/toml_edit/tests/fixtures/invalid/string/basic-unknown-escape.stderr
new file mode 100644
index 000000000..a7fbb254e
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/string/basic-unknown-escape.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 8
+ |
+1 | a = "\@"
+ | ^
+invalid escape sequence
+expected `b`, `f`, `n`, `r`, `t`, `u`, `U`, `\`, `"`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/string/literal-multiline-quotes-1.stderr b/vendor/toml_edit/tests/fixtures/invalid/string/literal-multiline-quotes-1.stderr
new file mode 100644
index 000000000..ed65b3342
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/string/literal-multiline-quotes-1.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 28
+ |
+1 | a = '''6 apostrophes: ''''''
+ | ^
+expected newline, `#`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/string/literal-multiline-quotes-2.stderr b/vendor/toml_edit/tests/fixtures/invalid/string/literal-multiline-quotes-2.stderr
new file mode 100644
index 000000000..3fbb44acd
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/string/literal-multiline-quotes-2.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 29
+ |
+1 | a = '''15 apostrophes: ''''''''''''''''''
+ | ^
+expected newline, `#`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/string/missing-quotes.stderr b/vendor/toml_edit/tests/fixtures/invalid/string/missing-quotes.stderr
new file mode 100644
index 000000000..3558aab56
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/string/missing-quotes.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 8
+ |
+1 | name = value
+ | ^
+invalid string
+expected `"`, `'`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/string/multiline-bad-escape-1.stderr b/vendor/toml_edit/tests/fixtures/invalid/string/multiline-bad-escape-1.stderr
new file mode 100644
index 000000000..1a3b24baf
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/string/multiline-bad-escape-1.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 11
+ |
+1 | k = """t\a"""
+ | ^
+invalid escape sequence
+expected `b`, `f`, `n`, `r`, `t`, `u`, `U`, `\`, `"`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/string/multiline-bad-escape-2.stderr b/vendor/toml_edit/tests/fixtures/invalid/string/multiline-bad-escape-2.stderr
new file mode 100644
index 000000000..db17685ce
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/string/multiline-bad-escape-2.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 2, column 11
+ |
+2 | k = """t\ t"""
+ | ^
+invalid escape sequence
+expected `b`, `f`, `n`, `r`, `t`, `u`, `U`, `\`, `"`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/string/multiline-bad-escape-3.stderr b/vendor/toml_edit/tests/fixtures/invalid/string/multiline-bad-escape-3.stderr
new file mode 100644
index 000000000..646aa4d30
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/string/multiline-bad-escape-3.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 2, column 11
+ |
+2 | k = """t\ """
+ | ^
+invalid escape sequence
+expected `b`, `f`, `n`, `r`, `t`, `u`, `U`, `\`, `"`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/string/multiline-escape-space.stderr b/vendor/toml_edit/tests/fixtures/invalid/string/multiline-escape-space.stderr
new file mode 100644
index 000000000..4b3c32b98
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/string/multiline-escape-space.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 2, column 9
+ |
+2 | foo \ \n
+ | ^
+invalid escape sequence
+expected `b`, `f`, `n`, `r`, `t`, `u`, `U`, `\`, `"`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/string/multiline-no-close-2.stderr b/vendor/toml_edit/tests/fixtures/invalid/string/multiline-no-close-2.stderr
new file mode 100644
index 000000000..be5420add
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/string/multiline-no-close-2.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 7
+ |
+1 | x="""
+ | ^
+invalid multiline basic string
diff --git a/vendor/toml_edit/tests/fixtures/invalid/string/multiline-no-close.stderr b/vendor/toml_edit/tests/fixtures/invalid/string/multiline-no-close.stderr
new file mode 100644
index 000000000..99e967a46
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/string/multiline-no-close.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 2, column 20
+ |
+2 | this will fail
+ | ^
+invalid multiline basic string
diff --git a/vendor/toml_edit/tests/fixtures/invalid/string/multiline-quotes-1.stderr b/vendor/toml_edit/tests/fixtures/invalid/string/multiline-quotes-1.stderr
new file mode 100644
index 000000000..c3cf4c6e5
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/string/multiline-quotes-1.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 23
+ |
+1 | a = """6 quotes: """"""
+ | ^
+expected newline, `#`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/string/no-close.stderr b/vendor/toml_edit/tests/fixtures/invalid/string/no-close.stderr
new file mode 100644
index 000000000..f23223d3f
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/string/no-close.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 42
+ |
+1 | no-ending-quote = "One time, at band camp
+ | ^
+invalid basic string
diff --git a/vendor/toml_edit/tests/fixtures/invalid/string/text-after-string.stderr b/vendor/toml_edit/tests/fixtures/invalid/string/text-after-string.stderr
new file mode 100644
index 000000000..f05e33b53
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/string/text-after-string.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 41
+ |
+1 | string = "Is there life after strings?" No.
+ | ^
+expected newline, `#`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/string/wrong-close.stderr b/vendor/toml_edit/tests/fixtures/invalid/string/wrong-close.stderr
new file mode 100644
index 000000000..9a785e050
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/string/wrong-close.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 39
+ |
+1 | bad-ending-quote = "double and single'
+ | ^
+invalid basic string
diff --git a/vendor/toml_edit/tests/fixtures/invalid/table/append-with-dotted-keys-1.stderr b/vendor/toml_edit/tests/fixtures/invalid/table/append-with-dotted-keys-1.stderr
new file mode 100644
index 000000000..54ee50e1d
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/table/append-with-dotted-keys-1.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 17, column 3
+ |
+17 | b.c.t = "Using dotted keys to add to [a.b.c] after explicitly defining it above is not allowed"
+ | ^
+duplicate key `c`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/table/append-with-dotted-keys-2.stderr b/vendor/toml_edit/tests/fixtures/invalid/table/append-with-dotted-keys-2.stderr
new file mode 100644
index 000000000..7c665f97b
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/table/append-with-dotted-keys-2.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 8, column 3
+ |
+8 | b.c.d.k.t = "Using dotted keys to add to [a.b.c.d] after explicitly defining it above is not allowed"
+ | ^
+duplicate key `d`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/table/array-empty.stderr b/vendor/toml_edit/tests/fixtures/invalid/table/array-empty.stderr
new file mode 100644
index 000000000..ad2440ac8
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/table/array-empty.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 3
+ |
+1 | [[]]
+ | ^
+invalid key
diff --git a/vendor/toml_edit/tests/fixtures/invalid/table/array-implicit.stderr b/vendor/toml_edit/tests/fixtures/invalid/table/array-implicit.stderr
new file mode 100644
index 000000000..ed1ab7fea
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/table/array-implicit.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 13, column 1
+ |
+13 | [[albums]]
+ | ^
+invalid table header
+duplicate key `albums` in document root
diff --git a/vendor/toml_edit/tests/fixtures/invalid/table/array-missing-bracket.stderr b/vendor/toml_edit/tests/fixtures/invalid/table/array-missing-bracket.stderr
new file mode 100644
index 000000000..ed370ef85
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/table/array-missing-bracket.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 9
+ |
+1 | [[albums]
+ | ^
+invalid table header
+expected `.`, `]]`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/table/duplicate-key-dotted-table.stderr b/vendor/toml_edit/tests/fixtures/invalid/table/duplicate-key-dotted-table.stderr
new file mode 100644
index 000000000..3cbc0a320
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/table/duplicate-key-dotted-table.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 4, column 1
+ |
+4 | [fruit.apple] # INVALID
+ | ^
+invalid table header
+duplicate key `apple` in table `fruit`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/table/duplicate-key-dotted-table2.stderr b/vendor/toml_edit/tests/fixtures/invalid/table/duplicate-key-dotted-table2.stderr
new file mode 100644
index 000000000..c5ab1eb51
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/table/duplicate-key-dotted-table2.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 4, column 1
+ |
+4 | [fruit.apple.taste] # INVALID
+ | ^
+invalid table header
+duplicate key `taste` in table `fruit.apple`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/table/duplicate-key-table.stderr b/vendor/toml_edit/tests/fixtures/invalid/table/duplicate-key-table.stderr
new file mode 100644
index 000000000..bc76d9ce0
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/table/duplicate-key-table.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 4, column 1
+ |
+4 | [fruit.type]
+ | ^
+invalid table header
+duplicate key `type` in table `fruit`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/table/duplicate-table-array.stderr b/vendor/toml_edit/tests/fixtures/invalid/table/duplicate-table-array.stderr
new file mode 100644
index 000000000..536fdc3ba
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/table/duplicate-table-array.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 2, column 1
+ |
+2 | [[tbl]]
+ | ^
+invalid table header
+duplicate key `tbl` in document root
diff --git a/vendor/toml_edit/tests/fixtures/invalid/table/duplicate-table-array2.stderr b/vendor/toml_edit/tests/fixtures/invalid/table/duplicate-table-array2.stderr
new file mode 100644
index 000000000..81c27fba1
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/table/duplicate-table-array2.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 2, column 1
+ |
+2 | [tbl]
+ | ^
+invalid table header
+duplicate key `tbl` in document root
diff --git a/vendor/toml_edit/tests/fixtures/invalid/table/duplicate.stderr b/vendor/toml_edit/tests/fixtures/invalid/table/duplicate.stderr
new file mode 100644
index 000000000..81bf4ed03
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/table/duplicate.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 4, column 1
+ |
+4 | [a]
+ | ^
+invalid table header
+duplicate key `a` in document root
diff --git a/vendor/toml_edit/tests/fixtures/invalid/table/empty-implicit-table.stderr b/vendor/toml_edit/tests/fixtures/invalid/table/empty-implicit-table.stderr
new file mode 100644
index 000000000..a7f7444e5
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/table/empty-implicit-table.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 9
+ |
+1 | [naughty..naughty]
+ | ^
+invalid table header
+expected `.`, `]`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/table/empty.stderr b/vendor/toml_edit/tests/fixtures/invalid/table/empty.stderr
new file mode 100644
index 000000000..5dd0d56b5
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/table/empty.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 2
+ |
+1 | []
+ | ^
+invalid key
diff --git a/vendor/toml_edit/tests/fixtures/invalid/table/equals-sign.stderr b/vendor/toml_edit/tests/fixtures/invalid/table/equals-sign.stderr
new file mode 100644
index 000000000..52451c949
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/table/equals-sign.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 6
+ |
+1 | [name=bad]
+ | ^
+invalid table header
+expected `.`, `]`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/table/llbrace.stderr b/vendor/toml_edit/tests/fixtures/invalid/table/llbrace.stderr
new file mode 100644
index 000000000..316590da6
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/table/llbrace.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 3
+ |
+1 | [ [table]]
+ | ^
+invalid key
diff --git a/vendor/toml_edit/tests/fixtures/invalid/table/nested-brackets-close.stderr b/vendor/toml_edit/tests/fixtures/invalid/table/nested-brackets-close.stderr
new file mode 100644
index 000000000..e74e178f4
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/table/nested-brackets-close.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 4
+ |
+1 | [a]b]
+ | ^
+invalid table header
+expected newline, `#`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/table/nested-brackets-open.stderr b/vendor/toml_edit/tests/fixtures/invalid/table/nested-brackets-open.stderr
new file mode 100644
index 000000000..094cf7cde
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/table/nested-brackets-open.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 3
+ |
+1 | [a[b]
+ | ^
+invalid table header
+expected `.`, `]`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/table/quoted-no-close.stderr b/vendor/toml_edit/tests/fixtures/invalid/table/quoted-no-close.stderr
new file mode 100644
index 000000000..2b05e95ae
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/table/quoted-no-close.stderr
@@ -0,0 +1,5 @@
+TOML parse error at line 1, column 21
+ |
+1 | ["where will it end]
+ | ^
+invalid basic string
diff --git a/vendor/toml_edit/tests/fixtures/invalid/table/redefine.stderr b/vendor/toml_edit/tests/fixtures/invalid/table/redefine.stderr
new file mode 100644
index 000000000..99c1f98a1
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/table/redefine.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 5, column 1
+ |
+5 | [a.b]
+ | ^
+invalid table header
+duplicate key `b` in table `a`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/table/rrbrace.stderr b/vendor/toml_edit/tests/fixtures/invalid/table/rrbrace.stderr
new file mode 100644
index 000000000..adcdf9043
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/table/rrbrace.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 8
+ |
+1 | [[table] ]
+ | ^
+invalid table header
+expected `.`, `]]`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/table/text-after-table.stderr b/vendor/toml_edit/tests/fixtures/invalid/table/text-after-table.stderr
new file mode 100644
index 000000000..e7d7c4eb5
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/table/text-after-table.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 9
+ |
+1 | [error] this shouldn't be here
+ | ^
+invalid table header
+expected newline, `#`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/table/whitespace.stderr b/vendor/toml_edit/tests/fixtures/invalid/table/whitespace.stderr
new file mode 100644
index 000000000..aa149d2cb
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/table/whitespace.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 10
+ |
+1 | [invalid key]
+ | ^
+invalid table header
+expected `.`, `]`
diff --git a/vendor/toml_edit/tests/fixtures/invalid/table/with-pound.stderr b/vendor/toml_edit/tests/fixtures/invalid/table/with-pound.stderr
new file mode 100644
index 000000000..f5531cc5d
--- /dev/null
+++ b/vendor/toml_edit/tests/fixtures/invalid/table/with-pound.stderr
@@ -0,0 +1,6 @@
+TOML parse error at line 1, column 5
+ |
+1 | [key#group]
+ | ^
+invalid table header
+expected `.`, `]`
diff --git a/vendor/toml_edit/tests/invalid.rs b/vendor/toml_edit/tests/invalid.rs
new file mode 100644
index 000000000..9fff23582
--- /dev/null
+++ b/vendor/toml_edit/tests/invalid.rs
@@ -0,0 +1,26 @@
+use toml_edit::Document;
+
+fn main() {
+ let args = libtest_mimic::Arguments::from_args();
+ let tests = toml_test_data::invalid()
+ .map(|case| {
+ libtest_mimic::Trial::test(case.name.display().to_string(), || {
+ let expect_path =
+ std::path::Path::new("tests/fixtures").join(case.name.with_extension("stderr"));
+ let err = match run_case(case.fixture) {
+ Ok(()) => "".to_owned(),
+ Err(err) => err,
+ };
+ snapbox::assert_eq_path(expect_path, err);
+ Ok(())
+ })
+ })
+ .collect();
+ libtest_mimic::run(&args, tests).exit()
+}
+
+fn run_case(input: &[u8]) -> Result<(), String> {
+ let raw = std::str::from_utf8(input).map_err(|e| e.to_string())?;
+ let _ = raw.parse::<Document>().map_err(|e| e.to_string())?;
+ Ok(())
+}
diff --git a/vendor/toml_edit/tests/testsuite/convert.rs b/vendor/toml_edit/tests/testsuite/convert.rs
new file mode 100644
index 000000000..98f93979e
--- /dev/null
+++ b/vendor/toml_edit/tests/testsuite/convert.rs
@@ -0,0 +1,79 @@
+use snapbox::assert_eq;
+
+use toml_edit::{Document, Item, Value};
+
+#[test]
+fn table_into_inline() {
+ let toml = r#"
+[table]
+string = "value"
+array = [1, 2, 3]
+inline = { "1" = 1, "2" = 2 }
+
+[table.child]
+other = "world"
+"#;
+ let mut doc = toml.parse::<Document>().unwrap();
+
+ doc.get_mut("table").unwrap().make_value();
+
+ let actual = doc.to_string();
+ // `table=` is because we didn't re-format the table key, only the value
+ let expected = r#"table= { string = "value", array = [1, 2, 3], inline = { "1" = 1, "2" = 2 }, child = { other = "world" } }
+"#;
+ assert_eq(expected, actual);
+}
+
+#[test]
+fn inline_table_to_table() {
+ let toml = r#"table = { string = "value", array = [1, 2, 3], inline = { "1" = 1, "2" = 2 }, child = { other = "world" } }
+"#;
+ let mut doc = toml.parse::<Document>().unwrap();
+
+ let t = doc.remove("table").unwrap();
+ let t = match t {
+ Item::Value(Value::InlineTable(t)) => t,
+ _ => unreachable!("Unexpected {:?}", t),
+ };
+ let t = t.into_table();
+ doc.insert("table", Item::Table(t));
+
+ let actual = doc.to_string();
+ let expected = r#"[table]
+string = "value"
+array = [1, 2, 3]
+inline = { "1" = 1, "2" = 2 }
+child = { other = "world" }
+"#;
+ assert_eq(expected, actual);
+}
+
+#[test]
+fn array_of_tables_to_array() {
+ let toml = r#"
+[[table]]
+string = "value"
+array = [1, 2, 3]
+inline = { "1" = 1, "2" = 2 }
+
+[table.child]
+other = "world"
+
+[[table]]
+string = "value"
+array = [1, 2, 3]
+inline = { "1" = 1, "2" = 2 }
+
+[table.child]
+other = "world"
+"#;
+ let mut doc = toml.parse::<Document>().unwrap();
+
+ doc.get_mut("table").unwrap().make_value();
+
+ let actual = doc.to_string();
+ // `table=` is because we didn't re-format the table key, only the value
+ let expected = r#"table= [{ string = "value", array = [1, 2, 3], inline = { "1" = 1, "2" = 2 }, child = { other = "world" } }, { string = "value", array = [1, 2, 3], inline = { "1" = 1, "2" = 2 }, child = { other = "world" } }]
+"#;
+ assert_eq(expected, actual);
+}
diff --git a/vendor/toml_edit/tests/testsuite/datetime.rs b/vendor/toml_edit/tests/testsuite/datetime.rs
new file mode 100644
index 000000000..541f8ea1d
--- /dev/null
+++ b/vendor/toml_edit/tests/testsuite/datetime.rs
@@ -0,0 +1,256 @@
+macro_rules! bad {
+ ($toml:expr, $msg:expr) => {
+ match $toml.parse::<toml_edit::Document>() {
+ Ok(s) => panic!("parsed to: {:#?}", s),
+ Err(e) => snapbox::assert_eq($msg, e.to_string()),
+ }
+ };
+}
+
+#[test]
+fn times() {
+ fn dogood(s: &str, serialized: &str) {
+ let to_parse = format!("foo = {}", s);
+ let document = to_parse.parse::<toml_edit::Document>().unwrap();
+ assert_eq!(
+ document["foo"].as_datetime().unwrap().to_string(),
+ serialized
+ );
+ }
+ fn good(s: &str) {
+ dogood(s, s);
+ dogood(&s.replace('T', " "), s);
+ dogood(&s.replace('T', "t"), s);
+ dogood(&s.replace('Z', "z"), s);
+ }
+
+ good("1997-09-09T09:09:09Z");
+ good("1997-09-09T09:09:09+09:09");
+ good("1997-09-09T09:09:09-09:09");
+ good("1997-09-09T09:09:09");
+ good("1997-09-09");
+ dogood("1997-09-09 ", "1997-09-09");
+ dogood("1997-09-09 # comment", "1997-09-09");
+ good("09:09:09");
+ good("1997-09-09T09:09:09.09Z");
+ good("1997-09-09T09:09:09.09+09:09");
+ good("1997-09-09T09:09:09.09-09:09");
+ good("1997-09-09T09:09:09.09");
+ good("09:09:09.09");
+}
+
+#[test]
+fn bad_times() {
+ bad!(
+ "foo = 199-09-09",
+ "\
+TOML parse error at line 1, column 10
+ |
+1 | foo = 199-09-09
+ | ^
+expected newline, `#`
+"
+ );
+ bad!(
+ "foo = 199709-09",
+ "\
+TOML parse error at line 1, column 13
+ |
+1 | foo = 199709-09
+ | ^
+expected newline, `#`
+"
+ );
+ bad!(
+ "foo = 1997-9-09",
+ "\
+TOML parse error at line 1, column 12
+ |
+1 | foo = 1997-9-09
+ | ^
+invalid date-time
+"
+ );
+ bad!(
+ "foo = 1997-09-9",
+ "\
+TOML parse error at line 1, column 15
+ |
+1 | foo = 1997-09-9
+ | ^
+invalid date-time
+"
+ );
+ bad!(
+ "foo = 1997-09-0909:09:09",
+ "\
+TOML parse error at line 1, column 17
+ |
+1 | foo = 1997-09-0909:09:09
+ | ^
+expected newline, `#`
+"
+ );
+ bad!(
+ "foo = 1997-09-09T09:09:09.",
+ "\
+TOML parse error at line 1, column 26
+ |
+1 | foo = 1997-09-09T09:09:09.
+ | ^
+expected newline, `#`
+"
+ );
+ bad!(
+ "foo = T",
+ r#"TOML parse error at line 1, column 7
+ |
+1 | foo = T
+ | ^
+invalid string
+expected `"`, `'`
+"#
+ );
+ bad!(
+ "foo = T.",
+ r#"TOML parse error at line 1, column 7
+ |
+1 | foo = T.
+ | ^
+invalid string
+expected `"`, `'`
+"#
+ );
+ bad!(
+ "foo = TZ",
+ r#"TOML parse error at line 1, column 7
+ |
+1 | foo = TZ
+ | ^
+invalid string
+expected `"`, `'`
+"#
+ );
+ bad!(
+ "foo = 1997-09-09T09:09:09.09+",
+ r#"TOML parse error at line 1, column 30
+ |
+1 | foo = 1997-09-09T09:09:09.09+
+ | ^
+invalid time offset
+"#
+ );
+ bad!(
+ "foo = 1997-09-09T09:09:09.09+09",
+ r#"TOML parse error at line 1, column 32
+ |
+1 | foo = 1997-09-09T09:09:09.09+09
+ | ^
+invalid time offset
+"#
+ );
+ bad!(
+ "foo = 1997-09-09T09:09:09.09+09:9",
+ r#"TOML parse error at line 1, column 33
+ |
+1 | foo = 1997-09-09T09:09:09.09+09:9
+ | ^
+invalid time offset
+"#
+ );
+ bad!(
+ "foo = 1997-09-09T09:09:09.09+0909",
+ r#"TOML parse error at line 1, column 32
+ |
+1 | foo = 1997-09-09T09:09:09.09+0909
+ | ^
+invalid time offset
+"#
+ );
+ bad!(
+ "foo = 1997-09-09T09:09:09.09-",
+ r#"TOML parse error at line 1, column 30
+ |
+1 | foo = 1997-09-09T09:09:09.09-
+ | ^
+invalid time offset
+"#
+ );
+ bad!(
+ "foo = 1997-09-09T09:09:09.09-09",
+ r#"TOML parse error at line 1, column 32
+ |
+1 | foo = 1997-09-09T09:09:09.09-09
+ | ^
+invalid time offset
+"#
+ );
+ bad!(
+ "foo = 1997-09-09T09:09:09.09-09:9",
+ r#"TOML parse error at line 1, column 33
+ |
+1 | foo = 1997-09-09T09:09:09.09-09:9
+ | ^
+invalid time offset
+"#
+ );
+ bad!(
+ "foo = 1997-09-09T09:09:09.09-0909",
+ r#"TOML parse error at line 1, column 32
+ |
+1 | foo = 1997-09-09T09:09:09.09-0909
+ | ^
+invalid time offset
+"#
+ );
+
+ bad!(
+ "foo = 1997-00-09T09:09:09.09Z",
+ r#"TOML parse error at line 1, column 12
+ |
+1 | foo = 1997-00-09T09:09:09.09Z
+ | ^
+invalid date-time
+value is out of range
+"#
+ );
+ bad!(
+ "foo = 1997-09-00T09:09:09.09Z",
+ r#"TOML parse error at line 1, column 15
+ |
+1 | foo = 1997-09-00T09:09:09.09Z
+ | ^
+invalid date-time
+value is out of range
+"#
+ );
+ bad!(
+ "foo = 1997-09-09T30:09:09.09Z",
+ r#"TOML parse error at line 1, column 17
+ |
+1 | foo = 1997-09-09T30:09:09.09Z
+ | ^
+expected newline, `#`
+"#
+ );
+ bad!(
+ "foo = 1997-09-09T12:69:09.09Z",
+ r#"TOML parse error at line 1, column 21
+ |
+1 | foo = 1997-09-09T12:69:09.09Z
+ | ^
+invalid date-time
+value is out of range
+"#
+ );
+ bad!(
+ "foo = 1997-09-09T12:09:69.09Z",
+ r#"TOML parse error at line 1, column 24
+ |
+1 | foo = 1997-09-09T12:09:69.09Z
+ | ^
+invalid date-time
+value is out of range
+"#
+ );
+}
diff --git a/vendor/toml_edit/tests/testsuite/edit.rs b/vendor/toml_edit/tests/testsuite/edit.rs
new file mode 100644
index 000000000..28f73c1ac
--- /dev/null
+++ b/vendor/toml_edit/tests/testsuite/edit.rs
@@ -0,0 +1,855 @@
+use std::fmt;
+use std::iter::FromIterator;
+
+use snapbox::assert_eq;
+use toml_edit::{array, table, value, Document, Item, Key, Table, Value};
+
+macro_rules! parse_key {
+ ($s:expr) => {{
+ let key = $s.parse::<Key>();
+ assert!(key.is_ok());
+ key.unwrap()
+ }};
+}
+
+macro_rules! as_table {
+ ($e:ident) => {{
+ assert!($e.is_table());
+ $e.as_table_mut().unwrap()
+ }};
+}
+
+// Copied from https://github.com/colin-kiegel/rust-pretty-assertions/issues/24
+/// Wrapper around string slice that makes debug output `{:?}` to print string same way as `{}`.
+/// Used in different `assert*!` macros in combination with `pretty_assertions` crate to make
+/// test failures to show nice diffs.
+#[derive(PartialEq, Eq)]
+struct PrettyString<'a>(pub &'a str);
+/// Make diff to display string as multi-line string
+impl<'a> fmt::Debug for PrettyString<'a> {
+ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
+ f.write_str(self.0)
+ }
+}
+
+struct Test {
+ doc: Document,
+}
+
+fn given(input: &str) -> Test {
+ let doc = input.parse::<Document>();
+ assert!(doc.is_ok());
+ Test { doc: doc.unwrap() }
+}
+
+impl Test {
+ fn running<F>(&mut self, func: F) -> &mut Self
+ where
+ F: Fn(&mut Table),
+ {
+ {
+ let root = self.doc.as_table_mut();
+ func(root);
+ }
+ self
+ }
+
+ #[track_caller]
+ fn produces_display(&self, expected: &str) -> &Self {
+ assert_eq(expected, self.doc.to_string());
+ self
+ }
+}
+
+// insertion
+
+#[test]
+fn test_insert_leaf_table() {
+ given(
+ r#"[servers]
+
+ [servers.alpha]
+ ip = "10.0.0.1"
+ dc = "eqdc10"
+
+ [other.table]"#,
+ )
+ .running(|root| {
+ root["servers"]["beta"] = table();
+ root["servers"]["beta"]["ip"] = value("10.0.0.2");
+ root["servers"]["beta"]["dc"] = value("eqdc10");
+ })
+ .produces_display(
+ r#"[servers]
+
+ [servers.alpha]
+ ip = "10.0.0.1"
+ dc = "eqdc10"
+
+[servers.beta]
+ip = "10.0.0.2"
+dc = "eqdc10"
+
+ [other.table]
+"#,
+ );
+}
+
+#[test]
+fn test_inserted_leaf_table_goes_after_last_sibling() {
+ given(
+ r#"
+ [package]
+ [dependencies]
+ [[example]]
+ [dependencies.opencl]
+ [dev-dependencies]"#,
+ )
+ .running(|root| {
+ root["dependencies"]["newthing"] = table();
+ })
+ .produces_display(
+ r#"
+ [package]
+ [dependencies]
+ [[example]]
+ [dependencies.opencl]
+
+[dependencies.newthing]
+ [dev-dependencies]
+"#,
+ );
+}
+
+#[test]
+fn test_inserting_tables_from_different_parsed_docs() {
+ given("[a]")
+ .running(|root| {
+ let other = "[b]".parse::<Document>().unwrap();
+ root["b"] = other["b"].clone();
+ })
+ .produces_display("[a]\n[b]\n");
+}
+#[test]
+fn test_insert_nonleaf_table() {
+ given(
+ r#"
+ [other.table]"#,
+ )
+ .running(|root| {
+ root["servers"] = table();
+ root["servers"]["alpha"] = table();
+ root["servers"]["alpha"]["ip"] = value("10.0.0.1");
+ root["servers"]["alpha"]["dc"] = value("eqdc10");
+ })
+ .produces_display(
+ r#"
+ [other.table]
+
+[servers]
+
+[servers.alpha]
+ip = "10.0.0.1"
+dc = "eqdc10"
+"#,
+ );
+}
+
+#[test]
+fn test_insert_array() {
+ given(
+ r#"
+ [package]
+ title = "withoutarray""#,
+ )
+ .running(|root| {
+ root["bin"] = array();
+ assert!(root["bin"].is_array_of_tables());
+ let array = root["bin"].as_array_of_tables_mut().unwrap();
+ {
+ let mut table = Table::new();
+ table["hello"] = value("world");
+ array.push(table);
+ }
+ array.push(Table::new());
+ })
+ .produces_display(
+ r#"
+ [package]
+ title = "withoutarray"
+
+[[bin]]
+hello = "world"
+
+[[bin]]
+"#,
+ );
+}
+
+#[test]
+fn test_insert_values() {
+ given(
+ r#"
+ [tbl.son]"#,
+ )
+ .running(|root| {
+ root["tbl"]["key1"] = value("value1");
+ root["tbl"]["key2"] = value(42);
+ root["tbl"]["key3"] = value(8.1415926);
+ })
+ .produces_display(
+ r#"[tbl]
+key1 = "value1"
+key2 = 42
+key3 = 8.1415926
+
+ [tbl.son]
+"#,
+ );
+}
+
+// removal
+
+#[test]
+fn test_remove_leaf_table() {
+ given(
+ r#"
+ [servers]
+
+ # Indentation (tabs and/or spaces) is allowed but not required
+[servers.alpha]
+ ip = "10.0.0.1"
+ dc = "eqdc10"
+
+ [servers.beta]
+ ip = "10.0.0.2"
+ dc = "eqdc10""#,
+ )
+ .running(|root| {
+ let servers = root.get_mut("servers").unwrap();
+ let servers = as_table!(servers);
+ assert!(servers.remove("alpha").is_some());
+ })
+ .produces_display(
+ r#"
+ [servers]
+
+ [servers.beta]
+ ip = "10.0.0.2"
+ dc = "eqdc10"
+"#,
+ );
+}
+
+#[test]
+fn test_remove_nonleaf_table() {
+ given(
+ r#"
+ title = "not relevant"
+
+ # comment 1
+ [a.b.c] # comment 1.1
+ key1 = 1 # comment 1.2
+ # comment 2
+ [b] # comment 2.1
+ key2 = 2 # comment 2.2
+
+ # comment 3
+ [a] # comment 3.1
+ key3 = 3 # comment 3.2
+ [[a.'array']]
+ b = 1
+
+ [[a.b.c.trololololololo]] # ohohohohoho
+ c = 2
+ key3 = 42
+
+ # comment on some other table
+ [some.other.table]
+
+
+
+
+ # comment 4
+ [a.b] # comment 4.1
+ key4 = 4 # comment 4.2
+ key41 = 41 # comment 4.3
+
+
+ "#,
+ )
+ .running(|root| {
+ assert!(root.remove("a").is_some());
+ })
+ .produces_display(
+ r#"
+ title = "not relevant"
+ # comment 2
+ [b] # comment 2.1
+ key2 = 2 # comment 2.2
+
+ # comment on some other table
+ [some.other.table]
+
+
+ "#,
+ );
+}
+
+#[test]
+fn test_remove_array_entry() {
+ given(
+ r#"
+ [package]
+ name = "hello"
+ version = "1.0.0"
+
+ [[bin]]
+ name = "world"
+ path = "src/bin/world/main.rs"
+
+ [dependencies]
+ nom = "4.0" # future is here
+
+ [[bin]]
+ name = "delete me please"
+ path = "src/bin/dmp/main.rs""#,
+ )
+ .running(|root| {
+ let dmp = root.get_mut("bin").unwrap();
+ assert!(dmp.is_array_of_tables());
+ let dmp = dmp.as_array_of_tables_mut().unwrap();
+ assert_eq!(dmp.len(), 2);
+ dmp.remove(1);
+ assert_eq!(dmp.len(), 1);
+ })
+ .produces_display(
+ r#"
+ [package]
+ name = "hello"
+ version = "1.0.0"
+
+ [[bin]]
+ name = "world"
+ path = "src/bin/world/main.rs"
+
+ [dependencies]
+ nom = "4.0" # future is here
+"#,
+ );
+}
+
+#[test]
+fn test_remove_array() {
+ given(
+ r#"
+ [package]
+ name = "hello"
+ version = "1.0.0"
+
+ [[bin]]
+ name = "world"
+ path = "src/bin/world/main.rs"
+
+ [dependencies]
+ nom = "4.0" # future is here
+
+ [[bin]]
+ name = "delete me please"
+ path = "src/bin/dmp/main.rs""#,
+ )
+ .running(|root| {
+ assert!(root.remove("bin").is_some());
+ })
+ .produces_display(
+ r#"
+ [package]
+ name = "hello"
+ version = "1.0.0"
+
+ [dependencies]
+ nom = "4.0" # future is here
+"#,
+ );
+}
+
+#[test]
+fn test_remove_value() {
+ given(
+ r#"
+ name = "hello"
+ # delete this
+ version = "1.0.0" # please
+ documentation = "https://docs.rs/hello""#,
+ )
+ .running(|root| {
+ let value = root.remove("version");
+ assert!(value.is_some());
+ let value = value.unwrap();
+ assert!(value.is_value());
+ let value = value.as_value().unwrap();
+ assert!(value.is_str());
+ let value = value.as_str().unwrap();
+ assert_eq(value, "1.0.0");
+ })
+ .produces_display(
+ r#"
+ name = "hello"
+ documentation = "https://docs.rs/hello"
+"#,
+ );
+}
+
+#[test]
+fn test_remove_last_value_from_implicit() {
+ given(
+ r#"
+ [a]
+ b = 1"#,
+ )
+ .running(|root| {
+ let a = root.get_mut("a").unwrap();
+ assert!(a.is_table());
+ let a = as_table!(a);
+ a.set_implicit(true);
+ let value = a.remove("b");
+ assert!(value.is_some());
+ let value = value.unwrap();
+ assert!(value.is_value());
+ let value = value.as_value().unwrap();
+ assert_eq!(value.as_integer(), Some(1));
+ })
+ .produces_display(r#""#);
+}
+
+// values
+
+#[test]
+fn test_sort_values() {
+ given(
+ r#"
+ [a.z]
+
+ [a]
+ # this comment is attached to b
+ b = 2 # as well as this
+ a = 1
+ c = 3
+
+ [a.y]"#,
+ )
+ .running(|root| {
+ let a = root.get_mut("a").unwrap();
+ let a = as_table!(a);
+ a.sort_values();
+ })
+ .produces_display(
+ r#"
+ [a.z]
+
+ [a]
+ a = 1
+ # this comment is attached to b
+ b = 2 # as well as this
+ c = 3
+
+ [a.y]
+"#,
+ );
+}
+
+#[test]
+fn test_sort_values_by() {
+ given(
+ r#"
+ [a.z]
+
+ [a]
+ # this comment is attached to b
+ b = 2 # as well as this
+ a = 1
+ "c" = 3
+
+ [a.y]"#,
+ )
+ .running(|root| {
+ let a = root.get_mut("a").unwrap();
+ let a = as_table!(a);
+ // Sort by the representation, not the value. So "\"c\"" sorts before "a" because '"' sorts
+ // before 'a'.
+ a.sort_values_by(|k1, _, k2, _| k1.display_repr().cmp(&k2.display_repr()));
+ })
+ .produces_display(
+ r#"
+ [a.z]
+
+ [a]
+ "c" = 3
+ a = 1
+ # this comment is attached to b
+ b = 2 # as well as this
+
+ [a.y]
+"#,
+ );
+}
+
+#[test]
+fn test_set_position() {
+ given(
+ r#"
+ [package]
+ [dependencies]
+ [dependencies.opencl]
+ [dev-dependencies]"#,
+ )
+ .running(|root| {
+ for (header, table) in root.iter_mut() {
+ if header == "dependencies" {
+ let tab = as_table!(table);
+ tab.set_position(0);
+ let (_, segmented) = tab.iter_mut().next().unwrap();
+ as_table!(segmented).set_position(5)
+ }
+ }
+ })
+ .produces_display(
+ r#" [dependencies]
+
+ [package]
+ [dev-dependencies]
+ [dependencies.opencl]
+"#,
+ );
+}
+
+#[test]
+fn test_multiple_zero_positions() {
+ given(
+ r#"
+ [package]
+ [dependencies]
+ [dependencies.opencl]
+ a=""
+ [dev-dependencies]"#,
+ )
+ .running(|root| {
+ for (_, table) in root.iter_mut() {
+ as_table!(table).set_position(0)
+ }
+ })
+ .produces_display(
+ r#"
+ [package]
+ [dependencies]
+ [dev-dependencies]
+ [dependencies.opencl]
+ a=""
+"#,
+ );
+}
+
+#[test]
+fn test_multiple_max_usize_positions() {
+ given(
+ r#"
+ [package]
+ [dependencies]
+ [dependencies.opencl]
+ a=""
+ [dev-dependencies]"#,
+ )
+ .running(|root| {
+ for (_, table) in root.iter_mut() {
+ as_table!(table).set_position(usize::MAX)
+ }
+ })
+ .produces_display(
+ r#" [dependencies.opencl]
+ a=""
+
+ [package]
+ [dependencies]
+ [dev-dependencies]
+"#,
+ );
+}
+
+macro_rules! as_array {
+ ($entry:ident) => {{
+ assert!($entry.is_value());
+ let a = $entry.as_value_mut().unwrap();
+ assert!(a.is_array());
+ a.as_array_mut().unwrap()
+ }};
+}
+
+#[test]
+fn test_insert_replace_into_array() {
+ given(
+ r#"
+ a = [1,2,3]
+ b = []"#,
+ )
+ .running(|root| {
+ {
+ let a = root.get_mut("a").unwrap();
+ let a = as_array!(a);
+ assert_eq!(a.len(), 3);
+ assert!(a.get(2).is_some());
+ a.push(4);
+ assert_eq!(a.len(), 4);
+ a.fmt();
+ }
+ let b = root.get_mut("b").unwrap();
+ let b = as_array!(b);
+ assert!(b.is_empty());
+ b.push("hello");
+ assert_eq!(b.len(), 1);
+
+ b.push_formatted(Value::from("world").decorated("\n", "\n"));
+ b.push_formatted(Value::from("test").decorated("", ""));
+
+ b.insert(1, "beep");
+ b.insert_formatted(2, Value::from("boop").decorated(" ", " "));
+
+ // This should preserve formatting.
+ assert_eq!(b.replace(2, "zoink").as_str(), Some("boop"));
+ // This should replace formatting.
+ assert_eq!(
+ b.replace_formatted(4, Value::from("yikes").decorated(" ", ""))
+ .as_str(),
+ Some("test")
+ );
+ dbg!(root);
+ })
+ .produces_display(
+ r#"
+ a = [1, 2, 3, 4]
+ b = ["hello", "beep", "zoink" ,
+"world"
+, "yikes"]
+"#,
+ );
+}
+
+#[test]
+fn test_remove_from_array() {
+ given(
+ r#"
+ a = [1, 2, 3, 4]
+ b = ["hello"]"#,
+ )
+ .running(|root| {
+ {
+ let a = root.get_mut("a").unwrap();
+ let a = as_array!(a);
+ assert_eq!(a.len(), 4);
+ assert!(a.remove(3).is_integer());
+ assert_eq!(a.len(), 3);
+ }
+ let b = root.get_mut("b").unwrap();
+ let b = as_array!(b);
+ assert_eq!(b.len(), 1);
+ assert!(b.remove(0).is_str());
+ assert!(b.is_empty());
+ })
+ .produces_display(
+ r#"
+ a = [1, 2, 3]
+ b = []
+"#,
+ );
+}
+
+#[test]
+fn test_format_array() {
+ given(
+ r#"
+ a = [
+ 1,
+ "2",
+ 3.0,
+ ]
+ "#,
+ )
+ .running(|root| {
+ for (_, v) in root.iter_mut() {
+ if let Item::Value(Value::Array(array)) = v {
+ array.fmt();
+ }
+ }
+ })
+ .produces_display(
+ r#"
+ a = [1, "2", 3.0]
+ "#,
+ );
+}
+
+macro_rules! as_inline_table {
+ ($entry:ident) => {{
+ assert!($entry.is_value());
+ let a = $entry.as_value_mut().unwrap();
+ assert!(a.is_inline_table());
+ a.as_inline_table_mut().unwrap()
+ }};
+}
+
+#[test]
+fn test_insert_into_inline_table() {
+ given(
+ r#"
+ a = {a=2, c = 3}
+ b = {}"#,
+ )
+ .running(|root| {
+ {
+ let a = root.get_mut("a").unwrap();
+ let a = as_inline_table!(a);
+ assert_eq!(a.len(), 2);
+ assert!(a.contains_key("a") && a.get("c").is_some() && a.get_mut("c").is_some());
+ a.get_or_insert("b", 42);
+ assert_eq!(a.len(), 3);
+ a.fmt();
+ }
+ let b = root.get_mut("b").unwrap();
+ let b = as_inline_table!(b);
+ assert!(b.is_empty());
+ b.get_or_insert("hello", "world");
+ assert_eq!(b.len(), 1);
+ b.fmt()
+ })
+ .produces_display(
+ r#"
+ a = { a = 2, c = 3, b = 42 }
+ b = { hello = "world" }
+"#,
+ );
+}
+
+#[test]
+fn test_remove_from_inline_table() {
+ given(
+ r#"
+ a = {a=2, c = 3, b = 42}
+ b = {'hello' = "world"}"#,
+ )
+ .running(|root| {
+ {
+ let a = root.get_mut("a").unwrap();
+ let a = as_inline_table!(a);
+ assert_eq!(a.len(), 3);
+ assert!(a.remove("c").is_some());
+ assert_eq!(a.len(), 2);
+ }
+ let b = root.get_mut("b").unwrap();
+ let b = as_inline_table!(b);
+ assert_eq!(b.len(), 1);
+ assert!(b.remove("hello").is_some());
+ assert!(b.is_empty());
+ })
+ .produces_display(
+ r#"
+ a = {a=2, b = 42}
+ b = {}
+"#,
+ );
+}
+
+#[test]
+fn test_as_table_like() {
+ given(
+ r#"
+ a = {a=2, c = 3, b = 42}
+ x = {}
+ [[bin]]
+ [b]
+ x = "y"
+ [empty]"#,
+ )
+ .running(|root| {
+ let a = root["a"].as_table_like();
+ assert!(a.is_some());
+ let a = a.unwrap();
+ assert_eq!(a.iter().count(), 3);
+ assert_eq!(a.len(), 3);
+ assert_eq!(a.get("a").and_then(Item::as_integer), Some(2));
+
+ let b = root["b"].as_table_like();
+ assert!(b.is_some());
+ let b = b.unwrap();
+ assert_eq!(b.iter().count(), 1);
+ assert_eq!(b.len(), 1);
+ assert_eq!(b.get("x").and_then(Item::as_str), Some("y"));
+
+ assert_eq!(root["x"].as_table_like().map(|t| t.iter().count()), Some(0));
+ assert_eq!(
+ root["empty"].as_table_like().map(|t| t.is_empty()),
+ Some(true)
+ );
+
+ assert!(root["bin"].as_table_like().is_none());
+ });
+}
+
+#[test]
+fn test_inline_table_append() {
+ let mut a = Value::from_iter(vec![
+ (parse_key!("a"), 1),
+ (parse_key!("b"), 2),
+ (parse_key!("c"), 3),
+ ]);
+ let a = a.as_inline_table_mut().unwrap();
+
+ let mut b = Value::from_iter(vec![
+ (parse_key!("c"), 4),
+ (parse_key!("d"), 5),
+ (parse_key!("e"), 6),
+ ]);
+ let b = b.as_inline_table_mut().unwrap();
+
+ a.extend(b.iter());
+ assert_eq!(a.len(), 5);
+ assert!(a.contains_key("e"));
+ assert_eq!(b.len(), 3);
+}
+
+#[test]
+fn test_insert_dotted_into_std_table() {
+ given("")
+ .running(|root| {
+ root["nixpkgs"] = table();
+
+ root["nixpkgs"]["src"] = table();
+ root["nixpkgs"]["src"]
+ .as_table_like_mut()
+ .unwrap()
+ .set_dotted(true);
+ root["nixpkgs"]["src"]["git"] = value("https://github.com/nixos/nixpkgs");
+ })
+ .produces_display(
+ r#"[nixpkgs]
+src.git = "https://github.com/nixos/nixpkgs"
+"#,
+ );
+}
+
+#[test]
+fn test_insert_dotted_into_implicit_table() {
+ given("")
+ .running(|root| {
+ root["nixpkgs"] = table();
+
+ root["nixpkgs"]["src"]["git"] = value("https://github.com/nixos/nixpkgs");
+ root["nixpkgs"]["src"]
+ .as_table_like_mut()
+ .unwrap()
+ .set_dotted(true);
+ })
+ .produces_display(
+ r#"[nixpkgs]
+src.git = "https://github.com/nixos/nixpkgs"
+"#,
+ );
+}
diff --git a/vendor/toml_edit/tests/testsuite/invalid.rs b/vendor/toml_edit/tests/testsuite/invalid.rs
new file mode 100644
index 000000000..cb13b4e7d
--- /dev/null
+++ b/vendor/toml_edit/tests/testsuite/invalid.rs
@@ -0,0 +1,211 @@
+#[test]
+fn incomplete_inline_table_issue_296() {
+ let err = "native = {".parse::<toml_edit::Document>().unwrap_err();
+ snapbox::assert_eq(
+ r#"TOML parse error at line 1, column 11
+ |
+1 | native = {
+ | ^
+invalid inline table
+expected `}`
+"#,
+ err.to_string(),
+ );
+}
+
+#[test]
+fn bare_value_disallowed_issue_293() {
+ let err = "value=zzz".parse::<toml_edit::Document>().unwrap_err();
+ snapbox::assert_eq(
+ r#"TOML parse error at line 1, column 7
+ |
+1 | value=zzz
+ | ^
+invalid string
+expected `"`, `'`
+"#,
+ err.to_string(),
+ );
+}
+
+#[test]
+fn bare_value_in_array_disallowed_issue_293() {
+ let err = "value=[zzz]".parse::<toml_edit::Document>().unwrap_err();
+ snapbox::assert_eq(
+ r#"TOML parse error at line 1, column 8
+ |
+1 | value=[zzz]
+ | ^
+invalid array
+expected `]`
+"#,
+ err.to_string(),
+ );
+}
+
+#[test]
+fn duplicate_table_after_dotted_key_issue_509() {
+ let err = "
+[dependencies.foo]
+version = \"0.16\"
+
+[dependencies]
+libc = \"0.2\"
+
+[dependencies]
+rand = \"0.3.14\"
+"
+ .parse::<toml_edit::Document>()
+ .unwrap_err();
+ snapbox::assert_eq(
+ r#"TOML parse error at line 8, column 1
+ |
+8 | [dependencies]
+ | ^
+invalid table header
+duplicate key `dependencies` in document root
+"#,
+ err.to_string(),
+ );
+}
+
+#[test]
+fn bad() {
+ let toml_input = "a = 01";
+ let expected_err = "\
+TOML parse error at line 1, column 6
+ |
+1 | a = 01
+ | ^
+expected newline, `#`
+";
+ let err = toml_input.parse::<toml_edit::Document>().unwrap_err();
+ snapbox::assert_eq(expected_err, err.to_string());
+
+ let toml_input = "a = 1__1";
+ let expected_err = "\
+TOML parse error at line 1, column 7
+ |
+1 | a = 1__1
+ | ^
+invalid integer
+expected digit
+";
+ let err = toml_input.parse::<toml_edit::Document>().unwrap_err();
+ snapbox::assert_eq(expected_err, err.to_string());
+
+ let toml_input = "a = 1_";
+ let expected_err = "\
+TOML parse error at line 1, column 7
+ |
+1 | a = 1_
+ | ^
+invalid integer
+expected digit
+";
+ let err = toml_input.parse::<toml_edit::Document>().unwrap_err();
+ snapbox::assert_eq(expected_err, err.to_string());
+
+ let toml_input = "''";
+ let expected_err = "\
+TOML parse error at line 1, column 3
+ |
+1 | ''
+ | ^
+expected `.`, `=`
+";
+ let err = toml_input.parse::<toml_edit::Document>().unwrap_err();
+ snapbox::assert_eq(expected_err, err.to_string());
+
+ let toml_input = "a = 9e99999";
+ let expected_err = "\
+TOML parse error at line 1, column 5
+ |
+1 | a = 9e99999
+ | ^
+invalid floating-point number
+";
+ let err = toml_input.parse::<toml_edit::Document>().unwrap_err();
+ snapbox::assert_eq(expected_err, err.to_string());
+
+ let toml_input = "a = \"\u{7f}\"";
+ let expected_err = "\
+TOML parse error at line 1, column 6
+ |
+1 | a = \"\u{7f}\"
+ | ^
+invalid basic string
+";
+ let err = toml_input.parse::<toml_edit::Document>().unwrap_err();
+ snapbox::assert_eq(expected_err, err.to_string());
+
+ let toml_input = "a = '\u{7f}'";
+ let expected_err = "\
+TOML parse error at line 1, column 6
+ |
+1 | a = '\u{7f}'
+ | ^
+invalid literal string
+";
+ let err = toml_input.parse::<toml_edit::Document>().unwrap_err();
+ snapbox::assert_eq(expected_err, err.to_string());
+
+ let toml_input = "a = -0x1";
+ let expected_err = "\
+TOML parse error at line 1, column 7
+ |
+1 | a = -0x1
+ | ^
+expected newline, `#`
+";
+ let err = toml_input.parse::<toml_edit::Document>().unwrap_err();
+ snapbox::assert_eq(expected_err, err.to_string());
+
+ let toml_input = "a = 0x-1";
+ let expected_err = "\
+TOML parse error at line 1, column 7
+ |
+1 | a = 0x-1
+ | ^
+invalid hexadecimal integer
+";
+ let err = toml_input.parse::<toml_edit::Document>().unwrap_err();
+ snapbox::assert_eq(expected_err, err.to_string());
+
+ // Dotted keys.
+ let toml_input = "a.b.c = 1
+ a.b = 2
+ ";
+ let expected_err = "\
+TOML parse error at line 2, column 10
+ |
+2 | a.b = 2
+ | ^
+duplicate key `b` in document root
+";
+ let err = toml_input.parse::<toml_edit::Document>().unwrap_err();
+ snapbox::assert_eq(expected_err, err.to_string());
+
+ let toml_input = "a = 1
+ a.b = 2";
+ let expected_err = "\
+TOML parse error at line 2, column 10
+ |
+2 | a.b = 2
+ | ^
+dotted key `a` attempted to extend non-table type (integer)
+";
+ let err = toml_input.parse::<toml_edit::Document>().unwrap_err();
+ snapbox::assert_eq(expected_err, err.to_string());
+
+ let toml_input = "a = {k1 = 1, k1.name = \"joe\"}";
+ let expected_err = "\
+TOML parse error at line 1, column 6
+ |
+1 | a = {k1 = 1, k1.name = \"joe\"}
+ | ^
+dotted key `k1` attempted to extend non-table type (integer)
+";
+ let err = toml_input.parse::<toml_edit::Document>().unwrap_err();
+ snapbox::assert_eq(expected_err, err.to_string());
+}
diff --git a/vendor/toml_edit/tests/testsuite/main.rs b/vendor/toml_edit/tests/testsuite/main.rs
new file mode 100644
index 000000000..1476c5da0
--- /dev/null
+++ b/vendor/toml_edit/tests/testsuite/main.rs
@@ -0,0 +1,8 @@
+#![recursion_limit = "256"]
+
+mod convert;
+mod datetime;
+mod edit;
+mod invalid;
+mod parse;
+mod stackoverflow;
diff --git a/vendor/toml_edit/tests/testsuite/parse.rs b/vendor/toml_edit/tests/testsuite/parse.rs
new file mode 100644
index 000000000..ed3ca3037
--- /dev/null
+++ b/vendor/toml_edit/tests/testsuite/parse.rs
@@ -0,0 +1,1448 @@
+use snapbox::assert_eq;
+use toml_edit::{Document, Key, Value};
+
+macro_rules! parse {
+ ($s:expr, $ty:ty) => {{
+ let v = $s.parse::<$ty>();
+ assert!(v.is_ok(), "Failed with {}", v.unwrap_err());
+ v.unwrap()
+ }};
+}
+
+macro_rules! parse_value {
+ ($s:expr) => {
+ parse!($s, Value)
+ };
+}
+
+macro_rules! test_key {
+ ($s:expr, $expected:expr) => {{
+ let key = parse!($s, Key);
+ assert_eq!($expected, key.get(), "");
+ }};
+}
+
+#[test]
+fn test_key_from_str() {
+ test_key!("a", "a");
+ test_key!(r#"'hello key'"#, "hello key");
+ test_key!(
+ r#""Jos\u00E9\U000A0000\n\t\r\f\b\"""#,
+ "Jos\u{00E9}\u{A0000}\n\t\r\u{c}\u{8}\""
+ );
+ test_key!("\"\"", "");
+ test_key!("\"'hello key'bla\"", "'hello key'bla");
+ test_key!(
+ "'C:\\Users\\appveyor\\AppData\\Local\\Temp\\1\\cargo-edit-test.YizxPxxElXn9'",
+ "C:\\Users\\appveyor\\AppData\\Local\\Temp\\1\\cargo-edit-test.YizxPxxElXn9"
+ );
+}
+
+#[test]
+fn test_value_from_str() {
+ assert!(parse_value!("1979-05-27T00:32:00.999999-07:00").is_datetime());
+ assert!(parse_value!("1979-05-27T00:32:00.999999Z").is_datetime());
+ assert!(parse_value!("1979-05-27T00:32:00.999999").is_datetime());
+ assert!(parse_value!("1979-05-27T00:32:00").is_datetime());
+ assert!(parse_value!("1979-05-27").is_datetime());
+ assert!(parse_value!("00:32:00").is_datetime());
+ assert!(parse_value!("-239").is_integer());
+ assert!(parse_value!("1e200").is_float());
+ assert!(parse_value!("9_224_617.445_991_228_313").is_float());
+ assert!(parse_value!(r#""basic string\nJos\u00E9\n""#).is_str());
+ assert!(parse_value!(
+ r#""""
+multiline basic string
+""""#
+ )
+ .is_str());
+ assert!(parse_value!(r#"'literal string\ \'"#).is_str());
+ assert!(parse_value!(
+ r#"'''multiline
+literal \ \
+string'''"#
+ )
+ .is_str());
+ assert!(parse_value!(r#"{ hello = "world", a = 1}"#).is_inline_table());
+ assert!(
+ parse_value!(r#"[ { x = 1, a = "2" }, {a = "a",b = "b", c = "c"} ]"#).is_array()
+ );
+ let wp = "C:\\Users\\appveyor\\AppData\\Local\\Temp\\1\\cargo-edit-test.YizxPxxElXn9";
+ let lwp = "'C:\\Users\\appveyor\\AppData\\Local\\Temp\\1\\cargo-edit-test.YizxPxxElXn9'";
+ assert_eq!(Value::from(wp).as_str(), parse_value!(lwp).as_str());
+ assert!(parse_value!(r#""\\\"\b\f\n\r\t\u00E9\U000A0000""#).is_str());
+}
+
+#[test]
+fn test_key_unification() {
+ let toml = r#"
+[a]
+[a.'b'.c]
+[a."b".c.e]
+[a.b.c.d]
+"#;
+ let expected = r#"
+[a]
+[a.'b'.c]
+[a.'b'.c.e]
+[a.'b'.c.d]
+"#;
+ let doc = toml.parse::<Document>();
+ assert!(doc.is_ok());
+ let doc = doc.unwrap();
+
+ assert_eq(expected, doc.to_string());
+}
+
+macro_rules! bad {
+ ($toml:expr, $msg:expr) => {
+ match $toml.parse::<Document>() {
+ Ok(s) => panic!("parsed to: {:#?}", s),
+ Err(e) => snapbox::assert_eq($msg, e.to_string()),
+ }
+ };
+}
+
+#[test]
+fn crlf() {
+ "\
+ [project]\r\n\
+ \r\n\
+ name = \"splay\"\r\n\
+ version = \"0.1.0\"\r\n\
+ authors = [\"alex@crichton.co\"]\r\n\
+ \r\n\
+ [[lib]]\r\n\
+ \r\n\
+ path = \"lib.rs\"\r\n\
+ name = \"splay\"\r\n\
+ description = \"\"\"\
+ A Rust implementation of a TAR file reader and writer. This library does not\r\n\
+ currently handle compression, but it is abstract over all I/O readers and\r\n\
+ writers. Additionally, great lengths are taken to ensure that the entire\r\n\
+ contents are never required to be entirely resident in memory all at once.\r\n\
+ \"\"\"\
+ "
+ .parse::<Document>()
+ .unwrap();
+}
+
+#[test]
+fn fun_with_strings() {
+ let table = r#"
+bar = "\U00000000"
+key1 = "One\nTwo"
+key2 = """One\nTwo"""
+key3 = """
+One
+Two"""
+
+key4 = "The quick brown fox jumps over the lazy dog."
+key5 = """
+The quick brown \
+
+
+fox jumps over \
+the lazy dog."""
+key6 = """\
+ The quick brown \
+ fox jumps over \
+ the lazy dog.\
+ """
+# What you see is what you get.
+winpath = 'C:\Users\nodejs\templates'
+winpath2 = '\\ServerX\admin$\system32\'
+quoted = 'Tom "Dubs" Preston-Werner'
+regex = '<\i\c*\s*>'
+
+regex2 = '''I [dw]on't need \d{2} apples'''
+lines = '''
+The first newline is
+trimmed in raw strings.
+All other whitespace
+is preserved.
+'''
+"#
+ .parse::<Document>()
+ .unwrap();
+ assert_eq!(table["bar"].as_str(), Some("\0"));
+ assert_eq!(table["key1"].as_str(), Some("One\nTwo"));
+ assert_eq!(table["key2"].as_str(), Some("One\nTwo"));
+ assert_eq!(table["key3"].as_str(), Some("One\nTwo"));
+
+ let msg = "The quick brown fox jumps over the lazy dog.";
+ assert_eq!(table["key4"].as_str(), Some(msg));
+ assert_eq!(table["key5"].as_str(), Some(msg));
+ assert_eq!(table["key6"].as_str(), Some(msg));
+
+ assert_eq!(
+ table["winpath"].as_str(),
+ Some(r"C:\Users\nodejs\templates")
+ );
+ assert_eq!(
+ table["winpath2"].as_str(),
+ Some(r"\\ServerX\admin$\system32\")
+ );
+ assert_eq!(
+ table["quoted"].as_str(),
+ Some(r#"Tom "Dubs" Preston-Werner"#)
+ );
+ assert_eq!(table["regex"].as_str(), Some(r"<\i\c*\s*>"));
+ assert_eq!(
+ table["regex2"].as_str(),
+ Some(r"I [dw]on't need \d{2} apples")
+ );
+ assert_eq!(
+ table["lines"].as_str(),
+ Some(
+ "The first newline is\n\
+ trimmed in raw strings.\n\
+ All other whitespace\n\
+ is preserved.\n"
+ )
+ );
+}
+
+#[test]
+fn tables_in_arrays() {
+ let table = r#"
+[[foo]]
+#…
+[foo.bar]
+#…
+
+[[foo]] # ...
+#…
+[foo.bar]
+#...
+"#
+ .parse::<Document>()
+ .unwrap();
+ table["foo"][0]["bar"].as_table().unwrap();
+ table["foo"][1]["bar"].as_table().unwrap();
+}
+
+#[test]
+fn empty_table() {
+ let table = r#"
+[foo]"#
+ .parse::<Document>()
+ .unwrap();
+ table["foo"].as_table().unwrap();
+}
+
+#[test]
+fn fruit() {
+ let table = r#"
+[[fruit]]
+name = "apple"
+
+[fruit.physical]
+color = "red"
+shape = "round"
+
+[[fruit.variety]]
+name = "red delicious"
+
+[[fruit.variety]]
+name = "granny smith"
+
+[[fruit]]
+name = "banana"
+
+[[fruit.variety]]
+name = "plantain"
+"#
+ .parse::<Document>()
+ .unwrap();
+ assert_eq!(table["fruit"][0]["name"].as_str(), Some("apple"));
+ assert_eq!(table["fruit"][0]["physical"]["color"].as_str(), Some("red"));
+ assert_eq!(
+ table["fruit"][0]["physical"]["shape"].as_str(),
+ Some("round")
+ );
+ assert_eq!(
+ table["fruit"][0]["variety"][0]["name"].as_str(),
+ Some("red delicious")
+ );
+ assert_eq!(
+ table["fruit"][0]["variety"][1]["name"].as_str(),
+ Some("granny smith")
+ );
+ assert_eq!(table["fruit"][1]["name"].as_str(), Some("banana"));
+ assert_eq!(
+ table["fruit"][1]["variety"][0]["name"].as_str(),
+ Some("plantain")
+ );
+}
+
+#[test]
+fn stray_cr() {
+ bad!(
+ "\r",
+ "\
+TOML parse error at line 1, column 1
+ |
+1 | \r
+ | ^
+
+"
+ );
+ bad!(
+ "a = [ \r ]",
+ "\
+TOML parse error at line 1, column 7
+ |
+1 | a = [ \r
+ ]
+ | ^
+invalid array
+expected `]`
+"
+ );
+ bad!(
+ "a = \"\"\"\r\"\"\"",
+ "\
+TOML parse error at line 1, column 8
+ |
+1 | a = \"\"\"\r
+\"\"\"
+ | ^
+invalid multiline basic string
+"
+ );
+ bad!(
+ "a = \"\"\"\\ \r \"\"\"",
+ "\
+TOML parse error at line 1, column 10
+ |
+1 | a = \"\"\"\\ \r
+ \"\"\"
+ | ^
+invalid escape sequence
+expected `b`, `f`, `n`, `r`, `t`, `u`, `U`, `\\`, `\"`
+"
+ );
+ bad!(
+ "a = '''\r'''",
+ "\
+TOML parse error at line 1, column 8
+ |
+1 | a = '''\r
+'''
+ | ^
+invalid multiline literal string
+"
+ );
+ bad!(
+ "a = '\r'",
+ "\
+TOML parse error at line 1, column 6
+ |
+1 | a = '\r
+'
+ | ^
+invalid literal string
+"
+ );
+ bad!(
+ "a = \"\r\"",
+ "\
+TOML parse error at line 1, column 6
+ |
+1 | a = \"\r
+\"
+ | ^
+invalid basic string
+"
+ );
+}
+
+#[test]
+fn blank_literal_string() {
+ let table = "foo = ''".parse::<Document>().unwrap();
+ assert_eq!(table["foo"].as_str(), Some(""));
+}
+
+#[test]
+fn many_blank() {
+ let table = "foo = \"\"\"\n\n\n\"\"\"".parse::<Document>().unwrap();
+ assert_eq!(table["foo"].as_str(), Some("\n\n"));
+}
+
+#[test]
+fn literal_eats_crlf() {
+ let table = "
+ foo = \"\"\"\\\r\n\"\"\"
+ bar = \"\"\"\\\r\n \r\n \r\n a\"\"\"
+ "
+ .parse::<Document>()
+ .unwrap();
+ assert_eq!(table["foo"].as_str(), Some(""));
+ assert_eq!(table["bar"].as_str(), Some("a"));
+}
+
+#[test]
+fn string_no_newline() {
+ bad!(
+ "a = \"\n\"",
+ "\
+TOML parse error at line 1, column 6
+ |
+1 | a = \"
+ | ^
+invalid basic string
+"
+ );
+ bad!(
+ "a = '\n'",
+ "\
+TOML parse error at line 1, column 6
+ |
+1 | a = '
+ | ^
+invalid literal string
+"
+ );
+}
+
+#[test]
+fn bad_leading_zeros() {
+ bad!(
+ "a = 00",
+ "\
+TOML parse error at line 1, column 6
+ |
+1 | a = 00
+ | ^
+expected newline, `#`
+"
+ );
+ bad!(
+ "a = -00",
+ "\
+TOML parse error at line 1, column 7
+ |
+1 | a = -00
+ | ^
+expected newline, `#`
+"
+ );
+ bad!(
+ "a = +00",
+ "\
+TOML parse error at line 1, column 7
+ |
+1 | a = +00
+ | ^
+expected newline, `#`
+"
+ );
+ bad!(
+ "a = 00.0",
+ "\
+TOML parse error at line 1, column 6
+ |
+1 | a = 00.0
+ | ^
+expected newline, `#`
+"
+ );
+ bad!(
+ "a = -00.0",
+ "\
+TOML parse error at line 1, column 7
+ |
+1 | a = -00.0
+ | ^
+expected newline, `#`
+"
+ );
+ bad!(
+ "a = +00.0",
+ "\
+TOML parse error at line 1, column 7
+ |
+1 | a = +00.0
+ | ^
+expected newline, `#`
+"
+ );
+ bad!(
+ "a = 9223372036854775808",
+ "\
+TOML parse error at line 1, column 5
+ |
+1 | a = 9223372036854775808
+ | ^
+number too large to fit in target type
+"
+ );
+ bad!(
+ "a = -9223372036854775809",
+ "\
+TOML parse error at line 1, column 5
+ |
+1 | a = -9223372036854775809
+ | ^
+number too small to fit in target type
+"
+ );
+}
+
+#[test]
+fn bad_floats() {
+ bad!(
+ "a = 0.",
+ "\
+TOML parse error at line 1, column 7
+ |
+1 | a = 0.
+ | ^
+invalid floating-point number
+expected digit
+"
+ );
+ bad!(
+ "a = 0.e",
+ "\
+TOML parse error at line 1, column 7
+ |
+1 | a = 0.e
+ | ^
+invalid floating-point number
+expected digit
+"
+ );
+ bad!(
+ "a = 0.E",
+ "\
+TOML parse error at line 1, column 7
+ |
+1 | a = 0.E
+ | ^
+invalid floating-point number
+expected digit
+"
+ );
+ bad!(
+ "a = 0.0E",
+ "\
+TOML parse error at line 1, column 9
+ |
+1 | a = 0.0E
+ | ^
+invalid floating-point number
+"
+ );
+ bad!(
+ "a = 0.0e",
+ "\
+TOML parse error at line 1, column 9
+ |
+1 | a = 0.0e
+ | ^
+invalid floating-point number
+"
+ );
+ bad!(
+ "a = 0.0e-",
+ "\
+TOML parse error at line 1, column 10
+ |
+1 | a = 0.0e-
+ | ^
+invalid floating-point number
+"
+ );
+ bad!(
+ "a = 0.0e+",
+ "\
+TOML parse error at line 1, column 10
+ |
+1 | a = 0.0e+
+ | ^
+invalid floating-point number
+"
+ );
+}
+
+#[test]
+fn floats() {
+ macro_rules! t {
+ ($actual:expr, $expected:expr) => {{
+ let f = format!("foo = {}", $actual);
+ println!("{}", f);
+ let a = f.parse::<Document>().unwrap();
+ assert_eq!(a["foo"].as_float().unwrap(), $expected);
+ }};
+ }
+
+ t!("1.0", 1.0);
+ t!("1.0e0", 1.0);
+ t!("1.0e+0", 1.0);
+ t!("1.0e-0", 1.0);
+ t!("1E-0", 1.0);
+ t!("1.001e-0", 1.001);
+ t!("2e10", 2e10);
+ t!("2e+10", 2e10);
+ t!("2e-10", 2e-10);
+ t!("2_0.0", 20.0);
+ t!("2_0.0_0e1_0", 20.0e10);
+ t!("2_0.1_0e1_0", 20.1e10);
+}
+
+#[test]
+fn bare_key_names() {
+ let a = "
+ foo = 3
+ foo_3 = 3
+ foo_-2--3--r23f--4-f2-4 = 3
+ _ = 3
+ - = 3
+ 8 = 8
+ \"a\" = 3
+ \"!\" = 3
+ \"a^b\" = 3
+ \"\\\"\" = 3
+ \"character encoding\" = \"value\"
+ 'ʎǝʞ' = \"value\"
+ "
+ .parse::<Document>()
+ .unwrap();
+ let _ = &a["foo"];
+ let _ = &a["-"];
+ let _ = &a["_"];
+ let _ = &a["8"];
+ let _ = &a["foo_3"];
+ let _ = &a["foo_-2--3--r23f--4-f2-4"];
+ let _ = &a["a"];
+ let _ = &a["!"];
+ let _ = &a["\""];
+ let _ = &a["character encoding"];
+ let _ = &a["ʎǝʞ"];
+}
+
+#[test]
+fn bad_keys() {
+ bad!(
+ "key\n=3",
+ "\
+TOML parse error at line 1, column 4
+ |
+1 | key
+ | ^
+expected `.`, `=`
+"
+ );
+ bad!(
+ "key=\n3",
+ "\
+TOML parse error at line 1, column 5
+ |
+1 | key=
+ | ^
+invalid string
+expected `\"`, `'`
+"
+ );
+ bad!(
+ "key|=3",
+ "\
+TOML parse error at line 1, column 4
+ |
+1 | key|=3
+ | ^
+expected `.`, `=`
+"
+ );
+ bad!(
+ "=3",
+ "\
+TOML parse error at line 1, column 1
+ |
+1 | =3
+ | ^
+invalid key
+"
+ );
+ bad!(
+ "\"\"|=3",
+ "\
+TOML parse error at line 1, column 3
+ |
+1 | \"\"|=3
+ | ^
+expected `.`, `=`
+"
+ );
+ bad!(
+ "\"\n\"|=3",
+ "\
+TOML parse error at line 1, column 2
+ |
+1 | \"
+ | ^
+invalid basic string
+"
+ );
+ bad!(
+ "\"\r\"|=3",
+ "\
+TOML parse error at line 1, column 2
+ |
+1 | \"\r\"|=3
+ | ^
+invalid basic string
+"
+ );
+ bad!(
+ "''''''=3",
+ "\
+TOML parse error at line 1, column 3
+ |
+1 | ''''''=3
+ | ^
+expected `.`, `=`
+"
+ );
+ bad!(
+ "\"\"\"\"\"\"=3",
+ "\
+TOML parse error at line 1, column 3
+ |
+1 | \"\"\"\"\"\"=3
+ | ^
+expected `.`, `=`
+"
+ );
+ bad!(
+ "'''key'''=3",
+ "\
+TOML parse error at line 1, column 3
+ |
+1 | '''key'''=3
+ | ^
+expected `.`, `=`
+"
+ );
+ bad!(
+ "\"\"\"key\"\"\"=3",
+ "\
+TOML parse error at line 1, column 3
+ |
+1 | \"\"\"key\"\"\"=3
+ | ^
+expected `.`, `=`
+"
+ );
+}
+
+#[test]
+fn bad_table_names() {
+ bad!(
+ "[]",
+ "\
+TOML parse error at line 1, column 2
+ |
+1 | []
+ | ^
+invalid key
+"
+ );
+ bad!(
+ "[.]",
+ "\
+TOML parse error at line 1, column 2
+ |
+1 | [.]
+ | ^
+invalid key
+"
+ );
+ bad!(
+ "[a.]",
+ "\
+TOML parse error at line 1, column 3
+ |
+1 | [a.]
+ | ^
+invalid table header
+expected `.`, `]`
+"
+ );
+ bad!(
+ "[!]",
+ "\
+TOML parse error at line 1, column 2
+ |
+1 | [!]
+ | ^
+invalid key
+"
+ );
+ bad!(
+ "[\"\n\"]",
+ "\
+TOML parse error at line 1, column 3
+ |
+1 | [\"
+ | ^
+invalid basic string
+"
+ );
+ bad!(
+ "[a.b]\n[a.\"b\"]",
+ "\
+TOML parse error at line 2, column 1
+ |
+2 | [a.\"b\"]
+ | ^
+invalid table header
+duplicate key `b` in table `a`
+"
+ );
+ bad!(
+ "[']",
+ "\
+TOML parse error at line 1, column 4
+ |
+1 | [']
+ | ^
+invalid literal string
+"
+ );
+ bad!(
+ "[''']",
+ "\
+TOML parse error at line 1, column 4
+ |
+1 | [''']
+ | ^
+invalid table header
+expected `.`, `]`
+"
+ );
+ bad!(
+ "['''''']",
+ "\
+TOML parse error at line 1, column 4
+ |
+1 | ['''''']
+ | ^
+invalid table header
+expected `.`, `]`
+"
+ );
+ bad!(
+ "['''foo''']",
+ "\
+TOML parse error at line 1, column 4
+ |
+1 | ['''foo''']
+ | ^
+invalid table header
+expected `.`, `]`
+"
+ );
+ bad!(
+ "[\"\"\"bar\"\"\"]",
+ "\
+TOML parse error at line 1, column 4
+ |
+1 | [\"\"\"bar\"\"\"]
+ | ^
+invalid table header
+expected `.`, `]`
+"
+ );
+ bad!(
+ "['\n']",
+ "\
+TOML parse error at line 1, column 3
+ |
+1 | ['
+ | ^
+invalid literal string
+"
+ );
+ bad!(
+ "['\r\n']",
+ "\
+TOML parse error at line 1, column 3
+ |
+1 | ['
+ | ^
+invalid literal string
+"
+ );
+}
+
+#[test]
+fn table_names() {
+ let a = "
+ [a.\"b\"]
+ [\"f f\"]
+ [\"f.f\"]
+ [\"\\\"\"]
+ ['a.a']
+ ['\"\"']
+ "
+ .parse::<Document>()
+ .unwrap();
+ println!("{:?}", a);
+ let _ = &a["a"]["b"];
+ let _ = &a["f f"];
+ let _ = &a["f.f"];
+ let _ = &a["\""];
+ let _ = &a["\"\""];
+}
+
+#[test]
+fn invalid_bare_numeral() {
+ bad!(
+ "4",
+ "\
+TOML parse error at line 1, column 2
+ |
+1 | 4
+ | ^
+expected `.`, `=`
+"
+ );
+}
+
+#[test]
+fn inline_tables() {
+ "a = {}".parse::<Document>().unwrap();
+ "a = {b=1}".parse::<Document>().unwrap();
+ "a = { b = 1 }".parse::<Document>().unwrap();
+ "a = {a=1,b=2}".parse::<Document>().unwrap();
+ "a = {a=1,b=2,c={}}".parse::<Document>().unwrap();
+
+ bad!(
+ "a = {a=1,}",
+ "\
+TOML parse error at line 1, column 9
+ |
+1 | a = {a=1,}
+ | ^
+invalid inline table
+expected `}`
+"
+ );
+ bad!(
+ "a = {,}",
+ "\
+TOML parse error at line 1, column 6
+ |
+1 | a = {,}
+ | ^
+invalid inline table
+expected `}`
+"
+ );
+ bad!(
+ "a = {a=1,a=1}",
+ "\
+TOML parse error at line 1, column 6
+ |
+1 | a = {a=1,a=1}
+ | ^
+duplicate key `a`
+"
+ );
+ bad!(
+ "a = {\n}",
+ "\
+TOML parse error at line 1, column 6
+ |
+1 | a = {
+ | ^
+invalid inline table
+expected `}`
+"
+ );
+ bad!(
+ "a = {",
+ "\
+TOML parse error at line 1, column 6
+ |
+1 | a = {
+ | ^
+invalid inline table
+expected `}`
+"
+ );
+
+ "a = {a=[\n]}".parse::<Document>().unwrap();
+ "a = {\"a\"=[\n]}".parse::<Document>().unwrap();
+ "a = [\n{},\n{},\n]".parse::<Document>().unwrap();
+}
+
+#[test]
+fn number_underscores() {
+ macro_rules! t {
+ ($actual:expr, $expected:expr) => {{
+ let f = format!("foo = {}", $actual);
+ let table = f.parse::<Document>().unwrap();
+ assert_eq!(table["foo"].as_integer().unwrap(), $expected);
+ }};
+ }
+
+ t!("1_0", 10);
+ t!("1_0_0", 100);
+ t!("1_000", 1000);
+ t!("+1_000", 1000);
+ t!("-1_000", -1000);
+}
+
+#[test]
+fn bad_underscores() {
+ bad!(
+ "foo = 0_",
+ "\
+TOML parse error at line 1, column 8
+ |
+1 | foo = 0_
+ | ^
+expected newline, `#`
+"
+ );
+ bad!(
+ "foo = 0__0",
+ "\
+TOML parse error at line 1, column 8
+ |
+1 | foo = 0__0
+ | ^
+expected newline, `#`
+"
+ );
+ bad!(
+ "foo = __0",
+ "\
+TOML parse error at line 1, column 7
+ |
+1 | foo = __0
+ | ^
+invalid integer
+expected leading digit
+"
+ );
+ bad!(
+ "foo = 1_0_",
+ "\
+TOML parse error at line 1, column 11
+ |
+1 | foo = 1_0_
+ | ^
+invalid integer
+expected digit
+"
+ );
+}
+
+#[test]
+fn bad_unicode_codepoint() {
+ bad!(
+ "foo = \"\\uD800\"",
+ "\
+TOML parse error at line 1, column 10
+ |
+1 | foo = \"\\uD800\"
+ | ^
+invalid unicode 4-digit hex code
+value is out of range
+"
+ );
+}
+
+#[test]
+fn bad_strings() {
+ bad!(
+ "foo = \"\\uxx\"",
+ "\
+TOML parse error at line 1, column 10
+ |
+1 | foo = \"\\uxx\"
+ | ^
+invalid unicode 4-digit hex code
+"
+ );
+ bad!(
+ "foo = \"\\u\"",
+ "\
+TOML parse error at line 1, column 10
+ |
+1 | foo = \"\\u\"
+ | ^
+invalid unicode 4-digit hex code
+"
+ );
+ bad!(
+ "foo = \"\\",
+ "\
+TOML parse error at line 1, column 8
+ |
+1 | foo = \"\\
+ | ^
+invalid basic string
+"
+ );
+ bad!(
+ "foo = '",
+ "\
+TOML parse error at line 1, column 8
+ |
+1 | foo = '
+ | ^
+invalid literal string
+"
+ );
+}
+
+#[test]
+fn empty_string() {
+ assert_eq!(
+ "foo = \"\"".parse::<Document>().unwrap()["foo"]
+ .as_str()
+ .unwrap(),
+ ""
+ );
+}
+
+#[test]
+fn booleans() {
+ let table = "foo = true".parse::<Document>().unwrap();
+ assert_eq!(table["foo"].as_bool(), Some(true));
+
+ let table = "foo = false".parse::<Document>().unwrap();
+ assert_eq!(table["foo"].as_bool(), Some(false));
+
+ bad!(
+ "foo = true2",
+ "\
+TOML parse error at line 1, column 11
+ |
+1 | foo = true2
+ | ^
+expected newline, `#`
+"
+ );
+ bad!(
+ "foo = false2",
+ "\
+TOML parse error at line 1, column 12
+ |
+1 | foo = false2
+ | ^
+expected newline, `#`
+"
+ );
+ bad!(
+ "foo = t1",
+ "\
+TOML parse error at line 1, column 7
+ |
+1 | foo = t1
+ | ^
+invalid string
+expected `\"`, `'`
+"
+ );
+ bad!(
+ "foo = f2",
+ "\
+TOML parse error at line 1, column 7
+ |
+1 | foo = f2
+ | ^
+invalid string
+expected `\"`, `'`
+"
+ );
+}
+
+#[test]
+fn bad_nesting() {
+ bad!(
+ "
+ a = [2]
+ [[a]]
+ b = 5
+ ",
+ "\
+TOML parse error at line 3, column 9
+ |
+3 | [[a]]
+ | ^
+invalid table header
+duplicate key `a` in document root
+"
+ );
+ bad!(
+ "
+ a = 1
+ [a.b]
+ ",
+ "\
+TOML parse error at line 3, column 9
+ |
+3 | [a.b]
+ | ^
+invalid table header
+dotted key `a` attempted to extend non-table type (integer)
+"
+ );
+ bad!(
+ "
+ a = []
+ [a.b]
+ ",
+ "\
+TOML parse error at line 3, column 9
+ |
+3 | [a.b]
+ | ^
+invalid table header
+dotted key `a` attempted to extend non-table type (array)
+"
+ );
+ bad!(
+ "
+ a = []
+ [[a.b]]
+ ",
+ "\
+TOML parse error at line 3, column 9
+ |
+3 | [[a.b]]
+ | ^
+invalid table header
+dotted key `a` attempted to extend non-table type (array)
+"
+ );
+ bad!(
+ "
+ [a]
+ b = { c = 2, d = {} }
+ [a.b]
+ c = 2
+ ",
+ "\
+TOML parse error at line 4, column 9
+ |
+4 | [a.b]
+ | ^
+invalid table header
+duplicate key `b` in table `a`
+"
+ );
+}
+
+#[test]
+fn bad_table_redefine() {
+ bad!(
+ "
+ [a]
+ foo=\"bar\"
+ [a.b]
+ foo=\"bar\"
+ [a]
+ ",
+ "\
+TOML parse error at line 6, column 9
+ |
+6 | [a]
+ | ^
+invalid table header
+duplicate key `a` in document root
+"
+ );
+ bad!(
+ "
+ [a]
+ foo=\"bar\"
+ b = { foo = \"bar\" }
+ [a]
+ ",
+ "\
+TOML parse error at line 5, column 9
+ |
+5 | [a]
+ | ^
+invalid table header
+duplicate key `a` in document root
+"
+ );
+ bad!(
+ "
+ [a]
+ b = {}
+ [a.b]
+ ",
+ "\
+TOML parse error at line 4, column 9
+ |
+4 | [a.b]
+ | ^
+invalid table header
+duplicate key `b` in table `a`
+"
+ );
+
+ bad!(
+ "
+ [a]
+ b = {}
+ [a]
+ ",
+ "\
+TOML parse error at line 4, column 9
+ |
+4 | [a]
+ | ^
+invalid table header
+duplicate key `a` in document root
+"
+ );
+}
+
+#[test]
+fn datetimes() {
+ macro_rules! t {
+ ($actual:expr) => {{
+ let f = format!("foo = {}", $actual);
+ let toml = f.parse::<Document>().expect(&format!("failed: {}", f));
+ assert_eq!(toml["foo"].as_datetime().unwrap().to_string(), $actual);
+ }};
+ }
+
+ t!("2016-09-09T09:09:09Z");
+ t!("2016-09-09T09:09:09.1Z");
+ t!("2016-09-09T09:09:09.2+10:00");
+ t!("2016-09-09T09:09:09.123456789-02:00");
+ bad!(
+ "foo = 2016-09-09T09:09:09.Z",
+ "\
+TOML parse error at line 1, column 26
+ |
+1 | foo = 2016-09-09T09:09:09.Z
+ | ^
+expected newline, `#`
+"
+ );
+ bad!(
+ "foo = 2016-9-09T09:09:09Z",
+ "\
+TOML parse error at line 1, column 12
+ |
+1 | foo = 2016-9-09T09:09:09Z
+ | ^
+invalid date-time
+"
+ );
+ bad!(
+ "foo = 2016-09-09T09:09:09+2:00",
+ "\
+TOML parse error at line 1, column 27
+ |
+1 | foo = 2016-09-09T09:09:09+2:00
+ | ^
+invalid time offset
+"
+ );
+ bad!(
+ "foo = 2016-09-09T09:09:09-2:00",
+ "\
+TOML parse error at line 1, column 27
+ |
+1 | foo = 2016-09-09T09:09:09-2:00
+ | ^
+invalid time offset
+"
+ );
+ bad!(
+ "foo = 2016-09-09T09:09:09Z-2:00",
+ "\
+TOML parse error at line 1, column 27
+ |
+1 | foo = 2016-09-09T09:09:09Z-2:00
+ | ^
+expected newline, `#`
+"
+ );
+}
+
+#[test]
+fn require_newline_after_value() {
+ bad!(
+ "0=0r=false",
+ "\
+TOML parse error at line 1, column 4
+ |
+1 | 0=0r=false
+ | ^
+expected newline, `#`
+"
+ );
+ bad!(
+ r#"
+0=""o=""m=""r=""00="0"q="""0"""e="""0"""
+"#,
+ r#"TOML parse error at line 2, column 5
+ |
+2 | 0=""o=""m=""r=""00="0"q="""0"""e="""0"""
+ | ^
+expected newline, `#`
+"#
+ );
+ bad!(
+ r#"
+[[0000l0]]
+0="0"[[0000l0]]
+0="0"[[0000l0]]
+0="0"l="0"
+"#,
+ r#"TOML parse error at line 3, column 6
+ |
+3 | 0="0"[[0000l0]]
+ | ^
+expected newline, `#`
+"#
+ );
+ bad!(
+ r#"
+0=[0]00=[0,0,0]t=["0","0","0"]s=[1000-00-00T00:00:00Z,2000-00-00T00:00:00Z]
+"#,
+ r#"TOML parse error at line 2, column 6
+ |
+2 | 0=[0]00=[0,0,0]t=["0","0","0"]s=[1000-00-00T00:00:00Z,2000-00-00T00:00:00Z]
+ | ^
+expected newline, `#`
+"#
+ );
+ bad!(
+ r#"
+0=0r0=0r=false
+"#,
+ r#"TOML parse error at line 2, column 4
+ |
+2 | 0=0r0=0r=false
+ | ^
+expected newline, `#`
+"#
+ );
+ bad!(
+ r#"
+0=0r0=0r=falsefal=false
+"#,
+ r#"TOML parse error at line 2, column 4
+ |
+2 | 0=0r0=0r=falsefal=false
+ | ^
+expected newline, `#`
+"#
+ );
+}
diff --git a/vendor/toml_edit/tests/testsuite/stackoverflow.rs b/vendor/toml_edit/tests/testsuite/stackoverflow.rs
new file mode 100644
index 000000000..de4c72262
--- /dev/null
+++ b/vendor/toml_edit/tests/testsuite/stackoverflow.rs
@@ -0,0 +1,54 @@
+#[test]
+#[cfg(not(feature = "unbounded"))]
+fn array_recursion_limit() {
+ let depths = [(1, true), (20, true), (300, false)];
+ for (depth, is_ok) in depths {
+ let input = format!("x={}{}", &"[".repeat(depth), &"]".repeat(depth));
+ let document = input.parse::<toml_edit::Document>();
+ assert_eq!(document.is_ok(), is_ok, "depth: {}", depth);
+ }
+}
+
+#[test]
+#[cfg(not(feature = "unbounded"))]
+fn inline_table_recursion_limit() {
+ let depths = [(1, true), (20, true), (300, false)];
+ for (depth, is_ok) in depths {
+ let input = format!("x={}true{}", &"{ x = ".repeat(depth), &"}".repeat(depth));
+ let document = input.parse::<toml_edit::Document>();
+ assert_eq!(document.is_ok(), is_ok, "depth: {}", depth);
+ }
+}
+
+#[test]
+#[cfg(not(feature = "unbounded"))]
+fn table_key_recursion_limit() {
+ let depths = [(1, true), (20, true), (300, false)];
+ for (depth, is_ok) in depths {
+ let input = format!("[x{}]", &".x".repeat(depth));
+ let document = input.parse::<toml_edit::Document>();
+ assert_eq!(document.is_ok(), is_ok, "depth: {}", depth);
+ }
+}
+
+#[test]
+#[cfg(not(feature = "unbounded"))]
+fn dotted_key_recursion_limit() {
+ let depths = [(1, true), (20, true), (300, false)];
+ for (depth, is_ok) in depths {
+ let input = format!("x{} = true", &".x".repeat(depth));
+ let document = input.parse::<toml_edit::Document>();
+ assert_eq!(document.is_ok(), is_ok, "depth: {}", depth);
+ }
+}
+
+#[test]
+#[cfg(not(feature = "unbounded"))]
+fn inline_dotted_key_recursion_limit() {
+ let depths = [(1, true), (20, true), (300, false)];
+ for (depth, is_ok) in depths {
+ let input = format!("x = {{ x{} = true }}", &".x".repeat(depth));
+ let document = input.parse::<toml_edit::Document>();
+ assert_eq!(document.is_ok(), is_ok, "depth: {}", depth);
+ }
+}