Skip to content

Commit ffffc20

Browse files
committedNov 6, 2023
Update ICU4X
This updates all ICU4X crates and regenerates rustc_baked_icu_data. Since the new unicode license under which they are licensed does not have an SPDX identifier yet, we define some exceptions. The license has to be reviewed to make sure it is still fine to use here, but I assume that is the case. I also added an exception for rustc_icu_data to the unexplained ignore doctest tidy lint. This is a bit hacky but the whole style.rs in tidy is a mess so I didn't want to touch it more than this small hack.
1 parent 6bf2fb3 commit ffffc20

31 files changed

+286
-898
lines changed
 

‎Cargo.lock

+52-22
Original file line numberDiff line numberDiff line change
@@ -1890,21 +1890,29 @@ dependencies = [
18901890

18911891
[[package]]
18921892
name = "icu_list"
1893-
version = "1.2.0"
1893+
version = "1.3.2"
18941894
source = "registry+https://github.com/rust-lang/crates.io-index"
1895-
checksum = "fd7ba7442d9235b689d4fdce17c452ea229934980fd81ba50cc28275752c9f90"
1895+
checksum = "dc1a44bbed77a7e7b555f9d7dd4b43f75ec1402b438a901d20451943d50cbd90"
18961896
dependencies = [
18971897
"displaydoc",
1898+
"icu_list_data",
1899+
"icu_locid_transform",
18981900
"icu_provider",
18991901
"regex-automata 0.2.0",
19001902
"writeable",
19011903
]
19021904

1905+
[[package]]
1906+
name = "icu_list_data"
1907+
version = "1.3.2"
1908+
source = "registry+https://github.com/rust-lang/crates.io-index"
1909+
checksum = "d3237583f0cb7feafabb567c4492fe9ef1d2d4113f6a8798a923273ea5de996d"
1910+
19031911
[[package]]
19041912
name = "icu_locid"
1905-
version = "1.2.0"
1913+
version = "1.3.2"
19061914
source = "registry+https://github.com/rust-lang/crates.io-index"
1907-
checksum = "3003f85dccfc0e238ff567693248c59153a46f4e6125ba4020b973cef4d1d335"
1915+
checksum = "f284eb342dc49d3e9d9f3b188489d76b5d22dfb1d1a5e0d1941811253bac625c"
19081916
dependencies = [
19091917
"displaydoc",
19101918
"litemap",
@@ -1913,16 +1921,37 @@ dependencies = [
19131921
"zerovec",
19141922
]
19151923

1924+
[[package]]
1925+
name = "icu_locid_transform"
1926+
version = "1.3.2"
1927+
source = "registry+https://github.com/rust-lang/crates.io-index"
1928+
checksum = "6551daf80882d8e68eee186cc19e132d8bde1b1f059a79b93384a5ca0e8fc5e7"
1929+
dependencies = [
1930+
"displaydoc",
1931+
"icu_locid",
1932+
"icu_locid_transform_data",
1933+
"icu_provider",
1934+
"tinystr",
1935+
"zerovec",
1936+
]
1937+
1938+
[[package]]
1939+
name = "icu_locid_transform_data"
1940+
version = "1.3.2"
1941+
source = "registry+https://github.com/rust-lang/crates.io-index"
1942+
checksum = "2a741eba5431f75eb2f1f9022d3cffabcadda6771e54fb4e77c8ba8653e4da44"
1943+
19161944
[[package]]
19171945
name = "icu_provider"
1918-
version = "1.2.0"
1946+
version = "1.3.2"
19191947
source = "registry+https://github.com/rust-lang/crates.io-index"
1920-
checksum = "8dc312a7b6148f7dfe098047ae2494d12d4034f48ade58d4f353000db376e305"
1948+
checksum = "68acdef80034b5e35d8524e9817479d389a4f9774f3f0cbe1bf3884d80fd5934"
19211949
dependencies = [
19221950
"displaydoc",
19231951
"icu_locid",
19241952
"icu_provider_macros",
19251953
"stable_deref_trait",
1954+
"tinystr",
19261955
"writeable",
19271956
"yoke",
19281957
"zerofrom",
@@ -1931,26 +1960,26 @@ dependencies = [
19311960

19321961
[[package]]
19331962
name = "icu_provider_adapters"
1934-
version = "1.2.0"
1963+
version = "1.3.2"
19351964
source = "registry+https://github.com/rust-lang/crates.io-index"
1936-
checksum = "f4ae1e2bd0c41728b77e7c46e9afdec5e2127d1eedacc684724667d50c126bd3"
1965+
checksum = "36b380ef2d3d93b015cd0563d7e0d005cc07f82a5503716dbc191798d0079e1d"
19371966
dependencies = [
19381967
"icu_locid",
1968+
"icu_locid_transform",
19391969
"icu_provider",
19401970
"tinystr",
1941-
"yoke",
19421971
"zerovec",
19431972
]
19441973

19451974
[[package]]
19461975
name = "icu_provider_macros"
1947-
version = "1.2.0"
1976+
version = "1.3.2"
19481977
source = "registry+https://github.com/rust-lang/crates.io-index"
1949-
checksum = "dd8b728b9421e93eff1d9f8681101b78fa745e0748c95c655c83f337044a7e10"
1978+
checksum = "2060258edfcfe32ca7058849bf0f146cb5c59aadbedf480333c0d0002f97bc99"
19501979
dependencies = [
19511980
"proc-macro2",
19521981
"quote",
1953-
"syn 1.0.109",
1982+
"syn 2.0.29",
19541983
]
19551984

19561985
[[package]]
@@ -2310,9 +2339,9 @@ checksum = "da2479e8c062e40bf0066ffa0bc823de0a9368974af99c9f6df941d2c231e03f"
23102339

23112340
[[package]]
23122341
name = "litemap"
2313-
version = "0.7.0"
2342+
version = "0.7.1"
23142343
source = "registry+https://github.com/rust-lang/crates.io-index"
2315-
checksum = "3a04a5b2b6f54acba899926491d0a6c59d98012938ca2ab5befb281c034e8f94"
2344+
checksum = "77a1a2647d5b7134127971a6de0d533c49de2159167e7f259c427195f87168a1"
23162345

23172346
[[package]]
23182347
name = "lld-wrapper"
@@ -3558,6 +3587,7 @@ version = "0.0.0"
35583587
dependencies = [
35593588
"icu_list",
35603589
"icu_locid",
3590+
"icu_locid_transform",
35613591
"icu_provider",
35623592
"icu_provider_adapters",
35633593
"zerovec",
@@ -5498,9 +5528,9 @@ dependencies = [
54985528

54995529
[[package]]
55005530
name = "tinystr"
5501-
version = "0.7.1"
5531+
version = "0.7.4"
55025532
source = "registry+https://github.com/rust-lang/crates.io-index"
5503-
checksum = "7ac3f5b6856e931e15e07b478e98c8045239829a65f9156d4fa7e7788197a5ef"
5533+
checksum = "d5d0e245e80bdc9b4e5356fc45a72184abbc3861992603f515270e9340f5a219"
55045534
dependencies = [
55055535
"displaydoc",
55065536
"zerovec",
@@ -6296,9 +6326,9 @@ dependencies = [
62966326

62976327
[[package]]
62986328
name = "writeable"
6299-
version = "0.5.2"
6329+
version = "0.5.3"
63006330
source = "registry+https://github.com/rust-lang/crates.io-index"
6301-
checksum = "60e49e42bdb1d5dc76f4cd78102f8f0714d32edfa3efb82286eb0f0b1fc0da0f"
6331+
checksum = "c0af0c3d13faebf8dda0b5256fa7096a2d5ccb662f7b9f54a40fe201077ab1c2"
63026332

63036333
[[package]]
63046334
name = "xattr"
@@ -6358,9 +6388,9 @@ dependencies = [
63586388

63596389
[[package]]
63606390
name = "yoke"
6361-
version = "0.7.1"
6391+
version = "0.7.2"
63626392
source = "registry+https://github.com/rust-lang/crates.io-index"
6363-
checksum = "1848075a23a28f9773498ee9a0f2cf58fcbad4f8c0ccf84a210ab33c6ae495de"
6393+
checksum = "61e38c508604d6bbbd292dadb3c02559aa7fff6b654a078a36217cad871636e4"
63646394
dependencies = [
63656395
"serde",
63666396
"stable_deref_trait",
@@ -6403,9 +6433,9 @@ dependencies = [
64036433

64046434
[[package]]
64056435
name = "zerovec"
6406-
version = "0.9.4"
6436+
version = "0.10.0"
64076437
source = "registry+https://github.com/rust-lang/crates.io-index"
6408-
checksum = "198f54134cd865f437820aa3b43d0ad518af4e68ee161b444cdd15d8e567c8ea"
6438+
checksum = "1194130c5b155bf8ae50ab16c86ab758cd695cf9ad176d2f870b744cbdbb572e"
64096439
dependencies = [
64106440
"yoke",
64116441
"zerofrom",

‎compiler/rustc_baked_icu_data/Cargo.toml

+2-1
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,10 @@ edition = "2021"
77
# tidy-alphabetical-start
88
icu_list = "1.2"
99
icu_locid = "1.2"
10+
icu_locid_transform = "1.3.2"
1011
icu_provider = "1.2"
1112
icu_provider_adapters = "1.2"
12-
zerovec = "0.9.4"
13+
zerovec = "0.10.0"
1314
# tidy-alphabetical-end
1415

1516
[features]

‎compiler/rustc_baked_icu_data/src/data/fallback/likelysubtags_v1/mod.rs

-6
This file was deleted.

‎compiler/rustc_baked_icu_data/src/data/fallback/likelysubtags_v1/und.rs.data

-66
This file was deleted.

‎compiler/rustc_baked_icu_data/src/data/fallback/mod.rs

-4
This file was deleted.

‎compiler/rustc_baked_icu_data/src/data/fallback/parents_v1/mod.rs

-6
This file was deleted.

‎compiler/rustc_baked_icu_data/src/data/fallback/parents_v1/und.rs.data

-13
This file was deleted.

‎compiler/rustc_baked_icu_data/src/data/fallback/supplement/co_v1/mod.rs

-6
This file was deleted.

‎compiler/rustc_baked_icu_data/src/data/fallback/supplement/co_v1/und.rs.data

-22
This file was deleted.

‎compiler/rustc_baked_icu_data/src/data/fallback/supplement/mod.rs

-2
This file was deleted.

‎compiler/rustc_baked_icu_data/src/data/list/and_v1/en.rs.data

-50
This file was deleted.

‎compiler/rustc_baked_icu_data/src/data/list/and_v1/es.rs.data

-116
This file was deleted.

‎compiler/rustc_baked_icu_data/src/data/list/and_v1/fr.rs.data

-50
This file was deleted.

‎compiler/rustc_baked_icu_data/src/data/list/and_v1/it.rs.data

-50
This file was deleted.

‎compiler/rustc_baked_icu_data/src/data/list/and_v1/ja.rs.data

-50
This file was deleted.

‎compiler/rustc_baked_icu_data/src/data/list/and_v1/mod.rs

-22
This file was deleted.

‎compiler/rustc_baked_icu_data/src/data/list/and_v1/pt.rs.data

-50
This file was deleted.

‎compiler/rustc_baked_icu_data/src/data/list/and_v1/ru.rs.data

-50
This file was deleted.

‎compiler/rustc_baked_icu_data/src/data/list/and_v1/tr.rs.data

-50
This file was deleted.

‎compiler/rustc_baked_icu_data/src/data/list/and_v1/und.rs.data

-50
This file was deleted.

‎compiler/rustc_baked_icu_data/src/data/list/and_v1/zh-Hant.rs.data

-50
This file was deleted.

‎compiler/rustc_baked_icu_data/src/data/list/and_v1/zh.rs.data

-50
This file was deleted.

‎compiler/rustc_baked_icu_data/src/data/list/mod.rs

-2
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
// @generated
2+
/// Marks a type as a data provider. You can then use macros like
3+
/// `impl_core_helloworld_v1` to add implementations.
4+
///
5+
/// ```ignore
6+
/// struct MyProvider;
7+
/// const _: () = {
8+
/// include!("path/to/generated/macros.rs");
9+
/// make_provider!(MyProvider);
10+
/// impl_core_helloworld_v1!(MyProvider);
11+
/// }
12+
/// ```
13+
#[doc(hidden)]
14+
#[macro_export]
15+
macro_rules! __make_provider {
16+
($ name : ty) => {
17+
#[clippy::msrv = "1.66"]
18+
impl $name {
19+
#[doc(hidden)]
20+
#[allow(dead_code)]
21+
pub const MUST_USE_MAKE_PROVIDER_MACRO: () = ();
22+
}
23+
};
24+
}
25+
#[doc(inline)]
26+
pub use __make_provider as make_provider;
27+
#[macro_use]
28+
#[path = "macros/fallback_likelysubtags_v1.data.rs"]
29+
mod fallback_likelysubtags_v1;
30+
#[doc(inline)]
31+
pub use __impl_fallback_likelysubtags_v1 as impl_fallback_likelysubtags_v1;
32+
#[macro_use]
33+
#[path = "macros/fallback_parents_v1.data.rs"]
34+
mod fallback_parents_v1;
35+
#[doc(inline)]
36+
pub use __impl_fallback_parents_v1 as impl_fallback_parents_v1;
37+
#[macro_use]
38+
#[path = "macros/fallback_supplement_co_v1.data.rs"]
39+
mod fallback_supplement_co_v1;
40+
#[doc(inline)]
41+
pub use __impl_fallback_supplement_co_v1 as impl_fallback_supplement_co_v1;
42+
#[macro_use]
43+
#[path = "macros/list_and_v1.data.rs"]
44+
mod list_and_v1;
45+
#[doc(inline)]
46+
pub use __impl_list_and_v1 as impl_list_and_v1;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
// @generated
2+
/// Implement `DataProvider<LocaleFallbackLikelySubtagsV1Marker>` on the given struct using the data
3+
/// hardcoded in this file. This allows the struct to be used with
4+
/// `icu`'s `_unstable` constructors.
5+
#[doc(hidden)]
6+
#[macro_export]
7+
macro_rules! __impl_fallback_likelysubtags_v1 {
8+
($ provider : ty) => {
9+
#[clippy::msrv = "1.66"]
10+
const _: () = <$provider>::MUST_USE_MAKE_PROVIDER_MACRO;
11+
#[clippy::msrv = "1.66"]
12+
impl $provider {
13+
#[doc(hidden)]
14+
pub const SINGLETON_FALLBACK_LIKELYSUBTAGS_V1: &'static <icu_locid_transform::provider::LocaleFallbackLikelySubtagsV1Marker as icu_provider::DataMarker>::Yokeable = &icu_locid_transform::provider::LocaleFallbackLikelySubtagsV1 {
15+
l2s: unsafe {
16+
#[allow(unused_unsafe)]
17+
zerovec::ZeroMap::from_parts_unchecked(unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"am\0ar\0as\0be\0bg\0bgcbhobn\0brxchrcv\0doiel\0fa\0gu\0he\0hi\0hy\0ja\0ka\0kk\0km\0kn\0ko\0kokks\0ky\0lo\0maimk\0ml\0mn\0mnimr\0my\0ne\0or\0pa\0ps\0rajru\0sa\0satsd\0si\0sr\0ta\0te\0tg\0th\0ti\0tt\0uk\0ur\0yuezh\0") }, unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"EthiArabBengCyrlCyrlDevaDevaBengDevaCherCyrlDevaGrekArabGujrHebrDevaArmnJpanGeorCyrlKhmrKndaKoreDevaArabCyrlLaooDevaCyrlMlymCyrlBengDevaMymrDevaOryaGuruArabDevaCyrlDevaOlckArabSinhCyrlTamlTeluCyrlThaiEthiCyrlCyrlArabHantHans") })
18+
},
19+
lr2s: unsafe {
20+
#[allow(unused_unsafe)]
21+
zerovec::ZeroMap2d::from_parts_unchecked(unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"az\0ha\0kk\0ky\0mn\0ms\0pa\0sd\0sr\0tg\0uz\0yuezh\0") }, unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\x03\0\0\0\x05\0\0\0\t\0\0\0\x0B\0\0\0\x0C\0\0\0\r\0\0\0\x0E\0\0\0\x0F\0\0\0\x13\0\0\0\x14\0\0\0\x16\0\0\0\x17\0\0\0&\0\0\0") }, unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"IQ\0IR\0RU\0CM\0SD\0AF\0CN\0IR\0MN\0CN\0TR\0CN\0CC\0PK\0IN\0ME\0RO\0RU\0TR\0PK\0AF\0CN\0CN\0AU\0BN\0GB\0GF\0HK\0ID\0MO\0PA\0PF\0PH\0SR\0TH\0TW\0US\0VN\0") }, unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"ArabArabCyrlArabArabArabArabArabArabArabLatnMongArabArabDevaLatnLatnLatnLatnArabArabCyrlHansHantHantHantHantHantHantHantHantHantHantHantHantHantHantHant") })
22+
},
23+
l2r: unsafe {
24+
#[allow(unused_unsafe)]
25+
zerovec::ZeroMap::from_parts_unchecked(unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"af\0am\0ar\0as\0astaz\0be\0bg\0bgcbhobn\0br\0brxbs\0ca\0cebchrcs\0cv\0cy\0da\0de\0doidsbel\0en\0es\0et\0eu\0fa\0ff\0fi\0filfo\0fr\0ga\0gd\0gl\0gu\0ha\0he\0hi\0hr\0hsbhu\0hy\0ia\0id\0ig\0is\0it\0ja\0jv\0ka\0keakgpkk\0km\0kn\0ko\0kokks\0ky\0lo\0lt\0lv\0maimi\0mk\0ml\0mn\0mnimr\0ms\0my\0ne\0nl\0nn\0no\0or\0pa\0pcmpl\0ps\0pt\0qu\0rajrm\0ro\0ru\0sa\0satsc\0sd\0si\0sk\0sl\0so\0sq\0sr\0su\0sv\0sw\0ta\0te\0tg\0th\0ti\0tk\0to\0tr\0tt\0uk\0ur\0uz\0vi\0wo\0xh\0yo\0yrlyuezh\0zu\0") }, unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"ZA\0ET\0EG\0IN\0ES\0AZ\0BY\0BG\0IN\0IN\0BD\0FR\0IN\0BA\0ES\0PH\0US\0CZ\0RU\0GB\0DK\0DE\0IN\0DE\0GR\0US\0ES\0EE\0ES\0IR\0SN\0FI\0PH\0FO\0FR\0IE\0GB\0ES\0IN\0NG\0IL\0IN\0HR\0DE\0HU\0AM\x00001ID\0NG\0IS\0IT\0JP\0ID\0GE\0CV\0BR\0KZ\0KH\0IN\0KR\0IN\0IN\0KG\0LA\0LT\0LV\0IN\0NZ\0MK\0IN\0MN\0IN\0IN\0MY\0MM\0NP\0NL\0NO\0NO\0IN\0IN\0NG\0PL\0AF\0BR\0PE\0IN\0CH\0RO\0RU\0IN\0IN\0IT\0PK\0LK\0SK\0SI\0SO\0AL\0RS\0ID\0SE\0TZ\0IN\0IN\0TJ\0TH\0ET\0TM\0TO\0TR\0RU\0UA\0PK\0UZ\0VN\0SN\0ZA\0NG\0BR\0HK\0CN\0ZA\0") })
26+
},
27+
ls2r: unsafe {
28+
#[allow(unused_unsafe)]
29+
zerovec::ZeroMap2d::from_parts_unchecked(unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"az\0en\0ff\0kk\0ky\0mn\0pa\0sd\0tg\0uz\0yuezh\0") }, unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\x01\0\0\0\x02\0\0\0\x03\0\0\0\x04\0\0\0\x06\0\0\0\x07\0\0\0\x08\0\0\0\x0B\0\0\0\x0C\0\0\0\r\0\0\0\x0E\0\0\0\x11\0\0\0") }, unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"ArabShawAdlmArabArabLatnMongArabDevaKhojSindArabArabHansBopoHanbHant") }, unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"IR\0GB\0GN\0CN\0CN\0TR\0CN\0PK\0IN\0IN\0IN\0PK\0AF\0CN\0TW\0TW\0TW\0") })
30+
},
31+
};
32+
}
33+
#[clippy::msrv = "1.66"]
34+
impl icu_provider::DataProvider<icu_locid_transform::provider::LocaleFallbackLikelySubtagsV1Marker> for $provider {
35+
fn load(&self, req: icu_provider::DataRequest) -> Result<icu_provider::DataResponse<icu_locid_transform::provider::LocaleFallbackLikelySubtagsV1Marker>, icu_provider::DataError> {
36+
if req.locale.is_empty() { Ok(icu_provider::DataResponse { payload: Some(icu_provider::DataPayload::from_static_ref(Self::SINGLETON_FALLBACK_LIKELYSUBTAGS_V1)), metadata: Default::default() }) } else { Err(icu_provider::DataErrorKind::ExtraneousLocale.with_req(<icu_locid_transform::provider::LocaleFallbackLikelySubtagsV1Marker as icu_provider::KeyedDataMarker>::KEY, req)) }
37+
}
38+
}
39+
};
40+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
// @generated
2+
/// Implement `DataProvider<LocaleFallbackParentsV1Marker>` on the given struct using the data
3+
/// hardcoded in this file. This allows the struct to be used with
4+
/// `icu`'s `_unstable` constructors.
5+
#[doc(hidden)]
6+
#[macro_export]
7+
macro_rules! __impl_fallback_parents_v1 {
8+
($ provider : ty) => {
9+
#[clippy::msrv = "1.66"]
10+
const _: () = <$provider>::MUST_USE_MAKE_PROVIDER_MACRO;
11+
#[clippy::msrv = "1.66"]
12+
impl $provider {
13+
#[doc(hidden)]
14+
pub const SINGLETON_FALLBACK_PARENTS_V1: &'static <icu_locid_transform::provider::LocaleFallbackParentsV1Marker as icu_provider::DataMarker>::Yokeable = &icu_locid_transform::provider::LocaleFallbackParentsV1 {
15+
parents: unsafe {
16+
#[allow(unused_unsafe)]
17+
zerovec::ZeroMap::from_parts_unchecked(unsafe { zerovec::VarZeroVec::from_bytes_unchecked(b"\x84\0\0\0\0\0\x06\0\x0B\0\x10\0\x15\0\x1A\0\x1F\0$\0)\0.\x003\08\0=\0B\0G\0L\0Q\0V\0[\0`\0e\0j\0o\0t\0y\0~\0\x83\0\x88\0\x8D\0\x92\0\x97\0\x9C\0\xA1\0\xA6\0\xAB\0\xB0\0\xB5\0\xBA\0\xBF\0\xC4\0\xC9\0\xCE\0\xD3\0\xD8\0\xDD\0\xE2\0\xE7\0\xEC\0\xF1\0\xF6\0\xFB\0\0\x01\x05\x01\n\x01\x0F\x01\x14\x01\x19\x01\x1E\x01#\x01(\x01-\x012\x017\x01<\x01A\x01F\x01K\x01P\x01U\x01Z\x01_\x01d\x01i\x01n\x01s\x01x\x01}\x01\x82\x01\x87\x01\x8C\x01\x91\x01\x96\x01\x9B\x01\xA0\x01\xA5\x01\xAA\x01\xAF\x01\xB4\x01\xB9\x01\xBE\x01\xC3\x01\xC8\x01\xCD\x01\xD2\x01\xD7\x01\xDC\x01\xE1\x01\xE6\x01\xEB\x01\xF0\x01\xF5\x01\xFA\x01\xFF\x01\x04\x02\t\x02\x0E\x02\x13\x02\x18\x02\x1D\x02\"\x02'\x02,\x021\x026\x02;\x02@\x02G\x02I\x02K\x02M\x02R\x02W\x02\\\x02a\x02f\x02k\x02p\x02u\x02z\x02\x7F\x02\x84\x02\x89\x02en-150en-AGen-AIen-ATen-AUen-BBen-BEen-BMen-BSen-BWen-BZen-CCen-CHen-CKen-CMen-CXen-CYen-DEen-DGen-DKen-DMen-ERen-FIen-FJen-FKen-FMen-GBen-GDen-GGen-GHen-GIen-GMen-GYen-HKen-IEen-ILen-IMen-INen-IOen-JEen-JMen-KEen-KIen-KNen-KYen-LCen-LRen-LSen-MGen-MOen-MSen-MTen-MUen-MVen-MWen-MYen-NAen-NFen-NGen-NLen-NRen-NUen-NZen-PGen-PKen-PNen-PWen-RWen-SBen-SCen-SDen-SEen-SGen-SHen-SIen-SLen-SSen-SXen-SZen-TCen-TKen-TOen-TTen-TVen-TZen-UGen-VCen-VGen-VUen-WSen-ZAen-ZMen-ZWes-ARes-BOes-BRes-BZes-CLes-COes-CRes-CUes-DOes-ECes-GTes-HNes-MXes-NIes-PAes-PEes-PRes-PYes-SVes-USes-UYes-VEhi-Latnhtnbnnno-NOpt-AOpt-CHpt-CVpt-FRpt-GQpt-GWpt-LUpt-MOpt-MZpt-STpt-TLzh-Hant-MO") }, unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01150en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01150en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01150en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01150en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01150en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01150en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01150en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01150en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01150en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419en\0\0\0\0\0\0\x01IN\0fr\0\0\0\0\0\0\x01HT\0no\0\0\0\0\0\0\0\0\0\0no\0\0\0\0\0\0\0\0\0\0no\0\0\0\0\0\0\0\0\0\0pt\0\0\0\0\0\0\x01PT\0pt\0\0\0\0\0\0\x01PT\0pt\0\0\0\0\0\0\x01PT\0pt\0\0\0\0\0\0\x01PT\0pt\0\0\0\0\0\0\x01PT\0pt\0\0\0\0\0\0\x01PT\0pt\0\0\0\0\0\0\x01PT\0pt\0\0\0\0\0\0\x01PT\0pt\0\0\0\0\0\0\x01PT\0pt\0\0\0\0\0\0\x01PT\0pt\0\0\0\0\0\0\x01PT\0zh\0\x01Hant\x01HK\0") })
18+
},
19+
};
20+
}
21+
#[clippy::msrv = "1.66"]
22+
impl icu_provider::DataProvider<icu_locid_transform::provider::LocaleFallbackParentsV1Marker> for $provider {
23+
fn load(&self, req: icu_provider::DataRequest) -> Result<icu_provider::DataResponse<icu_locid_transform::provider::LocaleFallbackParentsV1Marker>, icu_provider::DataError> {
24+
if req.locale.is_empty() { Ok(icu_provider::DataResponse { payload: Some(icu_provider::DataPayload::from_static_ref(Self::SINGLETON_FALLBACK_PARENTS_V1)), metadata: Default::default() }) } else { Err(icu_provider::DataErrorKind::ExtraneousLocale.with_req(<icu_locid_transform::provider::LocaleFallbackParentsV1Marker as icu_provider::KeyedDataMarker>::KEY, req)) }
25+
}
26+
}
27+
};
28+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
// @generated
2+
/// Implement `DataProvider<CollationFallbackSupplementV1Marker>` on the given struct using the data
3+
/// hardcoded in this file. This allows the struct to be used with
4+
/// `icu`'s `_unstable` constructors.
5+
#[doc(hidden)]
6+
#[macro_export]
7+
macro_rules! __impl_fallback_supplement_co_v1 {
8+
($ provider : ty) => {
9+
#[clippy::msrv = "1.66"]
10+
const _: () = <$provider>::MUST_USE_MAKE_PROVIDER_MACRO;
11+
#[clippy::msrv = "1.66"]
12+
impl $provider {
13+
#[doc(hidden)]
14+
pub const SINGLETON_FALLBACK_SUPPLEMENT_CO_V1: &'static <icu_locid_transform::provider::CollationFallbackSupplementV1Marker as icu_provider::DataMarker>::Yokeable = &icu_locid_transform::provider::LocaleFallbackSupplementV1 {
15+
parents: unsafe {
16+
#[allow(unused_unsafe)]
17+
zerovec::ZeroMap::from_parts_unchecked(unsafe { zerovec::VarZeroVec::from_bytes_unchecked(b"\x01\0\0\0\0\0yue") }, unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"zh\0\x01Hant\0\0\0\0") })
18+
},
19+
unicode_extension_defaults: unsafe {
20+
#[allow(unused_unsafe)]
21+
zerovec::ZeroMap2d::from_parts_unchecked(unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"co") }, unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\x02\0\0\0") }, unsafe { zerovec::VarZeroVec::from_bytes_unchecked(b"\x02\0\0\0\0\0\x02\0zhzh-Hant") }, unsafe { zerovec::VarZeroVec::from_bytes_unchecked(b"\x02\0\0\0\0\0\x06\0pinyinstroke") })
22+
},
23+
};
24+
}
25+
#[clippy::msrv = "1.66"]
26+
impl icu_provider::DataProvider<icu_locid_transform::provider::CollationFallbackSupplementV1Marker> for $provider {
27+
fn load(&self, req: icu_provider::DataRequest) -> Result<icu_provider::DataResponse<icu_locid_transform::provider::CollationFallbackSupplementV1Marker>, icu_provider::DataError> {
28+
if req.locale.is_empty() { Ok(icu_provider::DataResponse { payload: Some(icu_provider::DataPayload::from_static_ref(Self::SINGLETON_FALLBACK_SUPPLEMENT_CO_V1)), metadata: Default::default() }) } else { Err(icu_provider::DataErrorKind::ExtraneousLocale.with_req(<icu_locid_transform::provider::CollationFallbackSupplementV1Marker as icu_provider::KeyedDataMarker>::KEY, req)) }
29+
}
30+
}
31+
};
32+
}

‎compiler/rustc_baked_icu_data/src/data/macros/list_and_v1.data.rs

+35
Large diffs are not rendered by default.
+17-108
Original file line numberDiff line numberDiff line change
@@ -1,122 +1,31 @@
11
// @generated
2-
#[clippy::msrv = "1.61"]
3-
mod fallback;
4-
#[clippy::msrv = "1.61"]
5-
mod list;
6-
#[clippy::msrv = "1.61"]
7-
use icu_provider::prelude::*;
8-
/// Implement [`DataProvider<M>`] on the given struct using the data
9-
/// hardcoded in this module. This allows the struct to be used with
10-
/// `icu`'s `_unstable` constructors.
11-
///
12-
/// This macro can only be called from its definition-site, i.e. right
13-
/// after `include!`-ing the generated module.
14-
///
15-
/// ```compile_fail
16-
/// struct MyDataProvider;
17-
/// include!("/path/to/generated/mod.rs");
18-
/// impl_data_provider(MyDataProvider);
19-
/// ```
20-
#[allow(unused_macros)]
2+
include!("macros.rs");
213
macro_rules! impl_data_provider {
22-
($ provider : path) => {
23-
#[clippy::msrv = "1.61"]
24-
impl DataProvider<::icu_list::provider::AndListV1Marker> for $provider {
25-
fn load(&self, req: DataRequest) -> Result<DataResponse<::icu_list::provider::AndListV1Marker>, DataError> {
26-
list::and_v1::lookup(&req.locale)
27-
.map(zerofrom::ZeroFrom::zero_from)
28-
.map(DataPayload::from_owned)
29-
.map(|payload| DataResponse { metadata: Default::default(), payload: Some(payload) })
30-
.ok_or_else(|| DataErrorKind::MissingLocale.with_req(::icu_list::provider::AndListV1Marker::KEY, req))
31-
}
32-
}
33-
#[clippy::msrv = "1.61"]
34-
impl DataProvider<::icu_provider_adapters::fallback::provider::CollationFallbackSupplementV1Marker> for $provider {
35-
fn load(
36-
&self,
37-
req: DataRequest,
38-
) -> Result<DataResponse<::icu_provider_adapters::fallback::provider::CollationFallbackSupplementV1Marker>, DataError> {
39-
fallback::supplement::co_v1::lookup(&req.locale)
40-
.map(zerofrom::ZeroFrom::zero_from)
41-
.map(DataPayload::from_owned)
42-
.map(|payload| DataResponse { metadata: Default::default(), payload: Some(payload) })
43-
.ok_or_else(|| {
44-
DataErrorKind::MissingLocale
45-
.with_req(::icu_provider_adapters::fallback::provider::CollationFallbackSupplementV1Marker::KEY, req)
46-
})
47-
}
48-
}
49-
#[clippy::msrv = "1.61"]
50-
impl DataProvider<::icu_provider_adapters::fallback::provider::LocaleFallbackLikelySubtagsV1Marker> for $provider {
51-
fn load(
52-
&self,
53-
req: DataRequest,
54-
) -> Result<DataResponse<::icu_provider_adapters::fallback::provider::LocaleFallbackLikelySubtagsV1Marker>, DataError> {
55-
fallback::likelysubtags_v1::lookup(&req.locale)
56-
.map(zerofrom::ZeroFrom::zero_from)
57-
.map(DataPayload::from_owned)
58-
.map(|payload| DataResponse { metadata: Default::default(), payload: Some(payload) })
59-
.ok_or_else(|| {
60-
DataErrorKind::MissingLocale
61-
.with_req(::icu_provider_adapters::fallback::provider::LocaleFallbackLikelySubtagsV1Marker::KEY, req)
62-
})
63-
}
64-
}
65-
#[clippy::msrv = "1.61"]
66-
impl DataProvider<::icu_provider_adapters::fallback::provider::LocaleFallbackParentsV1Marker> for $provider {
67-
fn load(
68-
&self,
69-
req: DataRequest,
70-
) -> Result<DataResponse<::icu_provider_adapters::fallback::provider::LocaleFallbackParentsV1Marker>, DataError> {
71-
fallback::parents_v1::lookup(&req.locale)
72-
.map(zerofrom::ZeroFrom::zero_from)
73-
.map(DataPayload::from_owned)
74-
.map(|payload| DataResponse { metadata: Default::default(), payload: Some(payload) })
75-
.ok_or_else(|| {
76-
DataErrorKind::MissingLocale.with_req(::icu_provider_adapters::fallback::provider::LocaleFallbackParentsV1Marker::KEY, req)
77-
})
78-
}
79-
}
4+
($ provider : ty) => {
5+
make_provider!($provider);
6+
impl_fallback_likelysubtags_v1!($provider);
7+
impl_fallback_parents_v1!($provider);
8+
impl_fallback_supplement_co_v1!($provider);
9+
impl_list_and_v1!($provider);
8010
};
8111
}
82-
/// Implement [`AnyProvider`] on the given struct using the data
83-
/// hardcoded in this module. This allows the struct to be used with
84-
/// `icu`'s `_any` constructors.
85-
///
86-
/// This macro can only be called from its definition-site, i.e. right
87-
/// after `include!`-ing the generated module.
88-
///
89-
/// ```compile_fail
90-
/// struct MyAnyProvider;
91-
/// include!("/path/to/generated/mod.rs");
92-
/// impl_any_provider(MyAnyProvider);
93-
/// ```
9412
#[allow(unused_macros)]
9513
macro_rules! impl_any_provider {
96-
($ provider : path) => {
97-
#[clippy::msrv = "1.61"]
98-
impl AnyProvider for $provider {
99-
fn load_any(&self, key: DataKey, req: DataRequest) -> Result<AnyResponse, DataError> {
100-
const ANDLISTV1MARKER: ::icu_provider::DataKeyHash = ::icu_list::provider::AndListV1Marker::KEY.hashed();
101-
const COLLATIONFALLBACKSUPPLEMENTV1MARKER: ::icu_provider::DataKeyHash =
102-
::icu_provider_adapters::fallback::provider::CollationFallbackSupplementV1Marker::KEY.hashed();
103-
const LOCALEFALLBACKLIKELYSUBTAGSV1MARKER: ::icu_provider::DataKeyHash =
104-
::icu_provider_adapters::fallback::provider::LocaleFallbackLikelySubtagsV1Marker::KEY.hashed();
105-
const LOCALEFALLBACKPARENTSV1MARKER: ::icu_provider::DataKeyHash =
106-
::icu_provider_adapters::fallback::provider::LocaleFallbackParentsV1Marker::KEY.hashed();
14+
($ provider : ty) => {
15+
#[clippy::msrv = "1.66"]
16+
impl icu_provider::AnyProvider for $provider {
17+
fn load_any(&self, key: icu_provider::DataKey, req: icu_provider::DataRequest) -> Result<icu_provider::AnyResponse, icu_provider::DataError> {
10718
match key.hashed() {
108-
ANDLISTV1MARKER => list::and_v1::lookup(&req.locale).map(AnyPayload::from_static_ref),
109-
COLLATIONFALLBACKSUPPLEMENTV1MARKER => fallback::supplement::co_v1::lookup(&req.locale).map(AnyPayload::from_static_ref),
110-
LOCALEFALLBACKLIKELYSUBTAGSV1MARKER => fallback::likelysubtags_v1::lookup(&req.locale).map(AnyPayload::from_static_ref),
111-
LOCALEFALLBACKPARENTSV1MARKER => fallback::parents_v1::lookup(&req.locale).map(AnyPayload::from_static_ref),
112-
_ => return Err(DataErrorKind::MissingDataKey.with_req(key, req)),
19+
h if h == <icu_locid_transform::provider::LocaleFallbackLikelySubtagsV1Marker as icu_provider::KeyedDataMarker>::KEY.hashed() => icu_provider::DataProvider::<icu_locid_transform::provider::LocaleFallbackLikelySubtagsV1Marker>::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response),
20+
h if h == <icu_locid_transform::provider::LocaleFallbackParentsV1Marker as icu_provider::KeyedDataMarker>::KEY.hashed() => icu_provider::DataProvider::<icu_locid_transform::provider::LocaleFallbackParentsV1Marker>::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response),
21+
h if h == <icu_locid_transform::provider::CollationFallbackSupplementV1Marker as icu_provider::KeyedDataMarker>::KEY.hashed() => icu_provider::DataProvider::<icu_locid_transform::provider::CollationFallbackSupplementV1Marker>::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response),
22+
h if h == <icu_list::provider::AndListV1Marker as icu_provider::KeyedDataMarker>::KEY.hashed() => icu_provider::DataProvider::<icu_list::provider::AndListV1Marker>::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response),
23+
_ => Err(icu_provider::DataErrorKind::MissingDataKey.with_req(key, req)),
11324
}
114-
.map(|payload| AnyResponse { payload: Some(payload), metadata: Default::default() })
115-
.ok_or_else(|| DataErrorKind::MissingLocale.with_req(key, req))
11625
}
11726
}
11827
};
11928
}
120-
#[clippy::msrv = "1.61"]
29+
#[clippy::msrv = "1.66"]
12130
pub struct BakedDataProvider;
12231
impl_data_provider!(BakedDataProvider);

‎src/tools/tidy/src/deps.rs

+29
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,10 @@ const PERMITTED_RUSTC_DEPENDENCIES: &[&str] = &[
247247
"hashbrown",
248248
"hermit-abi",
249249
"icu_list",
250+
"icu_list_data",
250251
"icu_locid",
252+
"icu_locid_transform",
253+
"icu_locid_transform_data",
251254
"icu_provider",
252255
"icu_provider_adapters",
253256
"icu_provider_macros",
@@ -398,6 +401,28 @@ const PERMITTED_RUSTC_DEPENDENCIES: &[&str] = &[
398401
// tidy-alphabetical-end
399402
];
400403

404+
// These crates come from ICU4X and are licensed under the unicode license.
405+
// It currently doesn't have an SPDX identifier, so they cannot put one there.
406+
// See https://github.com/unicode-org/icu4x/pull/3875
407+
// FIXME: This should be removed once ICU4X crates update.
408+
const ICU4X_UNICODE_LICENSE_DEPENDENCIES: &[&str] = &[
409+
// tidy-alphabetical-start
410+
"icu_list",
411+
"icu_list_data",
412+
"icu_locid",
413+
"icu_locid_transform",
414+
"icu_locid_transform_data",
415+
"icu_provider",
416+
"icu_provider_adapters",
417+
"icu_provider_macros",
418+
"litemap",
419+
"tinystr",
420+
"writeable",
421+
"yoke",
422+
"zerovec",
423+
// tidy-alphabetical-end
424+
];
425+
401426
const PERMITTED_CRANELIFT_DEPENDENCIES: &[&str] = &[
402427
// tidy-alphabetical-start
403428
"ahash",
@@ -590,6 +615,10 @@ fn check_license_exceptions(metadata: &Metadata, exceptions: &[(&str, &str)], ba
590615
let license = match &pkg.license {
591616
Some(license) => license,
592617
None => {
618+
if ICU4X_UNICODE_LICENSE_DEPENDENCIES.contains(&pkg.name.as_str()) {
619+
// See the comment on ICU4X_UNICODE_LICENSE_DEPENDENCIES.
620+
continue;
621+
}
593622
tidy_error!(bad, "dependency `{}` does not define a license expression", pkg.id);
594623
continue;
595624
}

‎src/tools/tidy/src/style.rs

+5-2
Original file line numberDiff line numberDiff line change
@@ -427,9 +427,12 @@ pub fn check(path: &Path, bad: &mut bool) {
427427
"copyright notices attributed to the Rust Project Developers are deprecated"
428428
);
429429
}
430-
if is_unexplained_ignore(&extension, line) {
431-
err(UNEXPLAINED_IGNORE_DOCTEST_INFO);
430+
if !file.components().any(|c| c.as_os_str() == "rustc_baked_icu_data") {
431+
if is_unexplained_ignore(&extension, line) {
432+
err(UNEXPLAINED_IGNORE_DOCTEST_INFO);
433+
}
432434
}
435+
433436
if filename.ends_with(".cpp") && line.contains("llvm_unreachable") {
434437
err(LLVM_UNREACHABLE_INFO);
435438
}

0 commit comments

Comments
 (0)
Please sign in to comment.