@@ -6,7 +6,7 @@ use if_chain::if_chain;
6
6
use rustc_errors:: Applicability ;
7
7
use rustc_hir as hir;
8
8
use rustc_hir:: def:: Res ;
9
- use rustc_hir:: { Expr , ExprKind , PatKind , PathSegment , QPath , UnOp } ;
9
+ use rustc_hir:: { Closure , Expr , ExprKind , PatKind , PathSegment , QPath , UnOp } ;
10
10
use rustc_lint:: LateContext ;
11
11
use rustc_span:: source_map:: Span ;
12
12
use rustc_span:: symbol:: { sym, Symbol } ;
@@ -22,8 +22,8 @@ fn is_method<'tcx>(cx: &LateContext<'tcx>, expr: &hir::Expr<'_>, method_name: Sy
22
22
hir:: ExprKind :: Path ( QPath :: Resolved ( _, segments) ) => {
23
23
segments. segments . last ( ) . unwrap ( ) . ident . name == method_name
24
24
} ,
25
- hir:: ExprKind :: Closure { body, .. } => {
26
- let body = cx. tcx . hir ( ) . body ( * body) ;
25
+ hir:: ExprKind :: Closure ( & hir :: Closure { body, .. } ) => {
26
+ let body = cx. tcx . hir ( ) . body ( body) ;
27
27
let closure_expr = peel_blocks ( & body. value ) ;
28
28
let arg_id = body. params [ 0 ] . pat . hir_id ;
29
29
match closure_expr. kind {
@@ -106,7 +106,7 @@ pub(super) fn check<'tcx>(
106
106
if is_trait_method( cx, map_recv, sym:: Iterator ) ;
107
107
108
108
// filter(|x| ...is_some())...
109
- if let ExprKind :: Closure { body: filter_body_id, .. } = filter_arg. kind;
109
+ if let ExprKind :: Closure ( & Closure { body: filter_body_id, .. } ) = filter_arg. kind;
110
110
let filter_body = cx. tcx. hir( ) . body( filter_body_id) ;
111
111
if let [ filter_param] = filter_body. params;
112
112
// optional ref pattern: `filter(|&x| ..)`
@@ -129,7 +129,7 @@ pub(super) fn check<'tcx>(
129
129
if path. ident. name. as_str( ) == if is_result { "is_ok" } else { "is_some" } ;
130
130
131
131
// ...map(|x| ...unwrap())
132
- if let ExprKind :: Closure { body: map_body_id, .. } = map_arg. kind;
132
+ if let ExprKind :: Closure ( & Closure { body: map_body_id, .. } ) = map_arg. kind;
133
133
let map_body = cx. tcx. hir( ) . body( map_body_id) ;
134
134
if let [ map_param] = map_body. params;
135
135
if let PatKind :: Binding ( _, map_param_id, map_param_ident, None ) = map_param. pat. kind;
0 commit comments