Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-ty/src/layout/target.rs')
-rw-r--r--crates/hir-ty/src/layout/target.rs31
1 files changed, 15 insertions, 16 deletions
diff --git a/crates/hir-ty/src/layout/target.rs b/crates/hir-ty/src/layout/target.rs
index b0986c423b..1752b56b0f 100644
--- a/crates/hir-ty/src/layout/target.rs
+++ b/crates/hir-ty/src/layout/target.rs
@@ -2,7 +2,7 @@
use base_db::{Crate, target::TargetLoadError};
use hir_def::layout::TargetDataLayout;
-use rustc_abi::{AddressSpace, AlignFromBytesError, TargetDataLayoutErrors};
+use rustc_abi::{AddressSpace, AlignFromBytesError, TargetDataLayoutError};
use triomphe::Arc;
use crate::db::HirDatabase;
@@ -16,30 +16,29 @@ pub fn target_data_layout_query(
Ok(it) => Ok(Arc::new(it)),
Err(e) => {
Err(match e {
- TargetDataLayoutErrors::InvalidAddressSpace { addr_space, cause, err } => {
+ TargetDataLayoutError::InvalidAddressSpace { addr_space, cause, err } => {
format!(
r#"invalid address space `{addr_space}` for `{cause}` in "data-layout": {err}"#
)
}
- TargetDataLayoutErrors::InvalidBits { kind, bit, cause, err } => format!(r#"invalid {kind} `{bit}` for `{cause}` in "data-layout": {err}"#),
- TargetDataLayoutErrors::MissingAlignment { cause } => format!(r#"missing alignment for `{cause}` in "data-layout""#),
- TargetDataLayoutErrors::InvalidAlignment { cause, err } => format!(
- r#"invalid alignment for `{cause}` in "data-layout": `{align}` is {err_kind}"#,
- align = err.align(),
- err_kind = match err {
- AlignFromBytesError::NotPowerOfTwo(_) => "not a power of two",
- AlignFromBytesError::TooLarge(_) => "too large",
- }
- ),
- TargetDataLayoutErrors::InconsistentTargetArchitecture { dl, target } => {
+ TargetDataLayoutError::InvalidBits { kind, bit, cause, err } => format!(r#"invalid {kind} `{bit}` for `{cause}` in "data-layout": {err}"#),
+ TargetDataLayoutError::MissingAlignment { cause } => format!(r#"missing alignment for `{cause}` in "data-layout""#),
+ TargetDataLayoutError::InvalidAlignment { cause, err } => {
+ let (align, err_kind) = match err {
+ AlignFromBytesError::NotPowerOfTwo(align) => (align, "not a power of two"),
+ AlignFromBytesError::TooLarge(align) => (align, "too large"),
+ };
+ format!(r#"invalid alignment for `{cause}` in "data-layout": `{align}` is {err_kind}"#)
+ },
+ TargetDataLayoutError::InconsistentTargetArchitecture { dl, target } => {
format!(r#"inconsistent target specification: "data-layout" claims architecture is {dl}-endian, while "target-endian" is `{target}`"#)
}
- TargetDataLayoutErrors::InconsistentTargetPointerWidth {
+ TargetDataLayoutError::InconsistentTargetPointerWidth {
pointer_size,
target,
} => format!(r#"inconsistent target specification: "data-layout" claims pointers are {pointer_size}-bit, while "target-pointer-width" is `{target}`"#),
- TargetDataLayoutErrors::InvalidBitsSize { err } => err,
- TargetDataLayoutErrors::UnknownPointerSpecification { err } => format!(r#"use of unknown pointer specifier in "data-layout": {err}"#),
+ TargetDataLayoutError::InvalidBitsSize { err } => err,
+ TargetDataLayoutError::UnknownPointerSpecification { err } => format!(r#"use of unknown pointer specifier in "data-layout": {err}"#),
}.into())
}
},