Skip to content

Commit c1dd158

Browse files
fixed test
1 parent 3dc116b commit c1dd158

File tree

5 files changed

+51
-9
lines changed

5 files changed

+51
-9
lines changed

clippy_lints/src/methods/append_instead_of_extend.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@ pub(super) fn check(cx: &LateContext<'_>, expr: &Expr<'_>, recv: &Expr<'_>, arg:
1616
//check source object
1717
if let ExprKind::MethodCall(src_method, _, [drain_vec, drain_arg], _) = &arg.kind;
1818
if src_method.ident.as_str() == "drain";
19-
let src_ty = cx.typeck_results().expr_ty(&drain_vec).peel_refs();
19+
let src_ty = cx.typeck_results().expr_ty(drain_vec).peel_refs();
2020
if is_type_diagnostic_item(cx, src_ty, sym::vec_type);
2121
//check drain range
22-
let src_ty_range = cx.typeck_results().expr_ty(&drain_arg).peel_refs();
22+
let src_ty_range = cx.typeck_results().expr_ty(drain_arg).peel_refs();
2323
if is_type_lang_item(cx, src_ty_range, LangItem::RangeFull);
2424
let mut applicability = Applicability::MachineApplicable;
2525
then {

clippy_lints/src/methods/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1035,7 +1035,7 @@ declare_clippy_lint! {
10351035
declare_clippy_lint! {
10361036
/// **What it does:** Checks for occurrences where one vector gets extended instead of append
10371037
///
1038-
/// **Why is this bad?** Using `append` instead of `extend` is more precise and faster
1038+
/// **Why is this bad?** Using `append` instead of `extend` is more concise and faster
10391039
///
10401040
/// **Known problems:** None.
10411041
///
@@ -1053,7 +1053,7 @@ declare_clippy_lint! {
10531053
/// ```
10541054
pub APPEND_INSTEAD_OF_EXTEND,
10551055
perf,
1056-
"default lint description"
1056+
"using vec.append(&mut vec) to move the full range of a vecor to another"
10571057
}
10581058

10591059
declare_clippy_lint! {

tests/ui/append_instead_of_extend.fixed

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,11 @@ fn main() {
1313

1414
vec4.append(&mut vec3);
1515

16+
let mut vec10 = return_vector();
17+
let mut vec11: std::vec::Vec<u8> = Vec::new();
18+
19+
vec11.append(&mut vec10);
20+
1621
//won't get linted it dosen't move the entire content of a vec into another
1722
let mut test1 = vec![0u8, 10];
1823
let mut test2: std::vec::Vec<u8> = Vec::new();
@@ -24,16 +29,29 @@ fn main() {
2429

2530
vec3.append(&mut vec7);
2631

27-
28-
2932
let mut vec5 = vec![0u8; 1024];
3033
let mut vec6: std::vec::Vec<u8> = Vec::new();
3134

3235
vec5.extend(vec6.drain(..4));
3336

37+
let mut vec8 = return_vector();
38+
let mut vec9: std::vec::Vec<u8> = Vec::new();
39+
40+
vec8.append(&mut vec9);
41+
3442
//won't get linted because it is not a vec
3543

3644
let mut heap = BinaryHeap::from(vec![1, 3]);
3745
let mut heap2 = BinaryHeap::from(vec![]);
3846
heap2.extend(heap.drain())
3947
}
48+
49+
fn return_vector() -> Vec<u8> {
50+
let mut new_vector = vec![];
51+
52+
for i in 1..10 {
53+
new_vector.push(i)
54+
}
55+
56+
new_vector
57+
}

tests/ui/append_instead_of_extend.rs

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,11 @@ fn main() {
1313

1414
vec4.extend(vec3.drain(..));
1515

16+
let mut vec10 = return_vector();
17+
let mut vec11: std::vec::Vec<u8> = Vec::new();
18+
19+
vec11.extend(vec10.drain(..));
20+
1621
//won't get linted it dosen't move the entire content of a vec into another
1722
let mut test1 = vec![0u8, 10];
1823
let mut test2: std::vec::Vec<u8> = Vec::new();
@@ -24,16 +29,29 @@ fn main() {
2429

2530
vec3.append(&mut vec7);
2631

27-
28-
2932
let mut vec5 = vec![0u8; 1024];
3033
let mut vec6: std::vec::Vec<u8> = Vec::new();
3134

3235
vec5.extend(vec6.drain(..4));
3336

37+
let mut vec8 = return_vector();
38+
let mut vec9: std::vec::Vec<u8> = Vec::new();
39+
40+
vec8.append(&mut vec9);
41+
3442
//won't get linted because it is not a vec
3543

3644
let mut heap = BinaryHeap::from(vec![1, 3]);
3745
let mut heap2 = BinaryHeap::from(vec![]);
3846
heap2.extend(heap.drain())
3947
}
48+
49+
fn return_vector() -> Vec<u8> {
50+
let mut new_vector = vec![];
51+
52+
for i in 1..10 {
53+
new_vector.push(i)
54+
}
55+
56+
new_vector
57+
}

tests/ui/append_instead_of_extend.stderr

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,11 @@ error: use of `extend` instead of `append` for adding the full range of a second
1212
LL | vec4.extend(vec3.drain(..));
1313
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `vec4.append(&mut vec3)`
1414

15-
error: aborting due to 2 previous errors
15+
error: use of `extend` instead of `append` for adding the full range of a second vector
16+
--> $DIR/append_instead_of_extend.rs:19:5
17+
|
18+
LL | vec11.extend(vec10.drain(..));
19+
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `vec11.append(&mut vec10)`
20+
21+
error: aborting due to 3 previous errors
1622

0 commit comments

Comments
 (0)