|  | // This is a regression test for <https://github.com/rust-lang/rust/issues/141553>. | 
|  | // If the link is generated from expansion, we should not emit the lint. | 
|  |  | 
|  | #![deny(rustdoc::redundant_explicit_links)] | 
|  |  | 
|  | macro_rules! mac1 { | 
|  | () => { | 
|  | "provided by a [`BufferProvider`](crate::BufferProvider)." | 
|  | }; | 
|  | } | 
|  |  | 
|  | macro_rules! mac2 { | 
|  | () => { | 
|  | #[doc = mac1!()] | 
|  | pub struct BufferProvider; | 
|  | } | 
|  | } | 
|  |  | 
|  | macro_rules! mac3 { | 
|  | () => { | 
|  | "Provided by" | 
|  | }; | 
|  | } | 
|  |  | 
|  | // Should not lint. | 
|  | #[doc = mac1!()] | 
|  | pub struct Foo; | 
|  |  | 
|  | // Should not lint. | 
|  | mac2!{} | 
|  |  | 
|  | #[doc = "provided by a [`BufferProvider`](crate::BufferProvider)."] | 
|  | /// bla | 
|  | //~^^ ERROR: redundant_explicit_links | 
|  | pub struct Bla; | 
|  |  | 
|  | #[doc = mac3!()] | 
|  | /// a [`BufferProvider`](crate::BufferProvider). | 
|  | //~^ ERROR: redundant_explicit_links | 
|  | pub fn f() {} |