From 79b0ab5195f0b7f9e05881e775219eea9cc410f6 Mon Sep 17 00:00:00 2001 From: Wim Looman Date: Sat, 20 Jun 2020 13:31:24 +0200 Subject: [PATCH] Scope no_mangle and export_name warnings to the declarations name --- compiler/rustc_lint/src/builtin.rs | 8 +++--- src/test/ui/lint/lint-unsafe-code.stderr | 32 ++++++++++++------------ 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/compiler/rustc_lint/src/builtin.rs b/compiler/rustc_lint/src/builtin.rs index 784468aac2a..89190072a72 100644 --- a/compiler/rustc_lint/src/builtin.rs +++ b/compiler/rustc_lint/src/builtin.rs @@ -279,12 +279,12 @@ impl EarlyLintPass for UnsafeCode { ast::ItemKind::Fn(..) => { if attr::contains_name(&it.attrs, sym::no_mangle) { - self.report_unsafe(cx, it.span, |lint| { + self.report_unsafe(cx, it.ident.span, |lint| { lint.build("declaration of a `no_mangle` function").emit(); }) } if attr::contains_name(&it.attrs, sym::export_name) { - self.report_unsafe(cx, it.span, |lint| { + self.report_unsafe(cx, it.ident.span, |lint| { lint.build("declaration of a function with `export_name`").emit(); }) } @@ -292,12 +292,12 @@ impl EarlyLintPass for UnsafeCode { ast::ItemKind::Static(..) => { if attr::contains_name(&it.attrs, sym::no_mangle) { - self.report_unsafe(cx, it.span, |lint| { + self.report_unsafe(cx, it.ident.span, |lint| { lint.build("declaration of a `no_mangle` static").emit(); }) } if attr::contains_name(&it.attrs, sym::export_name) { - self.report_unsafe(cx, it.span, |lint| { + self.report_unsafe(cx, it.ident.span, |lint| { lint.build("declaration of a static with `export_name`").emit(); }) } diff --git a/src/test/ui/lint/lint-unsafe-code.stderr b/src/test/ui/lint/lint-unsafe-code.stderr index aadd02277ef..b97c78aef2f 100644 --- a/src/test/ui/lint/lint-unsafe-code.stderr +++ b/src/test/ui/lint/lint-unsafe-code.stderr @@ -1,8 +1,8 @@ error: declaration of a `no_mangle` function - --> $DIR/lint-unsafe-code.rs:31:14 + --> $DIR/lint-unsafe-code.rs:31:17 | LL | #[no_mangle] fn foo() {} - | ^^^^^^^^^^^ + | ^^^ | note: the lint level is defined here --> $DIR/lint-unsafe-code.rs:3:9 @@ -11,22 +11,22 @@ LL | #![deny(unsafe_code)] | ^^^^^^^^^^^ error: declaration of a `no_mangle` static - --> $DIR/lint-unsafe-code.rs:32:14 + --> $DIR/lint-unsafe-code.rs:32:21 | LL | #[no_mangle] static FOO: u32 = 5; - | ^^^^^^^^^^^^^^^^^^^^ + | ^^^ error: declaration of a function with `export_name` - --> $DIR/lint-unsafe-code.rs:34:24 + --> $DIR/lint-unsafe-code.rs:34:27 | LL | #[export_name = "bar"] fn bar() {} - | ^^^^^^^^^^^ + | ^^^ error: declaration of a static with `export_name` - --> $DIR/lint-unsafe-code.rs:35:24 + --> $DIR/lint-unsafe-code.rs:35:31 | LL | #[export_name = "BAR"] static BAR: u32 = 5; - | ^^^^^^^^^^^^^^^^^^^^ + | ^^^ error: declaration of an `unsafe` function --> $DIR/lint-unsafe-code.rs:37:1 @@ -107,10 +107,10 @@ LL | unsafe {} | ^^^^^^^^^ error: declaration of a `no_mangle` function - --> $DIR/lint-unsafe-code.rs:21:22 + --> $DIR/lint-unsafe-code.rs:21:25 | LL | #[no_mangle] fn foo() {} - | ^^^^^^^^^^^ + | ^^^ ... LL | unsafe_in_macro!() | ------------------ in this macro invocation @@ -118,10 +118,10 @@ LL | unsafe_in_macro!() = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) error: declaration of a `no_mangle` static - --> $DIR/lint-unsafe-code.rs:22:22 + --> $DIR/lint-unsafe-code.rs:22:29 | LL | #[no_mangle] static FOO: u32 = 5; - | ^^^^^^^^^^^^^^^^^^^^ + | ^^^ ... LL | unsafe_in_macro!() | ------------------ in this macro invocation @@ -129,10 +129,10 @@ LL | unsafe_in_macro!() = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) error: declaration of a function with `export_name` - --> $DIR/lint-unsafe-code.rs:23:32 + --> $DIR/lint-unsafe-code.rs:23:35 | LL | #[export_name = "bar"] fn bar() {} - | ^^^^^^^^^^^ + | ^^^ ... LL | unsafe_in_macro!() | ------------------ in this macro invocation @@ -140,10 +140,10 @@ LL | unsafe_in_macro!() = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) error: declaration of a static with `export_name` - --> $DIR/lint-unsafe-code.rs:25:32 + --> $DIR/lint-unsafe-code.rs:25:39 | LL | #[export_name = "BAR"] static BAR: u32 = 5; - | ^^^^^^^^^^^^^^^^^^^^ + | ^^^ ... LL | unsafe_in_macro!() | ------------------ in this macro invocation