mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-10-03 15:15:24 +00:00
remove unnecessary lazy evaluations
This commit is contained in:
parent
7530d76f00
commit
cc80c5bd07
31 changed files with 50 additions and 51 deletions
|
@ -326,7 +326,7 @@ impl ExtendedEnum {
|
|||
fn resolve_enum_def(sema: &Semantics<'_, RootDatabase>, expr: &ast::Expr) -> Option<ExtendedEnum> {
|
||||
sema.type_of_expr(expr)?.adjusted().autoderef(sema.db).find_map(|ty| match ty.as_adt() {
|
||||
Some(Adt::Enum(e)) => Some(ExtendedEnum::Enum(e)),
|
||||
_ => ty.is_bool().then(|| ExtendedEnum::Bool),
|
||||
_ => ty.is_bool().then_some(ExtendedEnum::Bool),
|
||||
})
|
||||
}
|
||||
|
||||
|
@ -344,7 +344,7 @@ fn resolve_tuple_of_enum_def(
|
|||
// For now we only handle expansion for a tuple of enums. Here
|
||||
// we map non-enum items to None and rely on `collect` to
|
||||
// convert Vec<Option<hir::Enum>> into Option<Vec<hir::Enum>>.
|
||||
_ => ty.is_bool().then(|| ExtendedEnum::Bool),
|
||||
_ => ty.is_bool().then_some(ExtendedEnum::Bool),
|
||||
})
|
||||
})
|
||||
.collect()
|
||||
|
|
|
@ -216,7 +216,7 @@ fn validate_method_call_expr(
|
|||
let krate = module.krate();
|
||||
|
||||
let iter_trait = FamousDefs(sema, krate).core_iter_Iterator()?;
|
||||
it_type.impls_trait(sema.db, iter_trait, &[]).then(|| (expr, receiver))
|
||||
it_type.impls_trait(sema.db, iter_trait, &[]).then_some((expr, receiver))
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
|
|
|
@ -588,7 +588,7 @@ impl FunctionBody {
|
|||
FunctionBody::Expr(expr) => Some(expr.clone()),
|
||||
FunctionBody::Span { parent, text_range } => {
|
||||
let tail_expr = parent.tail_expr()?;
|
||||
text_range.contains_range(tail_expr.syntax().text_range()).then(|| tail_expr)
|
||||
text_range.contains_range(tail_expr.syntax().text_range()).then_some(tail_expr)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -178,7 +178,7 @@ fn extract_generic_params(
|
|||
.fold(false, |tagged, ty| tag_generics_in_variant(&ty, &mut generics) || tagged),
|
||||
};
|
||||
|
||||
let generics = generics.into_iter().filter_map(|(param, tag)| tag.then(|| param));
|
||||
let generics = generics.into_iter().filter_map(|(param, tag)| tag.then_some(param));
|
||||
tagged_one.then(|| make::generic_param_list(generics))
|
||||
}
|
||||
|
||||
|
|
|
@ -271,7 +271,7 @@ fn generate_getter_from_info(
|
|||
}}",
|
||||
vis,
|
||||
record_field_info.fn_name,
|
||||
info.mutable.then(|| "mut ").unwrap_or_default(),
|
||||
info.mutable.then_some("mut ").unwrap_or_default(),
|
||||
ty,
|
||||
body,
|
||||
);
|
||||
|
|
|
@ -64,7 +64,7 @@ fn compute_dbg_replacement(macro_call: ast::MacroCall) -> Option<(TextRange, Str
|
|||
let input_expressions = mac_input.group_by(|tok| tok.kind() == T![,]);
|
||||
let input_expressions = input_expressions
|
||||
.into_iter()
|
||||
.filter_map(|(is_sep, group)| (!is_sep).then(|| group))
|
||||
.filter_map(|(is_sep, group)| (!is_sep).then_some(group))
|
||||
.map(|mut tokens| syntax::hacks::parse_expr_from_str(&tokens.join("")))
|
||||
.collect::<Option<Vec<ast::Expr>>>()?;
|
||||
|
||||
|
|
|
@ -613,7 +613,7 @@ pub(crate) fn convert_reference_type(
|
|||
}
|
||||
|
||||
fn handle_copy(ty: &hir::Type, db: &dyn HirDatabase) -> Option<ReferenceConversionType> {
|
||||
ty.is_copy(db).then(|| ReferenceConversionType::Copy)
|
||||
ty.is_copy(db).then_some(ReferenceConversionType::Copy)
|
||||
}
|
||||
|
||||
fn handle_as_ref_str(
|
||||
|
@ -624,7 +624,7 @@ fn handle_as_ref_str(
|
|||
let str_type = hir::BuiltinType::str().ty(db);
|
||||
|
||||
ty.impls_trait(db, famous_defs.core_convert_AsRef()?, &[str_type])
|
||||
.then(|| ReferenceConversionType::AsRefStr)
|
||||
.then_some(ReferenceConversionType::AsRefStr)
|
||||
}
|
||||
|
||||
fn handle_as_ref_slice(
|
||||
|
@ -636,7 +636,7 @@ fn handle_as_ref_slice(
|
|||
let slice_type = hir::Type::new_slice(type_argument);
|
||||
|
||||
ty.impls_trait(db, famous_defs.core_convert_AsRef()?, &[slice_type])
|
||||
.then(|| ReferenceConversionType::AsRefSlice)
|
||||
.then_some(ReferenceConversionType::AsRefSlice)
|
||||
}
|
||||
|
||||
fn handle_dereferenced(
|
||||
|
@ -647,7 +647,7 @@ fn handle_dereferenced(
|
|||
let type_argument = ty.type_arguments().next()?;
|
||||
|
||||
ty.impls_trait(db, famous_defs.core_convert_AsRef()?, &[type_argument])
|
||||
.then(|| ReferenceConversionType::Dereferenced)
|
||||
.then_some(ReferenceConversionType::Dereferenced)
|
||||
}
|
||||
|
||||
fn handle_option_as_ref(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue