diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-18 02:49:42 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-18 02:49:42 +0000 |
commit | 837b550238aa671a591ccf282dddeab29cadb206 (patch) | |
tree | 914b6b8862bace72bd3245ca184d374b08d8a672 /vendor/icu_list | |
parent | Adding debian version 1.70.0+dfsg2-1. (diff) | |
download | rustc-837b550238aa671a591ccf282dddeab29cadb206.tar.xz rustc-837b550238aa671a591ccf282dddeab29cadb206.zip |
Merging upstream version 1.71.1+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'vendor/icu_list')
-rw-r--r-- | vendor/icu_list/.cargo-checksum.json | 2 | ||||
-rw-r--r-- | vendor/icu_list/Cargo.lock | 193 | ||||
-rw-r--r-- | vendor/icu_list/Cargo.toml | 8 | ||||
-rw-r--r-- | vendor/icu_list/src/error.rs | 4 | ||||
-rw-r--r-- | vendor/icu_list/src/lib.rs | 4 | ||||
-rw-r--r-- | vendor/icu_list/src/list_formatter.rs | 5 | ||||
-rw-r--r-- | vendor/icu_list/src/provider/mod.rs | 18 | ||||
-rw-r--r-- | vendor/icu_list/src/provider/serde_dfa.rs | 16 |
8 files changed, 82 insertions, 168 deletions
diff --git a/vendor/icu_list/.cargo-checksum.json b/vendor/icu_list/.cargo-checksum.json index 0a33455b4..d34fa5ecc 100644 --- a/vendor/icu_list/.cargo-checksum.json +++ b/vendor/icu_list/.cargo-checksum.json @@ -1 +1 @@ -{"files":{"Cargo.lock":"11c80ad227499af3696bc71b715a91d202e3b178d24fd37776ca4221438d36ce","Cargo.toml":"2a69f60d480d23b4cfcba46039d83efe1eba24bd7ecf9cb6e7b08e7448a57b65","LICENSE":"4ad7541d66a407234e2c84902124cef325c29f3e966353efdb800bedb8b8da21","README.md":"33b424bdceea5edc4d3638592b007bf825e25a96e7fe9101a3ad04ea63637150","examples/and_list.rs":"76af2fbe31c6641a360726b201bfb043a35ee8dcf37b626640221fe889b194e4","src/error.rs":"3cf8a7962af6b43a91d9227e4d97824e4b2852d3d50fc00fb29c779768c1b915","src/lazy_automaton.rs":"eff2e95ae5c889908ba71480e73fc31d9cb2e793e9dc6dee8683c686e8ed8019","src/lib.rs":"24090cea0e42067e06fc9d5248c1ae6a03f12bd62ec0e9e2c237d2fc1251dcdb","src/list_formatter.rs":"a21de479a5ec86ed46ce0ad508e8059efb9ecd95ce869523be30118ed6a86660","src/patterns.rs":"3013aca1dd51d1b9a98e8573abac9116650635b2931157e9fb16ee10c8d3ab9c","src/provider/mod.rs":"0dbd37b8b83d40a2f5d7945cc55b4aa8477cec98442472c4b7a6875b226c8195","src/provider/serde_dfa.rs":"4f0489d176e87ad463efd36b4ead93b0b6bb0a39d26b1f96413bfb00576f7bac"},"package":"01a65ff0cab77c33c7e165c858eaa6e84a09f1e485dd495d9d0ae61083c6f786"}
\ No newline at end of file +{"files":{"Cargo.lock":"cefda77167195f381333aefff397aa2429d8e473bca513b0b29695f398af9e14","Cargo.toml":"eef1bfb098c481a664c49b1e331e09fd254fc472815437894bf8d1f08014fe07","LICENSE":"4ad7541d66a407234e2c84902124cef325c29f3e966353efdb800bedb8b8da21","README.md":"33b424bdceea5edc4d3638592b007bf825e25a96e7fe9101a3ad04ea63637150","examples/and_list.rs":"76af2fbe31c6641a360726b201bfb043a35ee8dcf37b626640221fe889b194e4","src/error.rs":"74a114b135c2f972f6f9ad466b6c342dbd89de293aac7d89fbcd9d58c1aaa48e","src/lazy_automaton.rs":"eff2e95ae5c889908ba71480e73fc31d9cb2e793e9dc6dee8683c686e8ed8019","src/lib.rs":"d56881d78a298600f779986555d82b3d0be81c5472096e5fc3b80844b6389724","src/list_formatter.rs":"c7b1e2c6c49145cb62e6948dc60c384e46bba333a3a490c84360a1cd795965a2","src/patterns.rs":"3013aca1dd51d1b9a98e8573abac9116650635b2931157e9fb16ee10c8d3ab9c","src/provider/mod.rs":"47a7b749e27eb6d5de3b9afecd197f990748050d4bd615fb5f19ca5c56ce56ab","src/provider/serde_dfa.rs":"da5892495d21c2d94ec5ad87e441a3c573380b258a30f7d5fb501787edabd16c"},"package":"fd7ba7442d9235b689d4fdce17c452ea229934980fd81ba50cc28275752c9f90"}
\ No newline at end of file diff --git a/vendor/icu_list/Cargo.lock b/vendor/icu_list/Cargo.lock index 759405aa8..17f698f32 100644 --- a/vendor/icu_list/Cargo.lock +++ b/vendor/icu_list/Cargo.lock @@ -3,43 +3,16 @@ version = 3 [[package]] -name = "atomic-polyfill" -version = "0.1.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3ff7eb3f316534d83a8a2c3d1674ace8a5a71198eba31e2e2b597833f699b28" -dependencies = [ - "critical-section", -] - -[[package]] -name = "autocfg" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" - -[[package]] -name = "byteorder" -version = "1.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" - -[[package]] name = "cobs" version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67ba02a97a2bd10f4b59b25c7973101c79642302776489e030cd13cdab09ed15" [[package]] -name = "critical-section" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6548a0ad5d2549e111e1f6a11a6c2e2d00ce6a3dafe22948d67c2b443f775e52" - -[[package]] name = "databake" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df626c4717e455cd7a70a82c4358630554a07e4341f86dd095c625f1474a2857" +checksum = "3feab871d671ecc2e912e83e3a64b9b3343a224c86b999334c4c99b07cf07f52" dependencies = [ "databake-derive", "proc-macro2", @@ -49,9 +22,9 @@ dependencies = [ [[package]] name = "databake-derive" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be51a53c468489ae1ef0efa9f6b10706f426c0dde06d66122ffef1f0c51e87dc" +checksum = "d8b3072996668063c5fe00fcef85ee766fc01113f2fdd5e8a31d5ebae260c091" dependencies = [ "proc-macro2", "quote", @@ -61,9 +34,9 @@ dependencies = [ [[package]] name = "deduplicating_array" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "135a278b07263e55438c15a3021b4947288f981ae387666f5015add8fbc76f5b" +checksum = "0b5426e8a7610ceca8b2f2c40a25ddd4476606c96a0c1e3524fdfdbeb64c1331" dependencies = [ "serde", ] @@ -80,31 +53,8 @@ dependencies = [ ] [[package]] -name = "hash32" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67" -dependencies = [ - "byteorder", -] - -[[package]] -name = "heapless" -version = "0.7.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db04bc24a18b9ea980628ecf00e6c0264f3c1426dac36c00cb49b6fbad8b0743" -dependencies = [ - "atomic-polyfill", - "hash32", - "rustc_version", - "serde", - "spin", - "stable_deref_trait", -] - -[[package]] name = "icu_list" -version = "1.1.0" +version = "1.2.0" dependencies = [ "databake", "deduplicating_array", @@ -119,9 +69,9 @@ dependencies = [ [[package]] name = "icu_locid" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71d7a98ecb812760b5f077e55a4763edeefa7ccc30d6eb5680a70841ede81928" +checksum = "3003f85dccfc0e238ff567693248c59153a46f4e6125ba4020b973cef4d1d335" dependencies = [ "displaydoc", "litemap", @@ -131,9 +81,9 @@ dependencies = [ [[package]] name = "icu_provider" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a86816c97bc4e613086497f9479f63e120315e056763e8c4435604f98d21d82d" +checksum = "8dc312a7b6148f7dfe098047ae2494d12d4034f48ade58d4f353000db376e305" dependencies = [ "displaydoc", "icu_locid", @@ -148,9 +98,9 @@ dependencies = [ [[package]] name = "icu_provider_macros" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ddb07844c2ffc4c28840e799e9e54ff054393cf090740decf25624e9d94b93a" +checksum = "dd8b728b9421e93eff1d9f8681101b78fa745e0748c95c655c83f337044a7e10" dependencies = [ "proc-macro2", "quote", @@ -159,25 +109,15 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.5" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440" +checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6" [[package]] name = "litemap" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "575d8a551c59104b4df91269921e5eab561aa1b77c618dac0414b5d44a4617de" - -[[package]] -name = "lock_api" -version = "0.4.9" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" -dependencies = [ - "autocfg", - "scopeguard", -] +checksum = "3a04a5b2b6f54acba899926491d0a6c59d98012938ca2ab5befb281c034e8f94" [[package]] name = "memchr" @@ -187,29 +127,28 @@ checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" [[package]] name = "postcard" -version = "1.0.2" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c2b180dc0bade59f03fd005cb967d3f1e5f69b13922dad0cd6e047cb8af2363" +checksum = "cfa512cd0d087cc9f99ad30a1bf64795b67871edbead083ffc3a4dfafa59aa00" dependencies = [ "cobs", - "heapless", "serde", ] [[package]] name = "proc-macro2" -version = "1.0.50" +version = "1.0.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ef7d57beacfaf2d8aee5937dab7b7f28de3cb8b1828479bb5de2a7106f2bae2" +checksum = "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.23" +version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b" +checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc" dependencies = [ "proc-macro2", ] @@ -226,51 +165,30 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.6.28" +version = "0.6.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848" - -[[package]] -name = "rustc_version" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" -dependencies = [ - "semver", -] +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "ryu" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde" - -[[package]] -name = "scopeguard" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" - -[[package]] -name = "semver" -version = "1.0.16" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58bc9567378fc7690d6b2addae4e60ac2eeea07becb2c64b9f218b53865cba2a" +checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" [[package]] name = "serde" -version = "1.0.152" +version = "1.0.156" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb7d1f0d3021d347a83e556fc4683dea2ea09d87bccdf88ff5c12545d89d5efb" +checksum = "314b5b092c0ade17c00142951e50ced110ec27cea304b1037c6969246c2469a4" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.152" +version = "1.0.156" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af487d118eecd09402d70a5d72551860e788df87b464af30e5ea6a38c75c541e" +checksum = "d7e29c4601e36bcec74a223228dce795f4cd3616341a4af93520ca1a837c087d" dependencies = [ "proc-macro2", "quote", @@ -279,9 +197,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.91" +version = "1.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877c235533714907a8c2464236f5c4b2a17262ef1bd71f38f35ea592c8da6883" +checksum = "057d394a50403bcac12672b2b18fb387ab6d289d957dab67dd201875391e52f1" dependencies = [ "itoa", "ryu", @@ -289,15 +207,6 @@ dependencies = [ ] [[package]] -name = "spin" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f6002a767bff9e83f8eeecf883ecb8011875a21ae8da43bffb817a57e78cc09" -dependencies = [ - "lock_api", -] - -[[package]] name = "stable_deref_trait" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -305,9 +214,9 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "syn" -version = "1.0.107" +version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ "proc-macro2", "quote", @@ -337,9 +246,9 @@ dependencies = [ [[package]] name = "unicode-ident" -version = "1.0.6" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc" +checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4" [[package]] name = "unicode-xid" @@ -349,15 +258,15 @@ checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" [[package]] name = "writeable" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92d74a687e3b9a7a129db0a8c82b4d464eb9c36f5a66ca68572a7e5f1cfdb5bc" +checksum = "60e49e42bdb1d5dc76f4cd78102f8f0714d32edfa3efb82286eb0f0b1fc0da0f" [[package]] name = "yoke" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "222180af14a6b54ef2c33493c1eff77ae95a3687a21b243e752624006fb8f26e" +checksum = "1848075a23a28f9773498ee9a0f2cf58fcbad4f8c0ccf84a210ab33c6ae495de" dependencies = [ "serde", "stable_deref_trait", @@ -367,9 +276,9 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca800d73d6b7a7ee54f2608205c98b549fca71c9500c1abcb3abdc7708b4a8cb" +checksum = "af46c169923ed7516eef0aa32b56d2651b229f57458ebe46b49ddd6efef5b7a2" dependencies = [ "proc-macro2", "quote", @@ -379,18 +288,18 @@ dependencies = [ [[package]] name = "zerofrom" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79e9355fccf72b04b7deaa99ce7a0f6630530acf34045391b74460fcd714de54" +checksum = "df54d76c3251de27615dfcce21e636c172dafb2549cd7fd93e21c66f6ca6bea2" dependencies = [ "zerofrom-derive", ] [[package]] name = "zerofrom-derive" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e8aa86add9ddbd2409c1ed01e033cd457d79b1b1229b64922c25095c595e829" +checksum = "b4eae7c1f7d4b8eafce526bc0771449ddc2f250881ae31c50d22c032b5a1c499" dependencies = [ "proc-macro2", "quote", @@ -400,9 +309,9 @@ dependencies = [ [[package]] name = "zerovec" -version = "0.9.2" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "154df60c74c4a844bc04a53cef4fc18a909d3ea07e19f5225eaba86209da3aa6" +checksum = "198f54134cd865f437820aa3b43d0ad518af4e68ee161b444cdd15d8e567c8ea" dependencies = [ "zerofrom", "zerovec-derive", @@ -410,9 +319,9 @@ dependencies = [ [[package]] name = "zerovec-derive" -version = "0.9.2" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c630983d26a5f0c061dad3bf22df69a7329b4939a9752bc5f19f1cbd8e2263db" +checksum = "486558732d5dde10d0f8cb2936507c1bb21bc539d924c949baf5f36a58e51bac" dependencies = [ "proc-macro2", "quote", diff --git a/vendor/icu_list/Cargo.toml b/vendor/icu_list/Cargo.toml index 2d3f3feb1..0374bf280 100644 --- a/vendor/icu_list/Cargo.toml +++ b/vendor/icu_list/Cargo.toml @@ -10,9 +10,9 @@ # See Cargo.toml.orig for the original contents. [package] -edition = "2018" +edition = "2021" name = "icu_list" -version = "1.1.0" +version = "1.2.0" authors = ["The ICU4X Project Developers"] include = [ "src/**/*", @@ -28,7 +28,6 @@ readme = "README.md" categories = ["internationalization"] license = "Unicode-DFS-2016" repository = "https://github.com/unicode-org/icu4x" -resolver = "2" [package.metadata.docs.rs] all-features = true @@ -53,7 +52,7 @@ version = "0.2.3" default-features = false [dependencies.icu_provider] -version = "1.1.0" +version = "1.2.0" features = ["macros"] [dependencies.regex-automata] @@ -75,6 +74,7 @@ version = "0.5.1" [dev-dependencies.postcard] version = "1.0.0" features = ["use-std"] +default-features = false [dev-dependencies.serde_json] version = "1" diff --git a/vendor/icu_list/src/error.rs b/vendor/icu_list/src/error.rs index d8622b03a..a338e02ed 100644 --- a/vendor/icu_list/src/error.rs +++ b/vendor/icu_list/src/error.rs @@ -4,12 +4,12 @@ use core::fmt::Debug; use displaydoc::Display; -use icu_provider::prelude::DataError; +use icu_provider::DataError; #[cfg(feature = "std")] impl std::error::Error for ListError {} -/// A list of error outcomes for various operations in the `icu_timezone` crate. +/// A list of error outcomes for various operations in this module. /// /// Re-exported as [`Error`](crate::Error). #[derive(Display, Debug, Copy, Clone, PartialEq)] diff --git a/vendor/icu_list/src/lib.rs b/vendor/icu_list/src/lib.rs index 61aec0fa3..9412a7fb9 100644 --- a/vendor/icu_list/src/lib.rs +++ b/vendor/icu_list/src/lib.rs @@ -85,7 +85,7 @@ clippy::panic, clippy::exhaustive_structs, clippy::exhaustive_enums, - // TODO(#2266): enable missing_debug_implementations, + missing_debug_implementations, ) )] #![warn(missing_docs)] @@ -103,7 +103,7 @@ pub use list_formatter::*; pub use error::ListError; -#[doc(inline)] +#[doc(no_inline)] pub use ListError as Error; /// Represents the style of a list. See the diff --git a/vendor/icu_list/src/list_formatter.rs b/vendor/icu_list/src/list_formatter.rs index 93f035eab..5ef67c324 100644 --- a/vendor/icu_list/src/list_formatter.rs +++ b/vendor/icu_list/src/list_formatter.rs @@ -9,8 +9,12 @@ use core::fmt::{self, Write}; use icu_provider::prelude::*; use writeable::*; +#[cfg(doc)] +extern crate writeable; + /// A formatter that renders sequences of items in an i18n-friendly way. See the /// [crate-level documentation](crate) for more details. +#[derive(Debug)] pub struct ListFormatter { data: DataPayload<ErasedListV1Marker>, length: ListLength, @@ -151,6 +155,7 @@ pub mod parts { /// The [`Writeable`] implementation that is returned by [`ListFormatter::format`]. See /// the [`writeable`] crate for how to consume this. +#[derive(Debug)] pub struct FormattedList<'a, W: Writeable + 'a, I: Iterator<Item = W> + Clone + 'a> { formatter: &'a ListFormatter, values: I, diff --git a/vendor/icu_list/src/provider/mod.rs b/vendor/icu_list/src/provider/mod.rs index efab7c8bc..8438e956c 100644 --- a/vendor/icu_list/src/provider/mod.rs +++ b/vendor/icu_list/src/provider/mod.rs @@ -17,8 +17,8 @@ use crate::ListLength; use alloc::borrow::Cow; +use icu_provider::prelude::*; use icu_provider::DataMarker; -use icu_provider::{yoke, zerofrom}; mod serde_dfa; pub use serde_dfa::SerdeDFA; @@ -226,9 +226,10 @@ impl<'de: 'data, 'data> serde::Deserialize<'de> for ListJoinerPattern<'data> { impl<'a> ListJoinerPattern<'a> { /// Constructs a [`ListJoinerPattern`] from raw parts. Used by databake. /// - /// # Safety - /// index_1 may be at most string.len() - pub const unsafe fn from_parts_unchecked(string: &'a str, index_1: u8) -> Self { + /// # Panics + /// If `string[..index_1]` panics. + pub const fn from_parts(string: &'a str, index_1: u8) -> Self { + assert!(string.len() <= 255 && index_1 <= string.len() as u8); Self { string: Cow::Borrowed(string), index_0: 0, @@ -243,10 +244,9 @@ impl databake::Bake for ListJoinerPattern<'_> { env.insert("icu_list"); let string = (&*self.string).bake(env); let index_1 = self.index_1.bake(env); - // Safe because our own data is safe - databake::quote! { unsafe { - ::icu_list::provider::ListJoinerPattern::from_parts_unchecked(#string, #index_1) - }} + databake::quote! { + ::icu_list::provider::ListJoinerPattern::from_parts(#string, #index_1) + } } } @@ -255,7 +255,7 @@ impl databake::Bake for ListJoinerPattern<'_> { fn databake() { databake::test_bake!( ListJoinerPattern, - const: unsafe { crate::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8) }, + const: crate::provider::ListJoinerPattern::from_parts(", ", 2u8), icu_list ); } diff --git a/vendor/icu_list/src/provider/serde_dfa.rs b/vendor/icu_list/src/provider/serde_dfa.rs index e2424e1e9..9be85fb18 100644 --- a/vendor/icu_list/src/provider/serde_dfa.rs +++ b/vendor/icu_list/src/provider/serde_dfa.rs @@ -3,7 +3,7 @@ // (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ). use alloc::borrow::Cow; -use icu_provider::{yoke, zerofrom}; +use icu_provider::prelude::*; use regex_automata::dfa::sparse::DFA; /// A serde-compatible version of [regex_automata::dfa::sparse::DFA]. This does not implement @@ -33,16 +33,16 @@ impl PartialEq for SerdeDFA<'_> { impl databake::Bake for SerdeDFA<'_> { fn bake(&self, env: &databake::CrateEnv) -> databake::TokenStream { env.insert("icu_list"); - let le_bytes = self.deref().to_bytes_little_endian().as_slice().bake(env); - let be_bytes = self.deref().to_bytes_big_endian().as_slice().bake(env); + let le_bytes = databake::Bake::bake(&self.deref().to_bytes_little_endian().as_slice(), env); + let be_bytes = databake::Bake::bake(&self.deref().to_bytes_big_endian().as_slice(), env); // Safe because of `to_bytes_little_endian`/`to_bytes_big_endian`'s invariant. databake::quote! { unsafe { ::icu_list::provider::SerdeDFA::from_dfa_bytes_unchecked( if cfg!(target_endian = "little") { - &#le_bytes + #le_bytes } else { - &#be_bytes + #be_bytes } ) } @@ -102,7 +102,7 @@ impl<'data> SerdeDFA<'data> { // Verify safety invariant DFA::from_bytes(&dfa_bytes).map_err(|e| { use serde::de::Error; - D::Error::custom(alloc::format!("Invalid DFA bytes: {}", e)) + D::Error::custom(alloc::format!("Invalid DFA bytes: {e}")) })?; Ok(Some(SerdeDFA { @@ -234,9 +234,9 @@ mod test { databake::test_bake!( SerdeDFA, const: unsafe { crate::provider::SerdeDFA::from_dfa_bytes_unchecked(if cfg!(target_endian = "little") { - &[1] // TODO: set this when activating the test + b"foo" // TODO: set this when activating the test } else { - &[2] // TODO: set this when activating the test + b"bar" // TODO: set this when activating the test })}, icu_list ); |