@@ -2429,7 +2429,7 @@ declare_clippy_lint! {
24292429 ///
24302430 /// ### Limitations
24312431 /// This lint currently only looks for usages of
2432- /// `.then_some(..).unwrap_or(..)` and `.then(..).unwrap_or (..)`, but will be expanded
2432+ /// `.{then, then_some} (..).{ unwrap_or, unwrap_or_else, unwrap_or_default} (..)`, but will be expanded
24332433 /// to account for similar patterns.
24342434 ///
24352435 /// ### Example
@@ -5421,15 +5421,21 @@ impl Methods {
54215421 option_map_unwrap_or:: check ( cx, expr, m_recv, m_arg, recv, u_arg, span, self . msrv ) ;
54225422 } ,
54235423 Some ( ( then_method @ ( "then" | "then_some" ) , t_recv, [ t_arg] , _, _) ) => {
5424- obfuscated_if_else:: check ( cx, expr, t_recv, t_arg, u_arg, then_method, "unwrap_or" ) ;
5424+ obfuscated_if_else:: check ( cx, expr, t_recv, t_arg, Some ( u_arg) , then_method, "unwrap_or" ) ;
54255425 } ,
54265426 _ => { } ,
54275427 }
54285428 unnecessary_literal_unwrap:: check ( cx, expr, recv, name, args) ;
54295429 } ,
54305430 ( "unwrap_or_default" , [ ] ) => {
5431- if let Some ( ( "map" , m_recv, [ arg] , span, _) ) = method_call ( recv) {
5432- manual_is_variant_and:: check ( cx, expr, m_recv, arg, span, self . msrv ) ;
5431+ match method_call ( recv) {
5432+ Some ( ( "map" , m_recv, [ arg] , span, _) ) => {
5433+ manual_is_variant_and:: check ( cx, expr, m_recv, arg, span, self . msrv ) ;
5434+ } ,
5435+ Some ( ( then_method @ ( "then" | "then_some" ) , t_recv, [ t_arg] , _, _) ) => {
5436+ obfuscated_if_else:: check ( cx, expr, t_recv, t_arg, None , then_method, "unwrap_or_default" ) ;
5437+ } ,
5438+ _ => { } ,
54335439 }
54345440 unnecessary_literal_unwrap:: check ( cx, expr, recv, name, args) ;
54355441 } ,
@@ -5441,7 +5447,15 @@ impl Methods {
54415447 Some ( ( "map" , recv, [ map_arg] , _, _) )
54425448 if map_unwrap_or:: check ( cx, expr, recv, map_arg, u_arg, self . msrv ) => { } ,
54435449 Some ( ( then_method @ ( "then" | "then_some" ) , t_recv, [ t_arg] , _, _) ) => {
5444- obfuscated_if_else:: check ( cx, expr, t_recv, t_arg, u_arg, then_method, "unwrap_or_else" ) ;
5450+ obfuscated_if_else:: check (
5451+ cx,
5452+ expr,
5453+ t_recv,
5454+ t_arg,
5455+ Some ( u_arg) ,
5456+ then_method,
5457+ "unwrap_or_else" ,
5458+ ) ;
54455459 } ,
54465460 _ => {
54475461 unnecessary_lazy_eval:: check ( cx, expr, recv, u_arg, "unwrap_or" ) ;
0 commit comments