Skip to content
Snippets Groups Projects
Commit c9410186 authored by Squirrel's avatar Squirrel Committed by GitHub
Browse files

add clippy to CI (#9694)


* Focus on correctness lints. This relies on a compiler patch that landed 8th July 2021.
If people are using an earlier version of the compiler everything will still work unless they try and run clippy.

Co-authored-by: default avatarBastian Köcher <bkchr@users.noreply.github.com>
Co-authored-by: default avatarDenis Pisarev <denis.pisarev@parity.io>
parent 06c4e209
No related merge requests found
#
# An auto defined `clippy` feature was introduced,
# but it was found to clash with user defined features,
# so was renamed to `cargo-clippy`.
#
# If you want standard clippy run:
# RUSTFLAGS= cargo clippy
[target.'cfg(feature = "cargo-clippy")']
rustflags = [
"-Aclippy::all",
"-Dclippy::correctness",
"-Aclippy::if-same-then-else",
"-Aclippy::clone-double-ref"
]
......@@ -21,7 +21,6 @@ rls*.log
.local
**/hfuzz_target/
**/hfuzz_workspace/
.cargo/
.cargo-remote.toml
*.bin
*.iml
......
......@@ -311,7 +311,7 @@ cargo-deny:
when: always
paths:
- deny.log
# FIXME: Temorarily allow to fail.
# FIXME: Temporarily allow to fail.
allow_failure: true
cargo-fmt:
......@@ -321,6 +321,13 @@ cargo-fmt:
script:
- cargo +nightly fmt --all -- --check
cargo-clippy:
stage: test
<<: *docker-env
<<: *test-refs
script:
- SKIP_WASM_BUILD=1 env -u RUSTFLAGS cargo +nightly clippy
cargo-check-benches:
stage: test
<<: *docker-env
......
......@@ -304,7 +304,7 @@ pub fn create_wasm_runtime_with_code(
//
// We drop the cache_path here to silence warnings that cache_path is not used if
// compiling without the `wasmtime` flag.
drop(cache_path);
let _ = cache_path;
sc_executor_wasmi::create_runtime(
blob,
......
......@@ -85,13 +85,14 @@ struct SeenRequestsKey<B: BlockT> {
support_multiple_justifications: bool,
}
#[allow(clippy::derive_hash_xor_eq)]
impl<B: BlockT> Hash for SeenRequestsKey<B> {
fn hash<H: Hasher>(&self, state: &mut H) {
self.peer.hash(state);
self.max_blocks.hash(state);
self.direction.hash(state);
self.attributes.hash(state);
self.support_multiple_justifications.hash(state);
match self.from {
BlockId::Hash(h) => h.hash(state),
BlockId::Number(n) => n.hash(state),
......
......@@ -78,6 +78,7 @@ struct SeenRequestsKey<B: BlockT> {
start: Vec<u8>,
}
#[allow(clippy::derive_hash_xor_eq)]
impl<B: BlockT> Hash for SeenRequestsKey<B> {
fn hash<H: Hasher>(&self, state: &mut H) {
self.peer.hash(state);
......
......@@ -78,7 +78,7 @@ pub trait GetCallMetadata {
}
/// The version of a crate.
#[derive(RuntimeDebug, Eq, PartialEq, Encode, Decode, Ord, Clone, Copy, Default)]
#[derive(RuntimeDebug, Eq, PartialEq, Encode, Decode, Clone, Copy, Default)]
pub struct CrateVersion {
/// The major version of the crate.
pub major: u16,
......@@ -94,14 +94,17 @@ impl CrateVersion {
}
}
impl sp_std::cmp::PartialOrd for CrateVersion {
fn partial_cmp(&self, other: &Self) -> Option<sp_std::cmp::Ordering> {
let res = self
.major
impl sp_std::cmp::Ord for CrateVersion {
fn cmp(&self, other: &Self) -> sp_std::cmp::Ordering {
self.major
.cmp(&other.major)
.then_with(|| self.minor.cmp(&other.minor).then_with(|| self.patch.cmp(&other.patch)));
.then_with(|| self.minor.cmp(&other.minor).then_with(|| self.patch.cmp(&other.patch)))
}
}
Some(res)
impl sp_std::cmp::PartialOrd for CrateVersion {
fn partial_cmp(&self, other: &Self) -> Option<sp_std::cmp::Ordering> {
Some(<Self as Ord>::cmp(&self, other))
}
}
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment