I have the following set-up:
- SonarScanner CLI
8.0.1.6346-windows-x64obtained fromhttps://binaries.sonarsource.com/Distribution/sonar-scanner-cliby downloading and unpacking the zip file. - Runs in a GitHub Action on a Github-hosted
windows-2022runner - Project language: Rust
- Rust tools installed on runner:
- rustc/cargo
1.93.1 - clippy
0.1.93
- rustc/cargo
- SonarScanner CLI is invoked with
-Dsonar.rust.clippy.enabled=true -Dsonar.verbose=true
- No external clippy report is provided
In the logs of the action, I get the following:
13:36:12.609 INFO Sensor Clippy [rust]
...
13:36:12.624 DEBUG Checking Cargo version
13:36:12.840 DEBUG Cargo version: cargo 1.93.1 (083ac5135 2025-12-15)
13:36:12.840 DEBUG Checking Clippy version
13:36:13.131 DEBUG Clippy version: clippy 0.1.93 (01f6ddf758 2026-02-11)
13:36:13.184 DEBUG Running Clippy: [cargo, clippy, --quiet, --message-format=json, --, -A, clippy::all, -Wclippy::impl_hash_borrow_with_str_and_bytes, -Wclippy::serde_api_misuse, -Wclippy::unit_return_expecting_ord, -Wclippy::infinite_iter, -Wclippy::misnamed_getter, -Wclippy::unsound_collection_transmute, -Wclippy::inverted_saturating_sub, -Wclippy::mem_replace_with_uninit, -Wclippy::uninit_assumed_init, -Wclippy::derived_hash_with_manual_eq, -Wclippy::unit_cmp, -Wclippy::unit_hash, -Wclippy::transmute_null_to_fn, -Wclippy::match_str_case_mismatch, -Wclippy::transmuting_null, -Wclippy::let_and_return, -Wclippy::enum_clike_unportable_variant, -Wclippy::eq_op, -Wclippy::let_underscore_lock, -Wclippy::mistyped_literal_suffixes, -Wclippy::mut_from_ref, -Wclippy::approx_constant, -Wclippy::modulo_one, -Wclippy::unnecessary_semicolon, -Wclippy::wildcard_imports, -Wclippy::unused_io_amount, -Wclippy::wrong_transmute, -Wclippy::inherent_to_string_shadow_display, -Wclippy::iterator_step_by_zero, -Wclippy::async_yields_async, -Wclippy::redundant_field_names, -Wclippy::zst_offset, -Wclippy::iter_skip_zero, -Wclippy::iter_next_loop, -Wclippy::useless_attribute, -Wclippy::never_loop, -Wclippy::derive_ord_xor_partial_ord, -Wclippy::while_immutable_condition, -Wclippy::uninit_vec, -Wclippy::eager_transmute, -Wclippy::vec_resize_to_zero, -Wclippy::while_float, -Wclippy::panicking_unwrap, -Wclippy::vec_init_then_push, -Wclippy::read_line_without_trim, -Wclippy::recursive_format_impl, -Wclippy::ineffective_bit_mask, -Wclippy::possible_missing_comma, -Wclippy::min_max, -Wclippy::invalid_null_ptr_usage, -Wclippy::nonsensical_open_options, -Wclippy::absurd_extreme_comparisons, -Wclippy::not_unsafe_ptr_arg_deref, -Wclippy::option_env_unwrap, -Wclippy::panicking_overflow_checks, -Wclippy::inline_fn_without_body, -Wclippy::ifs_same_cond, -Wclippy::invisible_characters, -Wclippy::non_octal_unix_permissions, -Wclippy::too_many_arguments, -Wclippy::reversed_empty_ranges, -Wclippy::size_of_in_element_count, -Wclippy::suspicious_splitn, -Wclippy::erasing_op, -Wclippy::no_effect, -Wclippy::self_assignment, -Wclippy::string_to_string, -Wclippy::redundant_comparisons, -Wclippy::cast_slice_different_sizes, -Wclippy::out_of_bounds_indexing, -Wclippy::impossible_comparisons, -Wclippy::invalid_regex, -Wclippy::zero_ptr, -Wclippy::overly_complex_bool_expr, -Wclippy::bad_bit_mask, -Wclippy::almost_swapped, -Wclippy::unnecessary_cast]
...
13:37:41.229 WARN error: could not compile `<project-name>` (lib) due to 3 previous errors
13:38:27.889 ERROR Failed to run Clippy
...
13:38:32.924 INFO SonarScanner Engine completed successfully
...
13:38:33.291 INFO EXECUTION SUCCESS
13:38:33.291 INFO Total time: 2:43.741s
If I run cargo clippy manually on the same runner with the same args but without --quiet, I get to see what these three errors are:
error[E0602]: unknown lint: `clippy::misnamed_getter`
|
= help: did you mean: `clippy::misnamed_getters`
= note: requested on the command line with `-W clippy::misnamed_getter`
= note: `-D unknown-lints` implied by `-D warnings`
= help: to override `-D warnings` add `#[allow(unknown_lints)]`
error: lint `clippy::invalid_null_ptr_usage` has been renamed to `invalid_null_arguments`
|
= help: use the new name `invalid_null_arguments`
= note: requested on the command line with `-W clippy::invalid_null_ptr_usage`
= note: `-D renamed-and-removed-lints` implied by `-D warnings`
= help: to override `-D warnings` add `#[allow(renamed_and_removed_lints)]`
error: lint `clippy::string_to_string` has been removed: `clippy:implicit_clone` covers those cases
|
= note: requested on the command line with `-W clippy::string_to_string`
For more information about this error, try `rustc --explain E0602`.
It looks like the built-in clippy invokation of SonarScanner CLI uses lints which are unknown/outdated w.r.t. the installed cargo/clippy version.
Is SonarScanner CLI 8.0.1.6346-windows-x64 only compatible with certain older cargo/clippy versions for the built-in clippy invokation?