Skip to content

#![allow(unknown_lints)] warns about unknown lints in another module #84936

@wtfsck

Description

@wtfsck

It seems like #![allow(unknown_lints)] only works in the same file where it was added, and not in any sub modules in other files.

lib.rs:

#![allow(unknown_lints)] #![allow(dead_code)] // no warning #![allow(not_a_real_lint)] mod other; // no warning #[allow(not_a_real_lint)] fn m() {} mod mm { // no warning #[allow(not_a_real_lint)] fn m() {} }

other.rs

// warning: unknown lint: `not_a_real_lint` #![allow(not_a_real_lint)] // warning: unknown lint: `not_a_real_lint` #[allow(not_a_real_lint)] fn m() {}

I expected to see this happen:

No warnings in other.rs about unknown lints

Instead, this happened:

Warnings about unknown lints in other.rs

warning: unknown lint: `not_a_real_lint` --> src\other.rs:2:10 | 2 | #![allow(not_a_real_lint)] | ^^^^^^^^^^^^^^^ | = note: `#[warn(unknown_lints)]` on by default warning: unknown lint: `not_a_real_lint` --> src\other.rs:5:9 | 5 | #[allow(not_a_real_lint)] | ^^^^^^^^^^^^^^^ warning: unknown lint: `not_a_real_lint` --> src\other.rs:2:10 | 2 | #![allow(not_a_real_lint)] | ^^^^^^^^^^^^^^^ warning: 3 warnings emitted 

Meta

rustc --version --verbose:

rustc 1.51.0 (2fd73fabe 2021-03-23) binary: rustc commit-hash: 2fd73fabe469357a12c2c974c140f67e7cdd76d0 commit-date: 2021-03-23 host: x86_64-pc-windows-msvc release: 1.51.0 LLVM version: 11.0.1 

Also repros with 1.52.0 beta.

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-bugCategory: This is a bug.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions