Unnamed repository; edit this file 'description' to name the repository.
Merge #11924
11924: internal: remove `FnFlags::IS_IN_EXTERN_BLOCK` r=jonas-schievink a=jonas-schievink This flag was determined purely based on the AST, which cannot work reliably since macros are allowed in `extern` blocks (in which case the function would not have an extern block parent in the AST). bors r+ Co-authored-by: Jonas Schievink <[email protected]>
bors[bot] 2022-04-07
parent 134dbc6 · parent 6501e45 · commit 8765baa
-rw-r--r--crates/hir_def/src/data.rs8
-rw-r--r--crates/hir_def/src/item_tree.rs3
-rw-r--r--crates/hir_ty/src/diagnostics/decl_check.rs5
3 files changed, 3 insertions, 13 deletions
diff --git a/crates/hir_def/src/data.rs b/crates/hir_def/src/data.rs
index ffb733c2b9..8e0bb0c34d 100644
--- a/crates/hir_def/src/data.rs
+++ b/crates/hir_def/src/data.rs
@@ -57,10 +57,6 @@ impl FunctionData {
flags.bits |= FnFlags::IS_VARARGS;
}
- if matches!(loc.container, ItemContainerId::ExternBlockId(_)) {
- flags.bits |= FnFlags::IS_IN_EXTERN_BLOCK;
- }
-
let legacy_const_generics_indices = item_tree
.attrs(db, krate, ModItem::from(loc.id.value).into())
.by_key("rustc_legacy_const_generics")
@@ -114,10 +110,6 @@ impl FunctionData {
self.flags.bits & FnFlags::IS_UNSAFE != 0
}
- pub fn is_in_extern_block(&self) -> bool {
- self.flags.bits & FnFlags::IS_IN_EXTERN_BLOCK != 0
- }
-
pub fn is_varargs(&self) -> bool {
self.flags.bits & FnFlags::IS_VARARGS != 0
}
diff --git a/crates/hir_def/src/item_tree.rs b/crates/hir_def/src/item_tree.rs
index 4bde87b8d4..bf60c6bc6a 100644
--- a/crates/hir_def/src/item_tree.rs
+++ b/crates/hir_def/src/item_tree.rs
@@ -612,9 +612,6 @@ impl FnFlags {
pub(crate) const IS_CONST: u8 = 1 << 3;
pub(crate) const IS_ASYNC: u8 = 1 << 4;
pub(crate) const IS_UNSAFE: u8 = 1 << 5;
- /// Whether the function is located in an `extern` block (*not* whether it is an
- /// `extern "abi" fn`).
- pub(crate) const IS_IN_EXTERN_BLOCK: u8 = 1 << 6;
pub(crate) const IS_VARARGS: u8 = 1 << 7;
}
diff --git a/crates/hir_ty/src/diagnostics/decl_check.rs b/crates/hir_ty/src/diagnostics/decl_check.rs
index 9e1f934034..f7031a8546 100644
--- a/crates/hir_ty/src/diagnostics/decl_check.rs
+++ b/crates/hir_ty/src/diagnostics/decl_check.rs
@@ -19,7 +19,8 @@ use hir_def::{
adt::VariantData,
expr::{Pat, PatId},
src::HasSource,
- AdtId, AttrDefId, ConstId, EnumId, FunctionId, Lookup, ModuleDefId, StaticId, StructId,
+ AdtId, AttrDefId, ConstId, EnumId, FunctionId, ItemContainerId, Lookup, ModuleDefId, StaticId,
+ StructId,
};
use hir_expand::{
name::{AsName, Name},
@@ -198,7 +199,7 @@ impl<'a> DeclValidator<'a> {
fn validate_func(&mut self, func: FunctionId) {
let data = self.db.function_data(func);
- if data.is_in_extern_block() {
+ if matches!(func.lookup(self.db.upcast()).container, ItemContainerId::ExternBlockId(_)) {
cov_mark::hit!(extern_func_incorrect_case_ignored);
return;
}