Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rollup of 9 pull requests #108056

Merged
merged 22 commits into from
Feb 15, 2023
Merged
Changes from 2 commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
9be0b3e
Fix `x fix` on the standard library itself
jyn514 Feb 3, 2023
0d6fdef
update ICU4X to 1.1.0
Feb 4, 2023
a06aaa4
Update the minimum external LLVM to 14
cuviper Feb 1, 2023
ffdbd58
Drop llvm14-builtins-abi with compiler_builtins 0.1.87
cuviper Feb 11, 2023
d6bc681
Store metrics from metrics.json into PGO CI timer
geordi Feb 6, 2023
afe9553
Log all metrics from `metrics.json`
Kobzol Feb 8, 2023
3504c40
Use is_str instead of string kind comparison
compiler-errors Feb 13, 2023
646e667
add a `#[rustc_coinductive]` attribute
lcnr Feb 14, 2023
51671cd
add test for coinduction in new solver
lcnr Feb 14, 2023
a2f0303
change the `marker` attribute to only_local
lcnr Feb 14, 2023
26e3363
Refactor refcounted structural_impls via functors
eggyal Feb 14, 2023
91d2516
interpret: rename Pointer::from_addr → from_addr_invalid
RalfJung Feb 14, 2023
3b510e8
Use derive attributes for uninteresting traversals
eggyal Feb 14, 2023
a1ba861
Rollup merge of #107573 - cuviper:drop-llvm-13, r=nagisa
matthiaskrgr Feb 14, 2023
2c1d3e9
Rollup merge of #107626 - jyn514:x-fix, r=Mark-Simulacrum
matthiaskrgr Feb 14, 2023
3549e42
Rollup merge of #107673 - lukas-code:update-icu4x, r=davidtwco
matthiaskrgr Feb 14, 2023
74d018e
Rollup merge of #107733 - Kobzol:opt-build-metrics, r=Mark-Simulacrum
matthiaskrgr Feb 14, 2023
7e0127b
Rollup merge of #108007 - compiler-errors:str-less-kind, r=Nilstrieb
matthiaskrgr Feb 14, 2023
edcdab0
Rollup merge of #108033 - lcnr:coinductive-attr, r=compiler-errors
matthiaskrgr Feb 14, 2023
207d6e1
Rollup merge of #108039 - eggyal:traverse_refcounts_via_functors, r=o…
matthiaskrgr Feb 14, 2023
9b39568
Rollup merge of #108040 - eggyal:attributes_for_uninteresting_travers…
matthiaskrgr Feb 14, 2023
8e82c8c
Rollup merge of #108044 - RalfJung:from-addr-invalid, r=oli-obk
matthiaskrgr Feb 14, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 24 additions & 28 deletions Cargo.lock
Original file line number Diff line number Diff line change
@@ -2027,23 +2027,21 @@ checksum = "3c1ad908cc71012b7bea4d0c53ba96a8cba9962f048fa68d143376143d863b7a"

[[package]]
name = "icu_list"
version = "1.0.0"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c40218275f081c4493f190357c5395647b06734c2dc3dcb41cc099a0f60168b1"
checksum = "01a65ff0cab77c33c7e165c858eaa6e84a09f1e485dd495d9d0ae61083c6f786"
dependencies = [
"displaydoc",
"icu_locid",
"icu_provider",
"regex-automata 0.2.0",
"writeable",
"zerovec",
]

[[package]]
name = "icu_locid"
version = "1.0.0"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "34b3de5d99a0e275fe6193b9586dbf37364daebc0d39c89b5cf8376a53b789e8"
checksum = "71d7a98ecb812760b5f077e55a4763edeefa7ccc30d6eb5680a70841ede81928"
dependencies = [
"displaydoc",
"litemap",
@@ -2054,9 +2052,9 @@ dependencies = [

[[package]]
name = "icu_provider"
version = "1.0.1"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2f911086e3c521a8a824d4f8bfd87769645ced2f07ff913b521c0d793be07100"
checksum = "a86816c97bc4e613086497f9479f63e120315e056763e8c4435604f98d21d82d"
dependencies = [
"displaydoc",
"icu_locid",
@@ -2070,9 +2068,9 @@ dependencies = [

[[package]]
name = "icu_provider_adapters"
version = "1.0.0"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "980c71d8a91b246ebbb97847178a4b816eea39d1d550c70ee566384555bb6545"
checksum = "8e89bf33962b24bb48a4a21330c20c9ff17949338ea376360dd9eda2c209dca1"
dependencies = [
"icu_locid",
"icu_provider",
@@ -2083,9 +2081,9 @@ dependencies = [

[[package]]
name = "icu_provider_macros"
version = "1.0.0"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "38cf6f5b65cf81f0b4298da647101acbfe6ae0e25263f92bd7a22597e9d6d606"
checksum = "9ddb07844c2ffc4c28840e799e9e54ff054393cf090740decf25624e9d94b93a"
dependencies = [
"proc-macro2",
"quote",
@@ -2451,9 +2449,9 @@ checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4"

[[package]]
name = "litemap"
version = "0.6.0"
version = "0.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f34a3f4798fac63fb48cf277eefa38f94d3443baff555bb98e4f56bc9092368e"
checksum = "575d8a551c59104b4df91269921e5eab561aa1b77c618dac0414b5d44a4617de"

[[package]]
name = "lld-wrapper"
@@ -3756,7 +3754,6 @@ dependencies = [
"icu_locid",
"icu_provider",
"icu_provider_adapters",
"litemap",
"zerovec",
]

@@ -3998,7 +3995,6 @@ dependencies = [
"rustc_span",
"tracing",
"unic-langid",
"writeable",
]

[[package]]
@@ -5660,9 +5656,9 @@ dependencies = [

[[package]]
name = "tinystr"
version = "0.7.0"
version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f8aeafdfd935e4a7fe16a91ab711fa52d54df84f9c8f7ca5837a9d1d902ef4c2"
checksum = "7ac3f5b6856e931e15e07b478e98c8045239829a65f9156d4fa7e7788197a5ef"
dependencies = [
"displaydoc",
"zerovec",
@@ -6352,9 +6348,9 @@ checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd"

[[package]]
name = "writeable"
version = "0.5.0"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f8e6ab4f5da1b24daf2c590cfac801bacb27b15b4f050e84eb60149ea726f06b"
checksum = "92d74a687e3b9a7a129db0a8c82b4d464eb9c36f5a66ca68572a7e5f1cfdb5bc"

[[package]]
name = "xattr"
@@ -6411,9 +6407,9 @@ dependencies = [

[[package]]
name = "yoke"
version = "0.6.2"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1fe1d55ca72c32d573bfbd5cb2f0ca65a497854c44762957a6d3da96041a5184"
checksum = "222180af14a6b54ef2c33493c1eff77ae95a3687a21b243e752624006fb8f26e"
dependencies = [
"serde",
"stable_deref_trait",
@@ -6423,9 +6419,9 @@ dependencies = [

[[package]]
name = "yoke-derive"
version = "0.6.1"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1346e4cd025ae818b88566eac7eb65ab33a994ea55f355c86889af2e7e56b14e"
checksum = "ca800d73d6b7a7ee54f2608205c98b549fca71c9500c1abcb3abdc7708b4a8cb"
dependencies = [
"proc-macro2",
"quote",
@@ -6462,9 +6458,9 @@ checksum = "c394b5bd0c6f669e7275d9c20aa90ae064cb22e75a1cad54e1b34088034b149f"

[[package]]
name = "zerovec"
version = "0.9.0"
version = "0.9.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b9d919a74c17749ccb17beaf6405562e413cd94e98ba52ca1e64bbe7eefbd8b8"
checksum = "154df60c74c4a844bc04a53cef4fc18a909d3ea07e19f5225eaba86209da3aa6"
dependencies = [
"yoke",
"zerofrom",
@@ -6473,9 +6469,9 @@ dependencies = [

[[package]]
name = "zerovec-derive"
version = "0.9.0"
version = "0.9.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "490e5f878c2856225e884c35927e7ea6db3c24cdb7229b72542c7526ad7ed49e"
checksum = "2154cb6e2a748163354165e22c6a555effb09ca2d16334767bf66bb404f2206e"
dependencies = [
"proc-macro2",
"quote",
11 changes: 5 additions & 6 deletions compiler/rustc_baked_icu_data/Cargo.toml
Original file line number Diff line number Diff line change
@@ -4,12 +4,11 @@ version = "0.0.0"
edition = "2021"

[dependencies]
icu_list = "1.0.0"
icu_locid = "1.0.0"
icu_provider = "1.0.1"
icu_provider_adapters = "1.0.0"
litemap = "0.6.0"
zerovec = "0.9.0"
icu_list = "1.1.0"
icu_locid = "1.1.0"
icu_provider = "1.1.0"
icu_provider_adapters = "1.1.0"
zerovec = "0.9.2"

[features]
rustc_use_parallel_compiler = ['icu_provider/sync']
42 changes: 1 addition & 41 deletions compiler/rustc_baked_icu_data/src/data/any.rs
Original file line number Diff line number Diff line change
@@ -1,42 +1,2 @@
// @generated
impl AnyProvider for BakedDataProvider {
fn load_any(&self, key: DataKey, req: DataRequest) -> Result<AnyResponse, DataError> {
const ANDLISTV1MARKER: ::icu_provider::DataKeyHash =
::icu_list::provider::AndListV1Marker::KEY.hashed();
const COLLATIONFALLBACKSUPPLEMENTV1MARKER: ::icu_provider::DataKeyHash =
::icu_provider_adapters::fallback::provider::CollationFallbackSupplementV1Marker::KEY
.hashed();
const LOCALEFALLBACKLIKELYSUBTAGSV1MARKER: ::icu_provider::DataKeyHash =
::icu_provider_adapters::fallback::provider::LocaleFallbackLikelySubtagsV1Marker::KEY
.hashed();
const LOCALEFALLBACKPARENTSV1MARKER: ::icu_provider::DataKeyHash =
::icu_provider_adapters::fallback::provider::LocaleFallbackParentsV1Marker::KEY
.hashed();
#[allow(clippy::match_single_binding)]
match key.hashed() {
ANDLISTV1MARKER => list::and_v1::DATA
.get_by(|k| req.locale.strict_cmp(k.as_bytes()).reverse())
.copied()
.map(AnyPayload::from_static_ref)
.ok_or(DataErrorKind::MissingLocale),
COLLATIONFALLBACKSUPPLEMENTV1MARKER => fallback::supplement::co_v1::DATA
.get_by(|k| req.locale.strict_cmp(k.as_bytes()).reverse())
.copied()
.map(AnyPayload::from_static_ref)
.ok_or(DataErrorKind::MissingLocale),
LOCALEFALLBACKLIKELYSUBTAGSV1MARKER => fallback::likelysubtags_v1::DATA
.get_by(|k| req.locale.strict_cmp(k.as_bytes()).reverse())
.copied()
.map(AnyPayload::from_static_ref)
.ok_or(DataErrorKind::MissingLocale),
LOCALEFALLBACKPARENTSV1MARKER => fallback::parents_v1::DATA
.get_by(|k| req.locale.strict_cmp(k.as_bytes()).reverse())
.copied()
.map(AnyPayload::from_static_ref)
.ok_or(DataErrorKind::MissingLocale),
_ => Err(DataErrorKind::MissingDataKey),
}
.map_err(|e| e.with_req(key, req))
.map(|payload| AnyResponse { payload: Some(payload), metadata: Default::default() })
}
}
impl_any_provider!(BakedDataProvider);
733 changes: 0 additions & 733 deletions compiler/rustc_baked_icu_data/src/data/fallback/likelysubtags_v1.rs

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
// @generated
type DataStruct = < :: icu_provider_adapters :: fallback :: provider :: LocaleFallbackLikelySubtagsV1Marker as :: icu_provider :: DataMarker > :: Yokeable ;
pub fn lookup(locale: &icu_provider::DataLocale) -> Option<&'static DataStruct> {
locale.is_empty().then(|| &UND)
}
static UND: DataStruct = include!("und.rs.data");

Large diffs are not rendered by default.

207 changes: 0 additions & 207 deletions compiler/rustc_baked_icu_data/src/data/fallback/parents_v1.rs

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
// @generated
type DataStruct = < :: icu_provider_adapters :: fallback :: provider :: LocaleFallbackParentsV1Marker as :: icu_provider :: DataMarker > :: Yokeable ;
pub fn lookup(locale: &icu_provider::DataLocale) -> Option<&'static DataStruct> {
locale.is_empty().then(|| &UND)
}
static UND: DataStruct = include!("und.rs.data");
216 changes: 216 additions & 0 deletions compiler/rustc_baked_icu_data/src/data/fallback/parents_v1/und.rs.data

Large diffs are not rendered by default.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
// @generated
type DataStruct = < :: icu_provider_adapters :: fallback :: provider :: CollationFallbackSupplementV1Marker as :: icu_provider :: DataMarker > :: Yokeable ;
pub fn lookup(locale: &icu_provider::DataLocale) -> Option<&'static DataStruct> {
locale.is_empty().then(|| &UND)
}
static UND: DataStruct = include!("und.rs.data");
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
::icu_provider_adapters::fallback::provider::LocaleFallbackSupplementV1 {
parents: unsafe {
#[allow(unused_unsafe)]
::zerovec::ZeroMap::from_parts_unchecked(
unsafe {
::zerovec::VarZeroVec::from_bytes_unchecked(&[
1u8, 0u8, 0u8, 0u8, 0u8, 0u8, 121u8, 117u8, 101u8,
])
},
unsafe {
::zerovec::ZeroVec::from_bytes_unchecked(&[
122u8, 104u8, 0u8, 1u8, 72u8, 97u8, 110u8, 116u8, 0u8, 0u8, 0u8, 0u8,
])
},
)
},
unicode_extension_defaults: unsafe {
#[allow(unused_unsafe)]
::zerovec::ZeroMap2d::from_parts_unchecked(
unsafe { ::zerovec::ZeroVec::from_bytes_unchecked(&[99u8, 111u8]) },
unsafe { ::zerovec::ZeroVec::from_bytes_unchecked(&[2u8, 0u8, 0u8, 0u8]) },
unsafe {
::zerovec::VarZeroVec::from_bytes_unchecked(&[
2u8, 0u8, 0u8, 0u8, 0u8, 0u8, 2u8, 0u8, 122u8, 104u8, 122u8, 104u8, 45u8,
72u8, 97u8, 110u8, 116u8,
])
},
unsafe {
::zerovec::VarZeroVec::from_bytes_unchecked(&[
2u8, 0u8, 0u8, 0u8, 0u8, 0u8, 6u8, 0u8, 112u8, 105u8, 110u8, 121u8, 105u8,
110u8, 115u8, 116u8, 114u8, 111u8, 107u8, 101u8,
])
},
)
},
}
1,161 changes: 0 additions & 1,161 deletions compiler/rustc_baked_icu_data/src/data/list/and_v1.rs

This file was deleted.

74 changes: 74 additions & 0 deletions compiler/rustc_baked_icu_data/src/data/list/and_v1/en.rs.data
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
::icu_list::provider::ListFormatterPatternsV1([
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", and ", 6u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(" and ", 5u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", & ", 4u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(" & ", 3u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8)
},
special_case: None,
},
])
836 changes: 836 additions & 0 deletions compiler/rustc_baked_icu_data/src/data/list/and_v1/es.rs.data

Large diffs are not rendered by default.

74 changes: 74 additions & 0 deletions compiler/rustc_baked_icu_data/src/data/list/and_v1/fr.rs.data
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
::icu_list::provider::ListFormatterPatternsV1([
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(" et ", 4u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(" et ", 4u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(" et ", 4u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(" et ", 4u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8)
},
special_case: None,
},
])
74 changes: 74 additions & 0 deletions compiler/rustc_baked_icu_data/src/data/list/and_v1/it.rs.data
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
::icu_list::provider::ListFormatterPatternsV1([
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(" e ", 3u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(" e ", 3u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(" e ", 3u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(" e ", 3u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(" e ", 3u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(" e ", 3u8)
},
special_case: None,
},
])
74 changes: 74 additions & 0 deletions compiler/rustc_baked_icu_data/src/data/list/and_v1/ja.rs.data
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
::icu_list::provider::ListFormatterPatternsV1([
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked("、", 3u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked("、", 3u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked("、", 3u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked("、", 3u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked("、", 3u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked("、", 3u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked("、", 3u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked("、", 3u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked("、", 3u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked("、", 3u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked("、", 3u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked("、", 3u8)
},
special_case: None,
},
])
22 changes: 22 additions & 0 deletions compiler/rustc_baked_icu_data/src/data/list/and_v1/mod.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
// @generated
type DataStruct = <::icu_list::provider::AndListV1Marker as ::icu_provider::DataMarker>::Yokeable;
pub fn lookup(locale: &icu_provider::DataLocale) -> Option<&'static DataStruct> {
static KEYS: [&str; 12usize] =
["en", "es", "fr", "it", "ja", "pt", "ru", "tr", "und", "zh", "zh-Hans", "zh-Hant"];
static DATA: [&DataStruct; 12usize] =
[&EN, &ES, &FR, &IT, &JA, &PT, &RU, &TR, &UND, &ZH, &ZH, &ZH_HANT];
KEYS.binary_search_by(|k| locale.strict_cmp(k.as_bytes()).reverse())
.ok()
.map(|i| unsafe { *DATA.get_unchecked(i) })
}
static EN: DataStruct = include!("en.rs.data");
static ES: DataStruct = include!("es.rs.data");
static FR: DataStruct = include!("fr.rs.data");
static IT: DataStruct = include!("it.rs.data");
static JA: DataStruct = include!("ja.rs.data");
static PT: DataStruct = include!("pt.rs.data");
static RU: DataStruct = include!("ru.rs.data");
static TR: DataStruct = include!("tr.rs.data");
static UND: DataStruct = include!("und.rs.data");
static ZH_HANT: DataStruct = include!("zh-Hant.rs.data");
static ZH: DataStruct = include!("zh.rs.data");
74 changes: 74 additions & 0 deletions compiler/rustc_baked_icu_data/src/data/list/and_v1/pt.rs.data
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
::icu_list::provider::ListFormatterPatternsV1([
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(" e ", 3u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(" e ", 3u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(" e ", 3u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(" e ", 3u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8)
},
special_case: None,
},
])
74 changes: 74 additions & 0 deletions compiler/rustc_baked_icu_data/src/data/list/and_v1/ru.rs.data
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
::icu_list::provider::ListFormatterPatternsV1([
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(" и ", 4u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(" и ", 4u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(" и ", 4u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(" и ", 4u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8)
},
special_case: None,
},
])
74 changes: 74 additions & 0 deletions compiler/rustc_baked_icu_data/src/data/list/and_v1/tr.rs.data
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
::icu_list::provider::ListFormatterPatternsV1([
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(" ve ", 4u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(" ve ", 4u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(" ve ", 4u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(" ve ", 4u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8)
},
special_case: None,
},
])
74 changes: 74 additions & 0 deletions compiler/rustc_baked_icu_data/src/data/list/and_v1/und.rs.data
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
::icu_list::provider::ListFormatterPatternsV1([
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked(", ", 2u8)
},
special_case: None,
},
])
74 changes: 74 additions & 0 deletions compiler/rustc_baked_icu_data/src/data/list/and_v1/zh-Hant.rs.data
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
::icu_list::provider::ListFormatterPatternsV1([
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked("、", 3u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked("、", 3u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked("和", 3u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked("和", 3u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked("、", 3u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked("、", 3u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked("和", 3u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked("和", 3u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked("、", 3u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked("、", 3u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked("和", 3u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked("和", 3u8)
},
special_case: None,
},
])
74 changes: 74 additions & 0 deletions compiler/rustc_baked_icu_data/src/data/list/and_v1/zh.rs.data
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
::icu_list::provider::ListFormatterPatternsV1([
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked("、", 3u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked("、", 3u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked("和", 3u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked("和", 3u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked("、", 3u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked("、", 3u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked("和", 3u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked("和", 3u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked("、", 3u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked("、", 3u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked("、", 3u8)
},
special_case: None,
},
::icu_list::provider::ConditionalListJoinerPattern {
default: unsafe {
::icu_list::provider::ListJoinerPattern::from_parts_unchecked("、", 3u8)
},
special_case: None,
},
])
187 changes: 105 additions & 82 deletions compiler/rustc_baked_icu_data/src/data/mod.rs
Original file line number Diff line number Diff line change
@@ -1,90 +1,113 @@
// @generated
mod fallback;
mod list;
/// This data provider was programmatically generated by [`icu_datagen`](
/// https://unicode-org.github.io/icu4x-docs/doc/icu_datagen/enum.Out.html#variant.Module).
#[non_exhaustive]
pub struct BakedDataProvider;
use ::icu_provider::prelude::*;
impl DataProvider<::icu_list::provider::AndListV1Marker> for BakedDataProvider {
fn load(
&self,
req: DataRequest,
) -> Result<DataResponse<::icu_list::provider::AndListV1Marker>, DataError> {
Ok(DataResponse {
metadata: Default::default(),
payload: Some(DataPayload::from_owned(zerofrom::ZeroFrom::zero_from(
*list::and_v1::DATA
.get_by(|k| req.locale.strict_cmp(k.as_bytes()).reverse())
/// Implement [`DataProvider<M>`] on the given struct using the data
/// hardcoded in this module. This allows the struct to be used with
/// `icu`'s `_unstable` constructors.
///
/// This macro can only be called from its definition-site, i.e. right
/// after `include!`-ing the generated module.
///
/// ```compile_fail
/// struct MyDataProvider;
/// include!("/path/to/generated/mod.rs");
/// impl_data_provider(MyDataProvider);
/// ```
#[allow(unused_macros)]
macro_rules! impl_data_provider {
($ provider : path) => {
impl DataProvider<::icu_list::provider::AndListV1Marker> for $provider {
fn load(&self, req: DataRequest) -> Result<DataResponse<::icu_list::provider::AndListV1Marker>, DataError> {
list::and_v1::lookup(&req.locale)
.map(zerofrom::ZeroFrom::zero_from)
.map(DataPayload::from_owned)
.map(|payload| DataResponse { metadata: Default::default(), payload: Some(payload) })
.ok_or_else(|| DataErrorKind::MissingLocale.with_req(::icu_list::provider::AndListV1Marker::KEY, req))
}
}
impl DataProvider<::icu_provider_adapters::fallback::provider::CollationFallbackSupplementV1Marker> for $provider {
fn load(
&self,
req: DataRequest,
) -> Result<DataResponse<::icu_provider_adapters::fallback::provider::CollationFallbackSupplementV1Marker>, DataError> {
fallback::supplement::co_v1::lookup(&req.locale)
.map(zerofrom::ZeroFrom::zero_from)
.map(DataPayload::from_owned)
.map(|payload| DataResponse { metadata: Default::default(), payload: Some(payload) })
.ok_or_else(|| {
DataErrorKind::MissingLocale
.with_req(::icu_list::provider::AndListV1Marker::KEY, req)
})?,
))),
})
}
}
impl DataProvider<::icu_provider_adapters::fallback::provider::CollationFallbackSupplementV1Marker>
for BakedDataProvider
{
fn load(
&self,
req: DataRequest,
) -> Result<
DataResponse<
::icu_provider_adapters::fallback::provider::CollationFallbackSupplementV1Marker,
>,
DataError,
> {
Ok(DataResponse {
metadata: Default::default(),
payload: Some(DataPayload::from_owned(zerofrom::ZeroFrom::zero_from(
*fallback::supplement::co_v1::DATA.get_by(|k| req.locale.strict_cmp(k.as_bytes()).reverse()).ok_or_else(|| {
DataErrorKind::MissingLocale.with_req(::icu_provider_adapters::fallback::provider::CollationFallbackSupplementV1Marker::KEY, req)
})?,
))),
})
}
}
impl DataProvider<::icu_provider_adapters::fallback::provider::LocaleFallbackLikelySubtagsV1Marker>
for BakedDataProvider
{
fn load(
&self,
req: DataRequest,
) -> Result<
DataResponse<
::icu_provider_adapters::fallback::provider::LocaleFallbackLikelySubtagsV1Marker,
>,
DataError,
> {
Ok(DataResponse {
metadata: Default::default(),
payload: Some(DataPayload::from_owned(zerofrom::ZeroFrom::zero_from(
*fallback::likelysubtags_v1::DATA.get_by(|k| req.locale.strict_cmp(k.as_bytes()).reverse()).ok_or_else(|| {
DataErrorKind::MissingLocale.with_req(::icu_provider_adapters::fallback::provider::LocaleFallbackLikelySubtagsV1Marker::KEY, req)
})?,
))),
})
}
.with_req(::icu_provider_adapters::fallback::provider::CollationFallbackSupplementV1Marker::KEY, req)
})
}
}
impl DataProvider<::icu_provider_adapters::fallback::provider::LocaleFallbackLikelySubtagsV1Marker> for $provider {
fn load(
&self,
req: DataRequest,
) -> Result<DataResponse<::icu_provider_adapters::fallback::provider::LocaleFallbackLikelySubtagsV1Marker>, DataError> {
fallback::likelysubtags_v1::lookup(&req.locale)
.map(zerofrom::ZeroFrom::zero_from)
.map(DataPayload::from_owned)
.map(|payload| DataResponse { metadata: Default::default(), payload: Some(payload) })
.ok_or_else(|| {
DataErrorKind::MissingLocale
.with_req(::icu_provider_adapters::fallback::provider::LocaleFallbackLikelySubtagsV1Marker::KEY, req)
})
}
}
impl DataProvider<::icu_provider_adapters::fallback::provider::LocaleFallbackParentsV1Marker> for $provider {
fn load(
&self,
req: DataRequest,
) -> Result<DataResponse<::icu_provider_adapters::fallback::provider::LocaleFallbackParentsV1Marker>, DataError> {
fallback::parents_v1::lookup(&req.locale)
.map(zerofrom::ZeroFrom::zero_from)
.map(DataPayload::from_owned)
.map(|payload| DataResponse { metadata: Default::default(), payload: Some(payload) })
.ok_or_else(|| {
DataErrorKind::MissingLocale.with_req(::icu_provider_adapters::fallback::provider::LocaleFallbackParentsV1Marker::KEY, req)
})
}
}
};
}
impl DataProvider<::icu_provider_adapters::fallback::provider::LocaleFallbackParentsV1Marker>
for BakedDataProvider
{
fn load(
&self,
req: DataRequest,
) -> Result<
DataResponse<::icu_provider_adapters::fallback::provider::LocaleFallbackParentsV1Marker>,
DataError,
> {
Ok(DataResponse {
metadata: Default::default(),
payload: Some(DataPayload::from_owned(zerofrom::ZeroFrom::zero_from(
*fallback::parents_v1::DATA.get_by(|k| req.locale.strict_cmp(k.as_bytes()).reverse()).ok_or_else(|| {
DataErrorKind::MissingLocale.with_req(::icu_provider_adapters::fallback::provider::LocaleFallbackParentsV1Marker::KEY, req)
})?,
))),
})
}
/// Implement [`AnyProvider`] on the given struct using the data
/// hardcoded in this module. This allows the struct to be used with
/// `icu`'s `_any` constructors.
///
/// This macro can only be called from its definition-site, i.e. right
/// after `include!`-ing the generated module.
///
/// ```compile_fail
/// struct MyAnyProvider;
/// include!("/path/to/generated/mod.rs");
/// impl_any_provider(MyAnyProvider);
/// ```
#[allow(unused_macros)]
macro_rules! impl_any_provider {
($ provider : path) => {
impl AnyProvider for $provider {
fn load_any(&self, key: DataKey, req: DataRequest) -> Result<AnyResponse, DataError> {
const ANDLISTV1MARKER: ::icu_provider::DataKeyHash = ::icu_list::provider::AndListV1Marker::KEY.hashed();
const COLLATIONFALLBACKSUPPLEMENTV1MARKER: ::icu_provider::DataKeyHash =
::icu_provider_adapters::fallback::provider::CollationFallbackSupplementV1Marker::KEY.hashed();
const LOCALEFALLBACKLIKELYSUBTAGSV1MARKER: ::icu_provider::DataKeyHash =
::icu_provider_adapters::fallback::provider::LocaleFallbackLikelySubtagsV1Marker::KEY.hashed();
const LOCALEFALLBACKPARENTSV1MARKER: ::icu_provider::DataKeyHash =
::icu_provider_adapters::fallback::provider::LocaleFallbackParentsV1Marker::KEY.hashed();
match key.hashed() {
ANDLISTV1MARKER => list::and_v1::lookup(&req.locale).map(AnyPayload::from_static_ref),
COLLATIONFALLBACKSUPPLEMENTV1MARKER => fallback::supplement::co_v1::lookup(&req.locale).map(AnyPayload::from_static_ref),
LOCALEFALLBACKLIKELYSUBTAGSV1MARKER => fallback::likelysubtags_v1::lookup(&req.locale).map(AnyPayload::from_static_ref),
LOCALEFALLBACKPARENTSV1MARKER => fallback::parents_v1::lookup(&req.locale).map(AnyPayload::from_static_ref),
_ => return Err(DataErrorKind::MissingDataKey.with_req(key, req)),
}
.map(|payload| AnyResponse { payload: Some(payload), metadata: Default::default() })
.ok_or_else(|| DataErrorKind::MissingLocale.with_req(key, req))
}
}
};
}
pub struct BakedDataProvider;
impl_data_provider!(BakedDataProvider);
7 changes: 3 additions & 4 deletions compiler/rustc_error_messages/Cargo.toml
Original file line number Diff line number Diff line change
@@ -16,10 +16,9 @@ rustc_span = { path = "../rustc_span" }
rustc_macros = { path = "../rustc_macros" }
tracing = "0.1"
unic-langid = { version = "0.9.0", features = ["macros"] }
icu_list = "1.0.0"
writeable = "0.5.0"
icu_locid = "1.0.0"
icu_provider_adapters = "1.0.0"
icu_list = "1.1.0"
icu_locid = "1.1.0"
icu_provider_adapters = "1.1.0"

[features]
rustc_use_parallel_compiler = ['rustc_baked_icu_data/rustc_use_parallel_compiler']