@@ -254,33 +254,34 @@ fn try_parse_contains<'tcx>(cx: &LateContext<'_>, expr: &'tcx Expr<'_>) -> Optio
254254 _ => None ,
255255 } ) ;
256256
257- match expr. kind {
258- ExprKind :: MethodCall (
259- _,
257+ if let ExprKind :: MethodCall (
258+ _,
259+ map,
260+ [
261+ Expr {
262+ kind : ExprKind :: AddrOf ( _, _, key) ,
263+ span : key_span,
264+ ..
265+ } ,
266+ ] ,
267+ _,
268+ ) = expr. kind
269+ && key_span. eq_ctxt ( expr. span )
270+ {
271+ let id = cx. typeck_results ( ) . type_dependent_def_id ( expr. hir_id ) ?;
272+ let expr = ContainsExpr {
273+ negated,
260274 map,
261- [
262- Expr {
263- kind : ExprKind :: AddrOf ( _, _, key) ,
264- span : key_span,
265- ..
266- } ,
267- ] ,
268- _,
269- ) if key_span. eq_ctxt ( expr. span ) => {
270- let id = cx. typeck_results ( ) . type_dependent_def_id ( expr. hir_id ) ?;
271- let expr = ContainsExpr {
272- negated,
273- map,
274- key,
275- call_ctxt : expr. span . ctxt ( ) ,
276- } ;
277- match cx. tcx . get_diagnostic_name ( id) {
278- Some ( sym:: btreemap_contains_key) => Some ( ( MapType :: BTree , expr) ) ,
279- Some ( sym:: hashmap_contains_key) => Some ( ( MapType :: Hash , expr) ) ,
280- _ => None ,
281- }
282- } ,
283- _ => None ,
275+ key,
276+ call_ctxt : expr. span . ctxt ( ) ,
277+ } ;
278+ match cx. tcx . get_diagnostic_name ( id) {
279+ Some ( sym:: btreemap_contains_key) => Some ( ( MapType :: BTree , expr) ) ,
280+ Some ( sym:: hashmap_contains_key) => Some ( ( MapType :: Hash , expr) ) ,
281+ _ => None ,
282+ }
283+ } else {
284+ None
284285 }
285286}
286287
0 commit comments