]> git.lizzy.rs Git - rust.git/commitdiff
Auto merge of #75573 - Aaron1011:feature/const-mutation-lint, r=oli-obk
authorbors <bors@rust-lang.org>
Thu, 10 Sep 2020 05:54:26 +0000 (05:54 +0000)
committerbors <bors@rust-lang.org>
Thu, 10 Sep 2020 05:54:26 +0000 (05:54 +0000)
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.


Trivial merge