-
Notifications
You must be signed in to change notification settings - Fork 13.6k
Closed
Labels
A-lintsArea: Lints (warnings about flaws in source code) such as unused_mut.Area: Lints (warnings about flaws in source code) such as unused_mut.A-visibilityArea: Visibility / privacyArea: Visibility / privacyC-bugCategory: This is a bug.Category: This is a bug.regression-from-stable-to-nightlyPerformance or correctness regression from stable to nightly.Performance or correctness regression from stable to nightly.
Description
I tried this code: https://play.rust-lang.org/?version=nightly&mode=debug&edition=2021&gist=028239a954b1baf0326d31262947a247
#![warn(unreachable_pub)]
use inner::FlowData;
mod inner {
pub struct FlowData {
pub data: Vec<u8>,
}
}
pub fn f() -> tokio::sync::mpsc::Receiver<FlowData> {
todo!()
}
async fn foo() {
println!("{:?}", f().recv().await.unwrap().data);
}
I expected to see this happen: No unreachable_pub lint. foo
only uses publicly accessible APIs, it never mentions inner
.
Instead, this happened:
warning: unreachable `pub` field
--> src/lib.rs:6:9
|
6 | pub data: Vec<u8>,
| ---^^^^^^^^^^^^^^
| |
| help: consider restricting its visibility: `pub(crate)`
|
note: the lint level is defined here
--> src/lib.rs:1:9
|
1 | #![warn(unreachable_pub)]
| ^^^^^^^^^^^^^^^
Meta
rustc --version --verbose
: 1.60.0-nightly (2022-01-13 22e491a)
Metadata
Metadata
Assignees
Labels
A-lintsArea: Lints (warnings about flaws in source code) such as unused_mut.Area: Lints (warnings about flaws in source code) such as unused_mut.A-visibilityArea: Visibility / privacyArea: Visibility / privacyC-bugCategory: This is a bug.Category: This is a bug.regression-from-stable-to-nightlyPerformance or correctness regression from stable to nightly.Performance or correctness regression from stable to nightly.