Clippy lints / Style
Clippy lint · Style · checked with Clippy 0.1.99
clippy::trim_split_whitespace: found call to `str::trim` before `str::split_whitespace`
What it meansWarns about calling str::trim (or variants) before str::split_whitespace. It is in the style group and warns by default.
What you see
warning: found call to `str::trim` before `str::split_whitespace` --> main.rs:3:11 | 3 | " A B C ".trim().split_whitespace(); | ^^^^^^^ help: remove `trim()` | = help: for further information visit https://rust-lang.github.io/rust-clippy/stable/index.html#trim_split_whitespace = note: `#[warn(clippy::trim_split_whitespace)]` on by default
Real output of Clippy 0.1.99 (Rust 1.99) on the example below. Names and line numbers in yours will differ.
Does it matter?
split_whitespace already ignores leading and trailing whitespace.
Code that works but is not idiomatic Rust. Warns by default.
How to fix it
Clippy can fix this one for you: run cargo clippy --fix (add --allow-dirty if you have uncommitted changes). Review the diff before you commit.
Flagged
" A B C ".trim().split_whitespace();
Write this instead
" A B C ".split_whitespace();
Turn it off, or on
Allow it where it does not fit your code, as narrowly as you can:
On one item
#[allow(clippy::trim_split_whitespace)]
fn my_function() { /* ... */ }Whole crate (Cargo.toml)
[lints.clippy]
trim_split_whitespace = "allow"One run
cargo clippy -- -A clippy::trim-split-whitespaceThe [lints] table needs Rust 1.74 or newer. In a workspace, put it under [workspace.lints.clippy] and add [lints] workspace = true to each member.
Clippy's own documentation
What it does
Warns about calling str::trim (or variants) before str::split_whitespace.
Why is this bad?
split_whitespace already ignores leading and trailing whitespace.
Example
" A B C ".trim().split_whitespace();
Use instead:
" A B C ".split_whitespace();
From the Clippy lint list (0.1.99), part of the Rust project, MIT or Apache-2.0. Official entry.
Related lints
- needless_returnunneeded `return` statement
- new_without_defaultChecks for public types with a pub fn new() -> Self method and no implementation of Default
- len_zeroChecks for getting the length of something via .len() just to compare to zero, and suggests using .is_empty() where applicable
- to_digit_is_someChecks for .to_digit(..).is_some() on chars
- to_string_trait_impldirect implementation of `ToString`
- toplevel_ref_arg`ref` directly on a function parameter does not prevent taking ownership of the passed argument. Consider using a reference type instead
- unnecessary_fallible_conversionsuse of a fallible conversion when an infallible one could be used
- unnecessary_foldthis `.fold` can be written more succinctly using another method
- unnecessary_lazy_evaluationsunnecessary closure used to substitute value for `Option::None`
All 847 Clippy lints · Rust compiler errors · Cargo.toml checker
Up next
Related lintclippy::needless_returnunneeded `return` statementRead it next →Did this answer your question?