@@ -2426,7 +2426,7 @@ declare_clippy_lint! {
24262426 ///
24272427 /// ### Limitations
24282428 /// This lint currently only looks for usages of
2429- /// `.then_some(..).unwrap_or(..)` and `.then(..).unwrap_or (..)`, but will be expanded
2429+ /// `.{then, then_some} (..).{ unwrap_or, unwrap_or_else, unwrap_or_default} (..)`, but will be expanded
24302430 /// to account for similar patterns.
24312431 ///
24322432 /// ### Example
@@ -5419,15 +5419,21 @@ impl Methods {
54195419 option_map_unwrap_or:: check ( cx, expr, m_recv, m_arg, recv, u_arg, span, self . msrv ) ;
54205420 } ,
54215421 Some ( ( then_method @ ( "then" | "then_some" ) , t_recv, [ t_arg] , _, _) ) => {
5422- obfuscated_if_else:: check ( cx, expr, t_recv, t_arg, u_arg, then_method, "unwrap_or" ) ;
5422+ obfuscated_if_else:: check ( cx, expr, t_recv, t_arg, Some ( u_arg) , then_method, "unwrap_or" ) ;
54235423 } ,
54245424 _ => { } ,
54255425 }
54265426 unnecessary_literal_unwrap:: check ( cx, expr, recv, name, args) ;
54275427 } ,
54285428 ( "unwrap_or_default" , [ ] ) => {
5429- if let Some ( ( "map" , m_recv, [ arg] , span, _) ) = method_call ( recv) {
5430- manual_is_variant_and:: check ( cx, expr, m_recv, arg, span, self . msrv ) ;
5429+ match method_call ( recv) {
5430+ Some ( ( "map" , m_recv, [ arg] , span, _) ) => {
5431+ manual_is_variant_and:: check ( cx, expr, m_recv, arg, span, self . msrv ) ;
5432+ } ,
5433+ Some ( ( then_method @ ( "then" | "then_some" ) , t_recv, [ t_arg] , _, _) ) => {
5434+ obfuscated_if_else:: check ( cx, expr, t_recv, t_arg, None , then_method, "unwrap_or_default" ) ;
5435+ } ,
5436+ _ => { } ,
54315437 }
54325438 unnecessary_literal_unwrap:: check ( cx, expr, recv, name, args) ;
54335439 } ,
@@ -5439,7 +5445,15 @@ impl Methods {
54395445 Some ( ( "map" , recv, [ map_arg] , _, _) )
54405446 if map_unwrap_or:: check ( cx, expr, recv, map_arg, u_arg, self . msrv ) => { } ,
54415447 Some ( ( then_method @ ( "then" | "then_some" ) , t_recv, [ t_arg] , _, _) ) => {
5442- obfuscated_if_else:: check ( cx, expr, t_recv, t_arg, u_arg, then_method, "unwrap_or_else" ) ;
5448+ obfuscated_if_else:: check (
5449+ cx,
5450+ expr,
5451+ t_recv,
5452+ t_arg,
5453+ Some ( u_arg) ,
5454+ then_method,
5455+ "unwrap_or_else" ,
5456+ ) ;
54435457 } ,
54445458 _ => {
54455459 unnecessary_lazy_eval:: check ( cx, expr, recv, u_arg, "unwrap_or" ) ;
0 commit comments