@@ -152,23 +152,16 @@ fn is_early_return(smbl: Symbol, cx: &LateContext<'_>, if_block: &IfBlockType<'_
152
152
sym:: Option => {
153
153
// We only need to check `if let Some(x) = option` not `if let None = option`,
154
154
// because the later one will be suggested as `if option.is_none()` thus causing conflict.
155
- if if_else. is_none ( ) {
156
- return false ;
157
- } ;
158
- expr_return_none_or_err ( smbl, cx, if_else. unwrap ( ) , let_expr, None )
159
- && is_lang_ctor ( cx, qpath, OptionSome )
155
+ is_lang_ctor ( cx, qpath, OptionSome )
156
+ && if_else. is_some ( )
157
+ && expr_return_none_or_err ( smbl, cx, if_else. unwrap ( ) , let_expr, None )
160
158
} ,
161
159
sym:: Result => {
162
- if is_lang_ctor ( cx, qpath, ResultOk ) {
163
- if if_else. is_none ( ) {
164
- return false ;
165
- } ;
166
- expr_return_none_or_err ( smbl, cx, if_else. unwrap ( ) , let_expr, Some ( let_pat_sym) )
167
- } else if is_lang_ctor ( cx, qpath, ResultErr ) {
168
- expr_return_none_or_err ( smbl, cx, if_then, let_expr, Some ( let_pat_sym) )
169
- } else {
170
- false
171
- }
160
+ ( is_lang_ctor ( cx, qpath, ResultOk )
161
+ && if_else. is_some ( )
162
+ && expr_return_none_or_err ( smbl, cx, if_else. unwrap ( ) , let_expr, Some ( let_pat_sym) ) )
163
+ || is_lang_ctor ( cx, qpath, ResultErr )
164
+ && expr_return_none_or_err ( smbl, cx, if_then, let_expr, Some ( let_pat_sym) )
172
165
} ,
173
166
_ => false ,
174
167
}
0 commit comments