#!/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::} "$@"