| //@aux-build:proc_macros.rs | |
| #![deny(clippy::allow_attributes_without_reason)] | |
| #![allow(unfulfilled_lint_expectations, clippy::duplicated_attributes)] | |
| //~^ allow_attributes_without_reason | |
| extern crate proc_macros; | |
| use proc_macros::{external, with_span}; | |
| // These should trigger the lint | |
| #[allow(dead_code)] | |
| //~^ allow_attributes_without_reason | |
| #[allow(dead_code, deprecated)] | |
| //~^ allow_attributes_without_reason | |
| #[expect(dead_code)] | |
| //~^ allow_attributes_without_reason | |
| // These should be fine | |
| #[allow(dead_code, reason = "This should be allowed")] | |
| #[warn(dyn_drop, reason = "Warnings can also have reasons")] | |
| #[warn(deref_nullptr)] | |
| #[deny(deref_nullptr)] | |
| #[forbid(deref_nullptr)] | |
| fn main() { | |
| external! { | |
| #[allow(dead_code)] | |
| fn a() {} | |
| } | |
| with_span! { | |
| span | |
| #[allow(dead_code)] | |
| fn b() {} | |
| } | |
| } | |
| // Make sure this is not triggered on `?` desugaring | |
| pub fn trigger_fp_option() -> Option<()> { | |
| Some(())?; | |
| None?; | |
| Some(()) | |
| } | |
| pub fn trigger_fp_result() -> Result<(), &'static str> { | |
| Ok(())?; | |
| Err("asdf")?; | |
| Ok(()) | |
| } | |
| #[clippy::msrv = "1.81"] | |
| fn msrv_1_81() { | |
| #[allow(unused)] | |
| //~^ allow_attributes_without_reason | |
| let _ = 1; | |
| } | |
| #[clippy::msrv = "1.80"] | |
| fn msrv_1_80() { | |
| #[allow(unused)] | |
| let _ = 1; | |
| } |