Skip to content

Commit

Permalink
Document how removing a type's field can be bad and what to do instead
Browse files Browse the repository at this point in the history
Related to rust-lang#119645
  • Loading branch information
shepmaster committed Mar 2, 2024
1 parent 5257aee commit 2fe8572
Showing 1 changed file with 14 additions and 0 deletions.
14 changes: 14 additions & 0 deletions compiler/rustc_lint_defs/src/builtin.rs
Original file line number Diff line number Diff line change
Expand Up @@ -702,6 +702,20 @@ declare_lint! {
/// `PhantomData`.
///
/// Otherwise consider removing the unused code.
///
/// ### Limitations
///
/// Removing fields that are only used for side-effects and never
/// read will result in behavioral changes. Examples of this
/// include:
///
/// - If a field's value performs an action when it is dropped.
/// - If a field's type does not implement an auto trait
/// (e.g. `Send`, `Sync`, `Unpin`).
///
/// For side-effects from field values, this lint should be
/// allowed on those fields. For side-effects from field types,
/// `PhantomData` should be used.
pub DEAD_CODE,
Warn,
"detect unused, unexported items"
Expand Down

0 comments on commit 2fe8572

Please sign in to comment.