Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide-diagnostics/src/handlers/missing_unsafe.rs')
-rw-r--r--crates/ide-diagnostics/src/handlers/missing_unsafe.rs25
1 files changed, 25 insertions, 0 deletions
diff --git a/crates/ide-diagnostics/src/handlers/missing_unsafe.rs b/crates/ide-diagnostics/src/handlers/missing_unsafe.rs
index 7407faee35..7e70a27f78 100644
--- a/crates/ide-diagnostics/src/handlers/missing_unsafe.rs
+++ b/crates/ide-diagnostics/src/handlers/missing_unsafe.rs
@@ -189,6 +189,31 @@ fn main() {
}
#[test]
+ fn no_unsafe_diagnostic_with_addr_of_static() {
+ check_diagnostics(
+ r#"
+//- minicore: copy, addr_of
+
+use core::ptr::{addr_of, addr_of_mut};
+
+extern "C" {
+ static EXTERN: i32;
+ static mut EXTERN_MUT: i32;
+}
+static mut STATIC_MUT: i32 = 0;
+
+fn main() {
+ let _x = addr_of!(EXTERN);
+ let _x = addr_of!(EXTERN_MUT);
+ let _x = addr_of!(STATIC_MUT);
+ let _x = addr_of_mut!(EXTERN_MUT);
+ let _x = addr_of_mut!(STATIC_MUT);
+}
+"#,
+ );
+ }
+
+ #[test]
fn no_missing_unsafe_diagnostic_with_safe_intrinsic() {
check_diagnostics(
r#"