Rollup merge of #96471 - BoxyUwU:let_else_considered_harmful, r=lcnr
replace let else with `?` r? `@oli-obk`
This commit is contained in:
commit
4c628bbb1c
@ -1272,9 +1272,7 @@ pub fn parse_macro_name_and_helper_attrs(
|
||||
// Once we've located the `#[proc_macro_derive]` attribute, verify
|
||||
// that it's of the form `#[proc_macro_derive(Foo)]` or
|
||||
// `#[proc_macro_derive(Foo, attributes(A, ..))]`
|
||||
let Some(list) = attr.meta_item_list() else {
|
||||
return None;
|
||||
};
|
||||
let list = attr.meta_item_list()?;
|
||||
if list.len() != 1 && list.len() != 2 {
|
||||
diag.span_err(attr.span, "attribute must have either one or two arguments");
|
||||
return None;
|
||||
|
@ -1714,7 +1714,7 @@ pub fn iter<'a>(&'a self, row: R) -> impl Iterator<Item = C> + 'a {
|
||||
}
|
||||
|
||||
pub fn row(&self, row: R) -> Option<&HybridBitSet<C>> {
|
||||
if let Some(Some(row)) = self.rows.get(row) { Some(row) } else { None }
|
||||
self.rows.get(row)?.as_ref()
|
||||
}
|
||||
|
||||
/// Intersects `row` with `set`. `set` can be either `BitSet` or
|
||||
|
@ -25,21 +25,16 @@ pub(crate) fn find_anon_type<'tcx>(
|
||||
region: Region<'tcx>,
|
||||
br: &ty::BoundRegionKind,
|
||||
) -> Option<(&'tcx hir::Ty<'tcx>, &'tcx hir::FnSig<'tcx>)> {
|
||||
if let Some(anon_reg) = tcx.is_suitable_region(region) {
|
||||
let hir_id = tcx.hir().local_def_id_to_hir_id(anon_reg.def_id);
|
||||
let Some(fn_sig) = tcx.hir().get(hir_id).fn_sig() else {
|
||||
return None
|
||||
};
|
||||
let anon_reg = tcx.is_suitable_region(region)?;
|
||||
let hir_id = tcx.hir().local_def_id_to_hir_id(anon_reg.def_id);
|
||||
let fn_sig = tcx.hir().get(hir_id).fn_sig()?;
|
||||
|
||||
fn_sig
|
||||
.decl
|
||||
.inputs
|
||||
.iter()
|
||||
.find_map(|arg| find_component_for_bound_region(tcx, arg, br))
|
||||
.map(|ty| (ty, fn_sig))
|
||||
} else {
|
||||
None
|
||||
}
|
||||
fn_sig
|
||||
.decl
|
||||
.inputs
|
||||
.iter()
|
||||
.find_map(|arg| find_component_for_bound_region(tcx, arg, br))
|
||||
.map(|ty| (ty, fn_sig))
|
||||
}
|
||||
|
||||
// This method creates a FindNestedTypeVisitor which returns the type corresponding
|
||||
|
@ -336,9 +336,7 @@ fn evaluate_candidate<'tcx>(
|
||||
Some(poss)
|
||||
}
|
||||
};
|
||||
let Some((_, child)) = targets.iter().next() else {
|
||||
return None
|
||||
};
|
||||
let (_, child) = targets.iter().next()?;
|
||||
let child_terminator = &bbs[child].terminator();
|
||||
let TerminatorKind::SwitchInt {
|
||||
switch_ty: child_ty,
|
||||
|
@ -338,9 +338,7 @@ pub(super) fn check_for_substitution<'a>(
|
||||
ch: char,
|
||||
err: &mut Diagnostic,
|
||||
) -> Option<token::TokenKind> {
|
||||
let Some(&(_u_char, u_name, ascii_char)) = UNICODE_ARRAY.iter().find(|&&(c, _, _)| c == ch) else {
|
||||
return None;
|
||||
};
|
||||
let &(_u_char, u_name, ascii_char) = UNICODE_ARRAY.iter().find(|&&(c, _, _)| c == ch)?;
|
||||
|
||||
let span = Span::with_root_ctxt(pos, pos + Pos::from_usize(ch.len_utf8()));
|
||||
|
||||
|
@ -1183,9 +1183,7 @@ fn smart_resolve_context_dependent_help(
|
||||
ident: Symbol,
|
||||
kind: &AssocItemKind,
|
||||
) -> Option<Symbol> {
|
||||
let Some((module, _)) = &self.current_trait_ref else {
|
||||
return None;
|
||||
};
|
||||
let (module, _) = self.current_trait_ref.as_ref()?;
|
||||
if ident == kw::Underscore {
|
||||
// We do nothing for `_`.
|
||||
return None;
|
||||
|
@ -757,7 +757,7 @@ pub(in super::super) fn expected_inputs_for_expected_output(
|
||||
formal_args: &[Ty<'tcx>],
|
||||
) -> Option<Vec<Ty<'tcx>>> {
|
||||
let formal_ret = self.resolve_vars_with_obligations(formal_ret);
|
||||
let Some(ret_ty) = expected_ret.only_has_type(self) else { return None };
|
||||
let ret_ty = expected_ret.only_has_type(self)?;
|
||||
|
||||
// HACK(oli-obk): This is a hack to keep RPIT and TAIT in sync wrt their behaviour.
|
||||
// Without it, the inference
|
||||
|
@ -1305,7 +1305,7 @@ fn clean_qpath(hir_ty: &hir::Ty<'_>, cx: &mut DocContext<'_>) -> Type {
|
||||
fn maybe_expand_private_type_alias(cx: &mut DocContext<'_>, path: &hir::Path<'_>) -> Option<Type> {
|
||||
let Res::Def(DefKind::TyAlias, def_id) = path.res else { return None };
|
||||
// Substitute private type aliases
|
||||
let Some(def_id) = def_id.as_local() else { return None };
|
||||
let def_id = def_id.as_local()?;
|
||||
let alias = if !cx.cache.access_levels.is_exported(def_id.to_def_id()) {
|
||||
&cx.tcx.hir().expect_item(def_id).kind
|
||||
} else {
|
||||
|
Loading…
Reference in New Issue
Block a user