@@ -10,34 +10,42 @@ if let StmtKind::Let(local) = stmt.kind
10
10
&& paths::STD_IO_STDIO__PRINT.matches_path(cx, func) // Add the path to `clippy_utils::paths` if needed
11
11
&& args.len() == 1
12
12
&& let ExprKind::Block(block1, None) = args[0].kind
13
- && block1.stmts.len() == 1
13
+ && block1.stmts.len() == 2
14
14
&& let StmtKind::Let(local1) = block1.stmts[0].kind
15
15
&& let Some(init1) = local1.init
16
- && let ExprKind::Array (elements) = init1.kind
16
+ && let ExprKind::Tup (elements) = init1.kind
17
17
&& elements.len() == 1
18
- && let ExprKind::Call(func1, args1) = elements[0].kind
19
- && paths::CORE_FMT_RT_ARGUMENT_NEW_DISPLAY.matches_path(cx, func1) // Add the path to `clippy_utils::paths` if needed
20
- && args1.len() == 1
21
- && let ExprKind::AddrOf(BorrowKind::Ref, Mutability::Not, inner) = args1[0].kind
18
+ && let ExprKind::AddrOf(BorrowKind::Ref, Mutability::Not, inner) = elements[0].kind
22
19
&& let PatKind::Binding(BindingMode::NONE, _, name, None) = local1.pat.kind
23
20
&& name.as_str() == "args"
21
+ && let StmtKind::Let(local2) = block1.stmts[1].kind
22
+ && let Some(init2) = local2.init
23
+ && let ExprKind::Array(elements1) = init2.kind
24
+ && elements1.len() == 1
25
+ && let ExprKind::Call(func1, args1) = elements1[0].kind
26
+ && paths::CORE_FMT_RT_ARGUMENT_NEW_DISPLAY.matches_path(cx, func1) // Add the path to `clippy_utils::paths` if needed
27
+ && args1.len() == 1
28
+ && let ExprKind::Field(object, field_name) = args1[0].kind
29
+ && field_name.as_str() == "0"
30
+ && let PatKind::Binding(BindingMode::NONE, _, name1, None) = local2.pat.kind
31
+ && name1.as_str() == "args"
24
32
&& let Some(trailing_expr) = block1.expr
25
33
&& let ExprKind::Call(func2, args2) = trailing_expr.kind
26
34
&& paths::CORE_FMT_RT_NEW_V1.matches_path(cx, func2) // Add the path to `clippy_utils::paths` if needed
27
35
&& args2.len() == 2
28
36
&& let ExprKind::AddrOf(BorrowKind::Ref, Mutability::Not, inner1) = args2[0].kind
29
- && let ExprKind::Array(elements1 ) = inner1.kind
30
- && elements1 .len() == 2
31
- && let ExprKind::Lit(ref lit) = elements1 [0].kind
37
+ && let ExprKind::Array(elements2 ) = inner1.kind
38
+ && elements2 .len() == 2
39
+ && let ExprKind::Lit(ref lit) = elements2 [0].kind
32
40
&& let LitKind::Str(s, _) = lit.node
33
41
&& s.as_str() == ""
34
- && let ExprKind::Lit(ref lit1) = elements1 [1].kind
42
+ && let ExprKind::Lit(ref lit1) = elements2 [1].kind
35
43
&& let LitKind::Str(s1, _) = lit1.node
36
44
&& s1.as_str() == "\n"
37
45
&& let ExprKind::AddrOf(BorrowKind::Ref, Mutability::Not, inner2) = args2[1].kind
38
46
&& block.expr.is_none()
39
- && let PatKind::Binding(BindingMode::NONE, _, name1 , None) = local.pat.kind
40
- && name1 .as_str() == "print_text"
47
+ && let PatKind::Binding(BindingMode::NONE, _, name2 , None) = local.pat.kind
48
+ && name2 .as_str() == "print_text"
41
49
{
42
50
// report your lint here
43
51
}
0 commit comments