From 46d0a306ad0109d91e12b5d35854745b9e56b70e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 14 Aug 2026 00:05:55 +0000 Subject: [PATCH 1/2] chore(deps): update rust crate icu_casemap to v2.3.0 --- Cargo.lock | 51 ++++++++++++++++++++++++++------------------------- 1 file changed, 26 insertions(+), 25 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a3b85c31..594336fc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -742,9 +742,9 @@ dependencies = [ [[package]] name = "icu_casemap" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "070f98b5b82798fcb93654bf96ed9f40064fc44c86f51a09ea711092cd5cc5be" +checksum = "f2edfd120d8445de853cf53a1abec916f638f933a70a6f4bf8f7e2d7b7f884e9" dependencies = [ "icu_casemap_data", "icu_collections", @@ -758,15 +758,15 @@ dependencies = [ [[package]] name = "icu_casemap_data" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "846b0857ca091204be3c874bc93daaf89d4777e8d2d20b0d3ffe8f671d98014b" +checksum = "059fcda0fc8d33effc6633a8cf0d8a3c17caf7d7c91918fba9918744f501e4e8" [[package]] name = "icu_collections" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2984d1cd16c883d7935b9e07e44071dca8d917fd52ecc02c04d5fa0b5a3f191c" +checksum = "fa68d21081c4a05d5a901a1c62add574c77048b6a1c67be3b50ce0b60d4ca513" dependencies = [ "displaydoc", "potential_utf", @@ -779,9 +779,9 @@ dependencies = [ [[package]] name = "icu_locale_core" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92219b62b3e2b4d88ac5119f8904c10f8f61bf7e95b640d25ba3075e6cac2c29" +checksum = "d56e28588da92eee5c3201a6eff33fabdd49b62269c8938d4ff050ce4d900deb" dependencies = [ "displaydoc", "litemap", @@ -793,10 +793,11 @@ dependencies = [ [[package]] name = "icu_properties" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bee3b67d0ea5c2cca5003417989af8996f8604e34fb9ddf96208a033901e70de" +checksum = "7e7ca276ad3145661a65914e6daf131ca5120cd3dcee8f8f3214b8875184a148" dependencies = [ + "displaydoc", "icu_collections", "icu_locale_core", "icu_properties_data", @@ -808,15 +809,15 @@ dependencies = [ [[package]] name = "icu_properties_data" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e2bbb201e0c04f7b4b3e14382af113e17ba4f63e2c9d2ee626b720cbce54a14" +checksum = "e590f038c1464a96894fd6d10127e90a8be4509f56ff7ecef851b15cee0b7caa" [[package]] name = "icu_provider" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "139c4cf31c8b5f33d7e199446eff9c1e02decfc2f0eec2c8d71f65befa45b421" +checksum = "92a7ed671a6aad807a8651a2e1782a6598fda9ce5185dd8158549e95a91c6428" dependencies = [ "displaydoc", "icu_locale_core", @@ -2246,9 +2247,9 @@ checksum = "639ce8ef6d2ba56be0383a94dd13b92138d58de44c62618303bb798fa92bdc00" [[package]] name = "tinystr" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8323304221c2a851516f22236c5722a72eaa19749016521d6dff0824447d96d" +checksum = "b1e27c91459209c2986af3dcf603a5a74a4368754ce37414f59acc971167f643" dependencies = [ "displaydoc", "serde_core", @@ -2771,9 +2772,9 @@ checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" [[package]] name = "writeable" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ffae5123b2d3fc086436f8834ae3ab053a283cfac8fe0a0b8eaae044768a4c4" +checksum = "3ad82d2a33cdc9674dc7465672f271e096168fcdbe0f799d9e6db8c5892679dc" [[package]] name = "yoke" @@ -2841,9 +2842,9 @@ dependencies = [ [[package]] name = "zerotrie" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f9152d31db0792fa83f70fb2f83148effb5c1f5b8c7686c3459e361d9bc20bf" +checksum = "4ea269c3bd32f0a32c321907a2ae912ba6f4649bb0fc764a15627e99a7095a3f" dependencies = [ "displaydoc", "yoke", @@ -2853,9 +2854,9 @@ dependencies = [ [[package]] name = "zerovec" -version = "0.11.6" +version = "0.11.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90f911cbc359ab6af17377d242225f4d75119aec87ea711a880987b18cd7b239" +checksum = "94b5c6b5976d66c1d703c4fd17d3f5e43c8cedaacf604961b171adc7130896d8" dependencies = [ "serde", "yoke", @@ -2865,13 +2866,13 @@ dependencies = [ [[package]] name = "zerovec-derive" -version = "0.11.3" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "625dc425cab0dca6dc3c3319506e6593dcb08a9f387ea3b284dbd52a92c40555" +checksum = "47402523226a02bfe5230160dc3ccc089aa6f6f19e7fcbb4e6f824bbb1b4aa62" dependencies = [ "proc-macro2", "quote", - "syn 2.0.119", + "syn 3.0.3", ] [[package]] From d4592deacbcbd99ac9a3c39b38f03b60280f587d Mon Sep 17 00:00:00 2001 From: Konstantin Vyatkin Date: Mon, 17 Aug 2026 14:10:36 +0200 Subject: [PATCH 2/2] fix(codegen): retain ICU-only Unicode properties ICU4X 2.3 deprecates six non-UCD property markers and the canonical combining class numeric accessor. ANTLR's Java UnicodeData surface still exposes those properties, while the manifest remains compatible with ICU4X 2.2. Isolate the required compatibility uses behind narrow deprecation allowances so the dependency update passes strict clippy without dropping Unicode-property parity or raising the minimum dependency version. --- .../antlr-rust-codegen/src/grammar/unicode.rs | 33 ++++++++++++++----- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/crates/antlr-rust-codegen/src/grammar/unicode.rs b/crates/antlr-rust-codegen/src/grammar/unicode.rs index 61320976..c2b539c9 100644 --- a/crates/antlr-rust-codegen/src/grammar/unicode.rs +++ b/crates/antlr-rust-codegen/src/grammar/unicode.rs @@ -264,10 +264,6 @@ fn binary_property_ranges(name: &str) -> Option> { props::Math, props::ModifierCombiningMark, props::NoncharacterCodePoint, - props::NfcInert, - props::NfdInert, - props::NfkcInert, - props::NfkdInert, props::PatternSyntax, props::PatternWhiteSpace, props::PrependedConcatenationMark, @@ -276,8 +272,6 @@ fn binary_property_ranges(name: &str) -> Option> { props::Radical, props::RegionalIndicator, props::SoftDotted, - props::SegmentStarter, - props::CaseSensitive, props::SentenceTerminal, props::TerminalPunctuation, props::UnifiedIdeograph, @@ -288,6 +282,20 @@ fn binary_property_ranges(name: &str) -> Option> { props::XidContinue, props::XidStart, ); + icu_binary_property_ranges(name) +} + +#[allow(deprecated)] // ANTLR exposes these ICU-only properties alongside UCD properties. +fn icu_binary_property_ranges(name: &str) -> Option> { + try_binary_properties!( + name, + props::NfcInert, + props::NfdInert, + props::NfkcInert, + props::NfkdInert, + props::SegmentStarter, + props::CaseSensitive, + ); None } @@ -727,9 +735,7 @@ fn decomposition_ccc_ranges(value: &str, lead: bool) -> Option> { if value == "null" { return Some(Vec::new()); } - let combining_class = PropertyParser::::new() - .get_loose(value)? - .to_icu4c_value(); + let combining_class = canonical_combining_class_value(value)?; let (lead_ranges, trail_ranges) = DECOMPOSITION_CCC_RANGES.get_or_init(|| { let mut lead = ValueRangeBuilder::default(); let mut trail = ValueRangeBuilder::default(); @@ -759,6 +765,15 @@ fn decomposition_ccc_ranges(value: &str, lead: bool) -> Option> { ) } +#[allow(deprecated)] // ICU4X 2.2 does not expose CanonicalCombiningClass's numeric field. +fn canonical_combining_class_value(value: &str) -> Option { + Some( + PropertyParser::::new() + .get_loose(value)? + .to_icu4c_value(), + ) +} + const DECOMPOSITION_TYPE_DATA: &[u8] = include_bytes!("unicode_decomposition.bin"); const DECOMPOSITION_TYPE_MAGIC: &[u8; 8] = b"ANTLRDT1"; const DECOMPOSITION_TYPE_SOURCE_HASH: &[u8; 64] =