From d82292e1ce8112cfa5e42d0221a563649d067747 Mon Sep 17 00:00:00 2001 From: Jonas Schievink Date: Thu, 10 Dec 2020 15:45:01 +0100 Subject: Ignore extern items in incorrect-case check --- crates/hir_ty/src/diagnostics/decl_check.rs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'crates/hir_ty/src/diagnostics') diff --git a/crates/hir_ty/src/diagnostics/decl_check.rs b/crates/hir_ty/src/diagnostics/decl_check.rs index 4b3e2fa8f..724bad867 100644 --- a/crates/hir_ty/src/diagnostics/decl_check.rs +++ b/crates/hir_ty/src/diagnostics/decl_check.rs @@ -87,6 +87,10 @@ impl<'a, 'b> DeclValidator<'a, 'b> { fn validate_func(&mut self, db: &dyn HirDatabase, func: FunctionId) { let data = db.function_data(func); + if data.is_extern { + return; + } + let body = db.body(func.into()); // Recursively validate inner scope items, such as static variables and constants. @@ -648,6 +652,9 @@ impl<'a, 'b> DeclValidator<'a, 'b> { fn validate_static(&mut self, db: &dyn HirDatabase, static_id: StaticId) { let data = db.static_data(static_id); + if data.is_extern { + return; + } if self.allowed(db, static_id.into(), allow::NON_UPPER_CASE_GLOBAL) { return; @@ -920,4 +927,16 @@ fn main() { "#, ); } + + #[test] + fn ignores_extern_items() { + check_diagnostics( + r#" +extern { + fn NonSnakeCaseName(SOME_VAR: u8) -> u8; + pub static SomeStatic: u8 = 10; +} + "#, + ); + } } -- cgit v1.2.3