aboutsummaryrefslogtreecommitdiff
path: root/crates/hir_ty/src/diagnostics/decl_check.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/hir_ty/src/diagnostics/decl_check.rs')
-rw-r--r--crates/hir_ty/src/diagnostics/decl_check.rs22
1 files changed, 12 insertions, 10 deletions
diff --git a/crates/hir_ty/src/diagnostics/decl_check.rs b/crates/hir_ty/src/diagnostics/decl_check.rs
index 6773ddea3..3605ca581 100644
--- a/crates/hir_ty/src/diagnostics/decl_check.rs
+++ b/crates/hir_ty/src/diagnostics/decl_check.rs
@@ -28,7 +28,6 @@ use syntax::{
28 ast::{self, NameOwner}, 28 ast::{self, NameOwner},
29 AstNode, AstPtr, 29 AstNode, AstPtr,
30}; 30};
31use test_utils::mark;
32 31
33use crate::{ 32use crate::{
34 db::HirDatabase, 33 db::HirDatabase,
@@ -93,16 +92,21 @@ impl<'a, 'b> DeclValidator<'a, 'b> {
93 fn validate_func(&mut self, func: FunctionId) { 92 fn validate_func(&mut self, func: FunctionId) {
94 let data = self.db.function_data(func); 93 let data = self.db.function_data(func);
95 if data.is_extern { 94 if data.is_extern {
96 mark::hit!(extern_func_incorrect_case_ignored); 95 cov_mark::hit!(extern_func_incorrect_case_ignored);
97 return; 96 return;
98 } 97 }
99 98
100 let body = self.db.body(func.into()); 99 let body = self.db.body(func.into());
101 100
102 // Recursively validate inner scope items, such as static variables and constants. 101 // Recursively validate inner scope items, such as static variables and constants.
103 for (item_id, _) in body.item_scope.values() { 102 let db = self.db;
104 let mut validator = DeclValidator::new(self.db, self.krate, self.sink); 103 for block_def_map in body.block_scopes.iter().filter_map(|block| db.block_def_map(*block)) {
105 validator.validate_item(item_id); 104 for (_, module) in block_def_map.modules() {
105 for (def_id, _) in module.scope.values() {
106 let mut validator = DeclValidator::new(self.db, self.krate, self.sink);
107 validator.validate_item(def_id);
108 }
109 }
106 } 110 }
107 111
108 // Check whether non-snake case identifiers are allowed for this function. 112 // Check whether non-snake case identifiers are allowed for this function.
@@ -625,7 +629,7 @@ impl<'a, 'b> DeclValidator<'a, 'b> {
625 fn validate_static(&mut self, static_id: StaticId) { 629 fn validate_static(&mut self, static_id: StaticId) {
626 let data = self.db.static_data(static_id); 630 let data = self.db.static_data(static_id);
627 if data.is_extern { 631 if data.is_extern {
628 mark::hit!(extern_static_incorrect_case_ignored); 632 cov_mark::hit!(extern_static_incorrect_case_ignored);
629 return; 633 return;
630 } 634 }
631 635
@@ -673,8 +677,6 @@ impl<'a, 'b> DeclValidator<'a, 'b> {
673 677
674#[cfg(test)] 678#[cfg(test)]
675mod tests { 679mod tests {
676 use test_utils::mark;
677
678 use crate::diagnostics::tests::check_diagnostics; 680 use crate::diagnostics::tests::check_diagnostics;
679 681
680 #[test] 682 #[test]
@@ -889,8 +891,8 @@ fn main() {
889 891
890 #[test] 892 #[test]
891 fn ignores_extern_items() { 893 fn ignores_extern_items() {
892 mark::check!(extern_func_incorrect_case_ignored); 894 cov_mark::check!(extern_func_incorrect_case_ignored);
893 mark::check!(extern_static_incorrect_case_ignored); 895 cov_mark::check!(extern_static_incorrect_case_ignored);
894 check_diagnostics( 896 check_diagnostics(
895 r#" 897 r#"
896extern { 898extern {