use crate::astconv::{AstConv, CreateSubstsForGenericArgsCtxt, IsMethodCall};
use crate::check::{callee, FnCtxt};
-use crate::hir::def_id::DefId;
-use crate::hir::GenericArg;
use rustc_hir as hir;
+use rustc_hir::def_id::DefId;
+use rustc_hir::GenericArg;
use rustc_infer::infer::{self, InferOk};
use rustc_middle::traits::{ObligationCauseCode, UnifyReceiverContext};
use rustc_middle::ty::adjustment::{Adjust, Adjustment, PointerCast};
// time writing the results into the various typeck results.
let mut autoderef =
self.autoderef_overloaded_span(self.span, unadjusted_self_ty, self.call_expr.span);
- let (ty, n) = match autoderef.nth(pick.autoderefs) {
- Some(n) => n,
- None => {
- return self.tcx.ty_error_with_message(
- rustc_span::DUMMY_SP,
- &format!("failed autoderef {}", pick.autoderefs),
- );
- }
+ let Some((ty, n)) = autoderef.nth(pick.autoderefs) else {
+ return self.tcx.ty_error_with_message(
+ rustc_span::DUMMY_SP,
+ &format!("failed autoderef {}", pick.autoderefs),
+ );
};
assert_eq!(n, pick.autoderefs);
&self,
predicates: &ty::InstantiatedPredicates<'tcx>,
) -> Option<Span> {
- let sized_def_id = match self.tcx.lang_items().sized_trait() {
- Some(def_id) => def_id,
- None => return None,
- };
+ let sized_def_id = self.tcx.lang_items().sized_trait()?;
traits::elaborate_predicates(self.tcx, predicates.predicates.iter().copied())
// We don't care about regions here.