Skip to content

unnecessary_safety_comment does not lint the first item of a module without a body #14554

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Open
ojeda opened this issue Apr 5, 2025 · 0 comments
Labels
C-bug Category: Clippy is not doing the correct thing I-false-negative Issue: The lint should have been triggered on code, but wasn't

Comments

@ojeda
Copy link
Contributor

ojeda commented Apr 5, 2025

Summary

unnecessary_safety_comment does not lint the first item inside a module without a body (i.e. loaded from a file).

Possibly related: #14553.
Possibly related: #14555.
Possibly related: #14556.

Lint Name

unnecessary_safety_comment

Reproducer

https://godbolt.org/z/776jh93s8

I tried this code:

File a.rs:

mod b;

File b.rs:

// This line should avoid #14553.

// SAFETY: ...
mod x {}

// SAFETY: ...
mod y {}

I expected to see this happen: Two lints, for both safety comments.

Instead, this happened: Only the comment on y is linted.

Note that there is no false negative if we embed module b:

mod b {
    // This line should avoid #14553.

    // SAFETY: ...
    mod x {}

    // SAFETY: ...
    mod y {}
}

Version

rustc 1.86.0 (05f9846f8 2025-03-31)
rustc 1.88.0-nightly (17ffbc81a 2025-04-04)
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
C-bug Category: Clippy is not doing the correct thing I-false-negative Issue: The lint should have been triggered on code, but wasn't
Projects
None yet
Development

No branches or pull requests

1 participant