11if_chain! {
2- if let ExprKind::Block(ref block) = expr.node;
3- if let StmtKind::Local(ref local) = block.node;
4- if let Some(ref init) = local.init;
5- if let ExprKind::Match(ref expr, ref arms, MatchSource::ForLoopDesugar) = init.node;
6- if let ExprKind::Call(ref func, ref args) = expr.node;
2+ if let ExprKind::Use(ref expr) = expr.node;
3+ if let ExprKind::Match(ref expr1, ref arms, MatchSource::ForLoopDesugar) = expr.node;
4+ if let ExprKind::Call(ref func, ref args) = expr1.node;
75 if let ExprKind::Path(ref path) = func.node;
86 if match_qpath(path, &["{{root}}", "std", "iter", "IntoIterator", "into_iter"]);
97 if args.len() == 1;
@@ -13,12 +11,12 @@ if_chain! {
1311 // unimplemented: field checks
1412 if arms.len() == 1;
1513 if let ExprKind::Loop(ref body, ref label, LoopSource::ForLoop) = arms[0].body.node;
16- if let StmtKind::Local(ref local1 ) = body.node;
17- if let PatKind::Binding(BindingAnnotation::Mutable, _, name, None) = local1 .pat.node;
14+ if let StmtKind::Local(ref local ) = body.node;
15+ if let PatKind::Binding(BindingAnnotation::Mutable, _, name, None) = local .pat.node;
1816 if name.node.as_str() == "__next";
19- if let StmtKind::Expr(ref e, _) = local1 .pat.node
20- if let ExprKind::Match(ref expr1 , ref arms1, MatchSource::ForLoopDesugar) = e.node;
21- if let ExprKind::Call(ref func1, ref args1) = expr1 .node;
17+ if let StmtKind::Expr(ref e, _) = local .pat.node
18+ if let ExprKind::Match(ref expr2 , ref arms1, MatchSource::ForLoopDesugar) = e.node;
19+ if let ExprKind::Call(ref func1, ref args1) = expr2 .node;
2220 if let ExprKind::Path(ref path2) = func1.node;
2321 if match_qpath(path2, &["{{root}}", "std", "iter", "Iterator", "next"]);
2422 if args1.len() == 1;
@@ -40,27 +38,23 @@ if_chain! {
4038 if arms1[1].pats.len() == 1;
4139 if let PatKind::Path(ref path7) = arms1[1].pats[0].node;
4240 if match_qpath(path7, &["{{root}}", "std", "option", "Option", "None"]);
43- if let StmtKind::Local(ref local2 ) = path7.node;
44- if let Some(ref init1 ) = local2 .init;
45- if let ExprKind::Path(ref path8) = init1 .node;
41+ if let StmtKind::Local(ref local1 ) = path7.node;
42+ if let Some(ref init ) = local1 .init;
43+ if let ExprKind::Path(ref path8) = init .node;
4644 if match_qpath(path8, &["__next"]);
47- if let PatKind::Binding(BindingAnnotation::Unannotated, _, name1, None) = local2 .pat.node;
45+ if let PatKind::Binding(BindingAnnotation::Unannotated, _, name1, None) = local1 .pat.node;
4846 if name1.node.as_str() == "y";
49- if let StmtKind::Expr(ref e1, _) = local2 .pat.node
50- if let ExprKind::Block(ref block1 ) = e1.node;
51- if let StmtKind::Local(ref local3 ) = block1 .node;
52- if let Some(ref init2 ) = local3 .init;
53- if let ExprKind::Path(ref path9) = init2 .node;
47+ if let StmtKind::Expr(ref e1, _) = local1 .pat.node
48+ if let ExprKind::Block(ref block ) = e1.node;
49+ if let StmtKind::Local(ref local2 ) = block .node;
50+ if let Some(ref init1 ) = local2 .init;
51+ if let ExprKind::Path(ref path9) = init1 .node;
5452 if match_qpath(path9, &["y"]);
55- if let PatKind::Binding(BindingAnnotation::Unannotated, _, name2, None) = local3 .pat.node;
53+ if let PatKind::Binding(BindingAnnotation::Unannotated, _, name2, None) = local2 .pat.node;
5654 if name2.node.as_str() == "z";
5755 if arms[0].pats.len() == 1;
5856 if let PatKind::Binding(BindingAnnotation::Mutable, _, name3, None) = arms[0].pats[0].node;
5957 if name3.node.as_str() == "iter";
60- if let PatKind::Binding(BindingAnnotation::Unannotated, _, name4, None) = local.pat.node;
61- if name4.node.as_str() == "_result";
62- if let ExprKind::Path(ref path10) = local.pat.node;
63- if match_qpath(path10, &["_result"]);
6458 then {
6559 // report your lint here
6660 }
0 commit comments