Latest nightly compiler reports dead_code warnings for structs with private fields
asomers opened this issue · 2 comments
Sometime in the last week the rustc nightly compiler got more aggressive about reporting dead_code
warnings. It now warns whenever a struct contains a private field but no constructor. That catches many structs in libc, which are intended to be initialized with std::mem::zeroed()
. IMHO this is a rustc bug. This ought to be a separate lint so it can be silenced without silencing all dead_code warnings.
Here's an example build failure:
https://cirrus-ci.com/task/6392171014651904?logs=test#L17
I don't think the change is going to get reverted or changed IMO. One workaround would be to add allow(dead_code)
to all affected structs, but that can easily hide potential problems. Another is to change all the private fields to public, and I think this was the suggestion in the upstream issue.
With rust-lang/rust#128404, I think this has been resolved.