Skip to content

test_attr_in_doctest emits for attribute not related to actual test functions #17724

Description

@ModProg

Summary

It seams the lint just does a plaintext search and therefor catches #[test] even inside of macros i.e. when it is not actually annotating a test function.

Examples for macros that trigger but shouldn't: stringify!, quote::quote!, syn::parse_quote!, ... probably makes sense to just disable the lint whenever it is inside a macro.

Lint Name

test_attr_in_doctest

Reproducer

I tried this code:

#[warn(clippy::pedantic)]

/// ```
/// assert_eq!(stringify!(#[test]), "#[test]");
/// ```
pub struct Test;

I saw this happen:

warning: unit tests in doctest are not executed
 --> src/lib.rs:4:27
  |
4 | /// assert_eq!(stringify!(#[test]), "#[test]");
  |                           ^^^^^^^
  |
  = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.98.0/index.html#test_attr_in_doctest
  = note: `#[warn(clippy::test_attr_in_doctest)]` on by default

I expected to see this happen:
No lint emitted, as #[test] is not actually annotating a test function.

Version

cargo 1.98.1 (797e8a9bc 2026-08-05)
release: 1.98.1
commit-hash: 797e8a9bca276c1c9f9f738d2a20f484fa4eea9d
commit-date: 2026-08-05
host: x86_64-unknown-linux-gnu
libgit2: 1.9.4 (sys:0.21.0 vendored)
libcurl: 8.21.0-DEV (sys:0.4.90+curl-8.21.0 vendored ssl:OpenSSL/3.6.3)
ssl: OpenSSL 3.6.3 9 Jun 2026
os: Arch Linux Rolling Release [64-bit]

Additional Labels

No response

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

C-bugCategory: Clippy is not doing the correct thingI-false-positiveIssue: The lint was triggered on code it shouldn't have

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions