mirror of
https://github.com/rust-lang/rust-clippy
synced 2024-11-24 13:43:17 +00:00
885f97e2ce
[`unnecessary_to_owned`]: catch `to_owned` on byte slice to create temporary `&str` Closes #11648 Detects the pattern `&String::from_utf8(bytes.to_vec()).unwrap()` and suggests `core::str::from_utf8(bytes).unwrap()`, which avoids the unnecessary intermediate allocation. I decided to put this in the existing `unnecessary_to_owned` lint (rather than creating a new lint) for a few reasons: - we get to use some of its logic (for example, recognizing any of the functions in the `to_owned` family, e.g. `to_vec`) - the actual inefficient operation that can be avoided here is the call to `.to_vec()`, so this is in a way similar to the other cases caught by `unnecessary_to_owned`, just through a bunch of type conversions - we can make this more "generic" later and catch other cases, so imo it's best not to tie this lint specifically to the `String` type changelog: [`unnecessary_to_owned`]: catch `&String::from_utf8(bytes.to_vec()).unwrap()` and suggest `core::str::from_utf8(bytes).unwrap()` |
||
---|---|---|
.. | ||
ast_utils | ||
mir | ||
ty/type_certainty | ||
ast_utils.rs | ||
attrs.rs | ||
check_proc_macro.rs | ||
comparisons.rs | ||
consts.rs | ||
diagnostics.rs | ||
eager_or_lazy.rs | ||
higher.rs | ||
hir_utils.rs | ||
lib.rs | ||
macros.rs | ||
numeric_literal.rs | ||
paths.rs | ||
ptr.rs | ||
qualify_min_const_fn.rs | ||
source.rs | ||
str_utils.rs | ||
sugg.rs | ||
sym_helper.rs | ||
ty.rs | ||
usage.rs | ||
visitors.rs |