Add CONST_ITEM_MUTATION lint
Fixes #74053 Fixes #55721 This PR adds a new lint `CONST_ITEM_MUTATION`. Given an item `const FOO: SomeType = ..`, this lint fires on: * Attempting to write directly to a field (`FOO.field = some_val`) or array entry (`FOO.array_field[0] = val`) * Taking a mutable reference to the `const` item (`&mut FOO`), including through an autoderef `FOO.some_mut_self_method()` The lint message explains that since each use of a constant creates a new temporary, the original `const` item will not be modified.
This commit is contained in:
@@ -7,12 +7,14 @@ pub mod storage;
|
||||
|
||||
mod alignment;
|
||||
pub mod collect_writes;
|
||||
mod find_self_call;
|
||||
mod graphviz;
|
||||
pub(crate) mod pretty;
|
||||
pub(crate) mod spanview;
|
||||
|
||||
pub use self::aggregate::expand_aggregate;
|
||||
pub use self::alignment::is_disaligned;
|
||||
pub use self::find_self_call::find_self_call;
|
||||
pub use self::graphviz::write_node_label as write_graphviz_node_label;
|
||||
pub use self::graphviz::{graphviz_safe_def_name, write_mir_graphviz};
|
||||
pub use self::pretty::{dump_enabled, dump_mir, write_mir_pretty, PassWhere};
|
||||
|
||||
Reference in New Issue
Block a user