# Static rustc_lint_defs::builtin::DEAD_CODE

source ·

    pub static DEAD_CODE: &Lint

Expand description

The `dead_code` lint detects unused, unexported items.

#### §Example

    fn foo() {}

{{produces}}

#### §Explanation

Dead code may signal a mistake or unfinished code. To silence the warning for individual items, prefix the name with an underscore such as `_foo`. If it was intended to expose the item outside of the crate, consider adding a visibility modifier like `pub`.

To preserve the numbering of tuple structs with unused fields, change the unused fields to have unit type or use `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 dropping field values, this lint should be allowed on those fields. For side-effects from containing field types, `PhantomData` should be used.