Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-ty/src/diagnostics/decl_check.rs')
| -rw-r--r-- | crates/hir-ty/src/diagnostics/decl_check.rs | 34 |
1 files changed, 18 insertions, 16 deletions
diff --git a/crates/hir-ty/src/diagnostics/decl_check.rs b/crates/hir-ty/src/diagnostics/decl_check.rs index 5fb8e8e60a..3a0dfaa86c 100644 --- a/crates/hir-ty/src/diagnostics/decl_check.rs +++ b/crates/hir-ty/src/diagnostics/decl_check.rs @@ -17,8 +17,8 @@ use std::fmt; use hir_def::{ AdtId, ConstId, EnumId, EnumVariantId, FunctionId, HasModule, ItemContainerId, Lookup, - ModuleDefId, ModuleId, StaticId, StructId, TraitId, TypeAliasId, data::adt::VariantData, - db::DefDatabase, hir::Pat, src::HasSource, + ModuleDefId, ModuleId, StaticId, StructId, TraitId, TypeAliasId, db::DefDatabase, hir::Pat, + item_tree::FieldsShape, signatures::StaticFlags, src::HasSource, }; use hir_expand::{ HirFileId, HirFileIdExt, @@ -178,7 +178,7 @@ impl<'a> DeclValidator<'a> { fn validate_trait(&mut self, trait_id: TraitId) { // Check the trait name. - let data = self.db.trait_data(trait_id); + let data = self.db.trait_signature(trait_id); self.create_incorrect_case_diagnostic_for_item_name( trait_id, &data.name, @@ -197,7 +197,7 @@ impl<'a> DeclValidator<'a> { // Check the function name. // Skipped if function is an associated item of a trait implementation. if !self.is_trait_impl_container(container) { - let data = self.db.function_data(func); + let data = self.db.function_signature(func); // Don't run the lint on extern "[not Rust]" fn items with the // #[no_mangle] attribute. @@ -293,7 +293,7 @@ impl<'a> DeclValidator<'a> { fn validate_struct(&mut self, struct_id: StructId) { // Check the structure name. - let data = self.db.struct_data(struct_id); + let data = self.db.struct_signature(struct_id); self.create_incorrect_case_diagnostic_for_item_name( struct_id, &data.name, @@ -307,12 +307,13 @@ impl<'a> DeclValidator<'a> { /// Check incorrect names for struct fields. fn validate_struct_fields(&mut self, struct_id: StructId) { - let data = self.db.variant_data(struct_id.into()); - let VariantData::Record { fields, .. } = data.as_ref() else { + let data = self.db.variant_fields(struct_id.into()); + if data.shape != FieldsShape::Record { return; }; let edition = self.edition(struct_id); - let mut struct_fields_replacements = fields + let mut struct_fields_replacements = data + .fields() .iter() .filter_map(|(_, field)| { to_lower_snake_case(&field.name.display_no_db(edition).to_smolstr()).map( @@ -378,7 +379,7 @@ impl<'a> DeclValidator<'a> { } fn validate_enum(&mut self, enum_id: EnumId) { - let data = self.db.enum_data(enum_id); + let data = self.db.enum_signature(enum_id); // Check the enum name. self.create_incorrect_case_diagnostic_for_item_name( @@ -467,12 +468,13 @@ impl<'a> DeclValidator<'a> { /// Check incorrect names for fields of enum variant. fn validate_enum_variant_fields(&mut self, variant_id: EnumVariantId) { - let variant_data = self.db.variant_data(variant_id.into()); - let VariantData::Record { fields, .. } = variant_data.as_ref() else { + let variant_data = self.db.variant_fields(variant_id.into()); + if variant_data.shape != FieldsShape::Record { return; }; let edition = self.edition(variant_id); - let mut variant_field_replacements = fields + let mut variant_field_replacements = variant_data + .fields() .iter() .filter_map(|(_, field)| { to_lower_snake_case(&field.name.display_no_db(edition).to_smolstr()).map( @@ -544,7 +546,7 @@ impl<'a> DeclValidator<'a> { return; } - let data = self.db.const_data(const_id); + let data = self.db.const_signature(const_id); let Some(name) = &data.name else { return; }; @@ -557,8 +559,8 @@ impl<'a> DeclValidator<'a> { } fn validate_static(&mut self, static_id: StaticId) { - let data = self.db.static_data(static_id); - if data.is_extern() { + let data = self.db.static_signature(static_id); + if data.flags.contains(StaticFlags::IS_EXTERN) { cov_mark::hit!(extern_static_incorrect_case_ignored); return; } @@ -579,7 +581,7 @@ impl<'a> DeclValidator<'a> { } // Check the type alias name. - let data = self.db.type_alias_data(type_alias_id); + let data = self.db.type_alias_signature(type_alias_id); self.create_incorrect_case_diagnostic_for_item_name( type_alias_id, &data.name, |