From 39acbdd53d7242130f14dfc5e301ddfb03218b8b Mon Sep 17 00:00:00 2001 From: David Tolnay Date: Fri, 12 Apr 2019 15:45:32 -0700 Subject: clippy: Add script to run Clippy on crosvm The script suppresses all currently failing lints. I broke this down into lints that I believe are worth addressing and lints that I wouldn't mind keeping suppressed indefinitely. TEST=bin/clippy Change-Id: I967f3292ce2f790907619e87fe9f5a23bfef4cf4 Reviewed-on: https://chromium-review.googlesource.com/1566652 Commit-Ready: David Tolnay Commit-Ready: ChromeOS CL Exonerator Bot Tested-by: David Tolnay Tested-by: kokoro Reviewed-by: David Tolnay --- bin/clippy | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100755 bin/clippy (limited to 'bin') diff --git a/bin/clippy b/bin/clippy new file mode 100755 index 0000000..a7a70c1 --- /dev/null +++ b/bin/clippy @@ -0,0 +1,75 @@ +#!/bin/bash + +# Run `cargo clippy` on all Rust code in crosvm with a mindful set of lints +# suppressed. + +set -euo pipefail + +# Change into directory of script, which is crosvm/bin. +cd "$(dirname "${BASH_SOURCE[0]}")" + +# Jump up to root directory of crosvm repo. +cd .. + +SUPPRESS=( + # To be resolved. + assign_op_pattern + block_in_if_condition_stmt + clone_on_copy + collapsible_if + const_static_lifetime + extra_unused_lifetimes + into_iter_on_array + let_and_return + let_unit_value + match_ref_pats + needless_return + option_map_unit_fn + question_mark + range_plus_one + redundant_closure + redundant_pattern_matching + single_match + string_lit_as_bytes + toplevel_ref_arg + unit_arg + unneeded_field_pattern + unused_unit + useless_format + while_let_loop + + # To be resolved or suppressed locally. + absurd_extreme_comparisons + cast_ptr_alignment + if_same_then_else + ptr_arg + + # We don't care about these lints. Okay to remain suppressed globally. + blacklisted_name + cast_lossless + cyclomatic_complexity + enum_variant_names + identity_op + len_without_is_empty + len_zero + match_bool + match_wild_err_arm + module_inception + needless_bool + new_without_default + or_fun_call + should_implement_trait + single_char_pattern + too_many_arguments + transmute_ptr_to_ptr + trivially_copy_pass_by_ref + type_complexity + unreadable_literal + useless_let_if_seq + useless_transmute +) + +# Needed or else clippy won't re-run on code that has already compiled. +cargo clean + +cargo clippy --all-features -- ${SUPPRESS[@]/#/-Aclippy::} "$@" -- cgit 1.4.1