Closed
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)