use rustc_infer::infer::type_variable::{TypeVariableOrigin, TypeVariableOriginKind};
use rustc_infer::infer::InferOk;
use rustc_middle::ty::adjustment::{Adjust, Adjustment, AllowTwoPhase};
+use rustc_middle::ty::error::ExpectedFound;
use rustc_middle::ty::error::TypeError::{FieldMisMatch, Sorts};
-use rustc_middle::ty::relate::expected_found_bool;
use rustc_middle::ty::subst::SubstsRef;
use rustc_middle::ty::{self, AdtKind, Ty, TypeFoldable};
use rustc_session::parse::feature_err;
&self.misc(base_expr.span),
adt_ty,
base_ty,
- Sorts(expected_found_bool(true, adt_ty, base_ty)),
+ Sorts(ExpectedFound::new(true, adt_ty, base_ty)),
)
.emit();
}
}
} else {
self.check_expr_has_type_or_error(base_expr, adt_ty, |_| {
- let base_ty = self.check_expr(base_expr);
+ let base_ty = self.typeck_results.borrow().node_type(base_expr.hir_id);
let same_adt = match (adt_ty.kind(), base_ty.kind()) {
(ty::Adt(adt, _), ty::Adt(base_adt, _)) if adt == base_adt => true,
_ => false,