diff options
| author | Folkert de Vries <folkert@folkertdev.nl> | 2025-06-09 21:55:17 +0200 |
|---|---|---|
| committer | Folkert de Vries <folkert@folkertdev.nl> | 2025-06-09 21:55:22 +0200 |
| commit | 2c8257493da0e452c03f34cc6f409d98234746db (patch) | |
| tree | fcfe6c7156785a0e718b51a219d48e1009ede9b4 /compiler/rustc_parse/src | |
| parent | b6685d748fe4668571c05ba338f61520db6dacc9 (diff) | |
| download | rust-2c8257493da0e452c03f34cc6f409d98234746db.tar.gz rust-2c8257493da0e452c03f34cc6f409d98234746db.zip | |
use correct edition when warning for unsafe attributes
If an attribute is re-emitted by a macro, the incorrect edition was used to emit warnings for unsafe attributes
Diffstat (limited to 'compiler/rustc_parse/src')
| -rw-r--r-- | compiler/rustc_parse/src/validate_attr.rs | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/compiler/rustc_parse/src/validate_attr.rs b/compiler/rustc_parse/src/validate_attr.rs index 378cbb84637..555ab3cdb2b 100644 --- a/compiler/rustc_parse/src/validate_attr.rs +++ b/compiler/rustc_parse/src/validate_attr.rs @@ -180,9 +180,14 @@ pub fn check_attribute_safety( let diag_span = attr_item.span(); // Attributes can be safe in earlier editions, and become unsafe in later ones. + // + // Use the span of the attribute's name to determine the edition: the span of the + // attribute as a whole may be inaccurate if it was emitted by a macro. + // + // See https://github.com/rust-lang/rust/issues/142182. let emit_error = match unsafe_since { None => true, - Some(unsafe_since) => attr.span.edition() >= unsafe_since, + Some(unsafe_since) => path_span.edition() >= unsafe_since, }; if emit_error { |
