@@ -2429,7 +2429,7 @@ declare_clippy_lint! {
2429
2429
///
2430
2430
/// ### Limitations
2431
2431
/// 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
2433
2433
/// to account for similar patterns.
2434
2434
///
2435
2435
/// ### Example
@@ -5421,15 +5421,21 @@ impl Methods {
5421
5421
option_map_unwrap_or:: check ( cx, expr, m_recv, m_arg, recv, u_arg, span, self . msrv ) ;
5422
5422
} ,
5423
5423
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" ) ;
5425
5425
} ,
5426
5426
_ => { } ,
5427
5427
}
5428
5428
unnecessary_literal_unwrap:: check ( cx, expr, recv, name, args) ;
5429
5429
} ,
5430
5430
( "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
+ _ => { } ,
5433
5439
}
5434
5440
unnecessary_literal_unwrap:: check ( cx, expr, recv, name, args) ;
5435
5441
} ,
@@ -5441,7 +5447,15 @@ impl Methods {
5441
5447
Some ( ( "map" , recv, [ map_arg] , _, _) )
5442
5448
if map_unwrap_or:: check ( cx, expr, recv, map_arg, u_arg, self . msrv ) => { } ,
5443
5449
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
+ ) ;
5445
5459
} ,
5446
5460
_ => {
5447
5461
unnecessary_lazy_eval:: check ( cx, expr, recv, u_arg, "unwrap_or" ) ;
0 commit comments