@@ -12,27 +12,53 @@ if let StmtKind::Let(local) = stmt.kind
12
12
&& args.len() == 1
13
13
&& let ExprKind::Call(func1, args1) = args[0].kind
14
14
&& let ExprKind::Path(ref qpath1) = func1.kind
15
- && match_qpath(qpath1, &["format_arguments", "new_v1 "])
15
+ && match_qpath(qpath1, &["format_arguments", "new "])
16
16
&& args1.len() == 2
17
- && let ExprKind::AddrOf(BorrowKind::Ref, Mutability::Not, inner) = args1[0].kind
17
+ && let ExprKind::Block(block1, None) = args1[0].kind
18
+ && block1.stmts.is_empty()
19
+ && let Some(trailing_expr) = block1.expr
20
+ && let ExprKind::Call(func2, args2) = trailing_expr.kind
21
+ && let ExprKind::Path(ref qpath2) = func2.kind
22
+ && match_qpath(qpath2, &["format_template", "new"])
23
+ && args2.len() == 1
24
+ && let ExprKind::AddrOf(BorrowKind::Ref, Mutability::Not, inner) = args2[0].kind
18
25
&& let ExprKind::Array(elements) = inner.kind
19
- && elements.len() == 2
20
- && let ExprKind::Lit(ref lit) = elements[0].kind
21
- && let LitKind::Str(s, _) = lit.node
22
- && s.as_str() == ""
23
- && let ExprKind::Lit(ref lit1) = elements[1].kind
24
- && let LitKind::Str(s1, _) = lit1.node
25
- && s1.as_str() == "\n"
26
+ && elements.len() == 4
27
+ && let ExprKind::Call(func3, args3) = elements[0].kind
28
+ && let ExprKind::Path(ref qpath3) = func3.kind
29
+ && match_qpath(qpath3, &["format_piece", "num"])
30
+ && args3.len() == 1
31
+ && let ExprKind::Lit(ref lit) = args3[0].kind
32
+ && let LitKind::Int(16140901201934811136, LitIntType::Unsigned(UintTy::Usize)) = lit.node
33
+ && let ExprKind::Call(func4, args4) = elements[1].kind
34
+ && let ExprKind::Path(ref qpath4) = func4.kind
35
+ && match_qpath(qpath4, &["format_piece", "num"])
36
+ && args4.len() == 1
37
+ && let ExprKind::Lit(ref lit1) = args4[0].kind
38
+ && let LitKind::Int(1, LitIntType::Unsigned(UintTy::Usize)) = lit1.node
39
+ && let ExprKind::Call(func5, args5) = elements[2].kind
40
+ && let ExprKind::Path(ref qpath5) = func5.kind
41
+ && match_qpath(qpath5, &["format_piece", "str"])
42
+ && args5.len() == 1
43
+ && let ExprKind::Lit(ref lit2) = args5[0].kind
44
+ && let LitKind::Str(s, _) = lit2.node
45
+ && s.as_str() == "\n"
46
+ && let ExprKind::Call(func6, args6) = elements[3].kind
47
+ && let ExprKind::Path(ref qpath6) = func6.kind
48
+ && match_qpath(qpath6, &["format_piece", "num"])
49
+ && args6.len() == 1
50
+ && let ExprKind::Lit(ref lit3) = args6[0].kind
51
+ && let LitKind::Int(0, LitIntType::Unsigned(UintTy::Usize)) = lit3.node
26
52
&& let ExprKind::AddrOf(BorrowKind::Ref, Mutability::Not, inner1) = args1[1].kind
27
53
&& let ExprKind::Array(elements1) = inner1.kind
28
54
&& elements1.len() == 1
29
- && let ExprKind::Call(func2, args2 ) = elements1[0].kind
30
- && let ExprKind::Path(ref qpath2 ) = func2 .kind
31
- && match_qpath(qpath2 , &["format_argument", "new_display"])
32
- && args2 .len() == 1
33
- && let ExprKind::AddrOf(BorrowKind::Ref, Mutability::Not, inner2) = args2 [0].kind
34
- && let ExprKind::Path(ref qpath3 ) = inner2.kind
35
- && match_qpath(qpath3 , &["x"])
55
+ && let ExprKind::Call(func7, args7 ) = elements1[0].kind
56
+ && let ExprKind::Path(ref qpath7 ) = func7 .kind
57
+ && match_qpath(qpath7 , &["format_argument", "new_display"])
58
+ && args7 .len() == 1
59
+ && let ExprKind::AddrOf(BorrowKind::Ref, Mutability::Not, inner2) = args7 [0].kind
60
+ && let ExprKind::Path(ref qpath8 ) = inner2.kind
61
+ && match_qpath(qpath8 , &["x"])
36
62
&& block.expr.is_none()
37
63
&& let PatKind::Binding(BindingMode::NONE, _, name, None) = local.pat.kind
38
64
&& name.as_str() == "print_text"
0 commit comments