Setup global cargo lint configuration (#13691)

# Description
`cargo` somewhat recently gained the capability to store `lints`
settings for the crate and workspace, that can override the defaults
from `rustc` and `clippy` lints. This means we can enforce some lints
without having to actively pass them to clippy via `cargo clippy -- -W
...`. So users just forking the repo have an easier time to follow
similar requirements like our CI.

## Limitation

An exception that remains is that those lints apply to both the primary
code base and the tests. Thus we can't include e.g. `unwrap_used`
without generating noise in the tests. Here the setup in the CI remains
the most helpful.

## Included lints

- Add `clippy::unchecked_duration_subtraction` (added by #12549)
# User-Facing Changes
Running `cargo clippy --workspace` should be closer to the CI. This has
benefits for editor configured runs of clippy and saves you from having
to use `toolkit` to be close to CI in more cases.
This commit is contained in:
Stefan Holderbach
2024-08-28 23:37:17 +02:00
committed by GitHub
parent 644bebf4c6
commit 84e1ac27e5
31 changed files with 126 additions and 30 deletions

View File

@ -10,6 +10,9 @@ version = "0.97.2"
[lib]
bench = false
[lints]
workspace = true
[dependencies]
nu-protocol = { path = "../nu-protocol", version = "0.97.2" }
nu-plugin-protocol = { path = "../nu-plugin-protocol", version = "0.97.2", default-features = false }
@ -25,4 +28,4 @@ default = ["local-socket"]
local-socket = ["interprocess", "nu-plugin-protocol/local-socket"]
[target.'cfg(target_os = "windows")'.dependencies]
windows = { workspace = true }
windows = { workspace = true }