6a281e9a73
Fix lint `manual_slice_size_calculation` when a slice is ref more than once When a slice is ref more than once, current suggestion given by `manual_slice_size_calculation` is wrong. For example: ```rs let s: &[i32] = &[1, 2][..]; let ss: &&[i32] = &s; // <----- let _ = size_of::<i32>() * ss.len(); ``` clippy now suggests: ```patch - let _ = size_of::<i32>() * ss.len(); + let _ = size_of_val(ss); ``` However, this can result in calculating the size of `&[i32]`, instead of `[i32]` (this wrong suggestion also leads to `size_of_ref` warning: https://rust-lang.github.io/rust-clippy/master/index.html#/size_of_ref ) Now I am sending this PR to fix this bug, so that clippy will suggest (some deref added): ```patch - let _ = size_of::<i32>() * ss.len(); + let _ = size_of_val(*ss); ``` As I am not familiar with current clippy code-base, please correct me if I am not doing well or I can do it better :) changelog: [`manual_slice_size_calculation`]: fix a bug when a slice is ref more than once. |
||
---|---|---|
.. | ||
test_utils | ||
ui | ||
ui-cargo | ||
ui-internal | ||
ui-toml | ||
workspace_test | ||
check-fmt.rs | ||
clippy.toml | ||
compile-test.rs | ||
config-metadata.rs | ||
dogfood.rs | ||
headers.rs | ||
integration.rs | ||
lint_message_convention.rs | ||
missing-test-files.rs | ||
versioncheck.rs | ||
workspace.rs |