Eliminate duplicate codes of expected_found_bool
This commit is contained in:
parent
0b42deaccc
commit
a995462f9a
@ -37,7 +37,7 @@ use crate::traits::{Obligation, PredicateObligations};
|
|||||||
use rustc_data_structures::sso::SsoHashMap;
|
use rustc_data_structures::sso::SsoHashMap;
|
||||||
use rustc_hir::def_id::DefId;
|
use rustc_hir::def_id::DefId;
|
||||||
use rustc_middle::traits::ObligationCause;
|
use rustc_middle::traits::ObligationCause;
|
||||||
use rustc_middle::ty::error::TypeError;
|
use rustc_middle::ty::error::{ExpectedFound, TypeError};
|
||||||
use rustc_middle::ty::relate::{self, Relate, RelateResult, TypeRelation};
|
use rustc_middle::ty::relate::{self, Relate, RelateResult, TypeRelation};
|
||||||
use rustc_middle::ty::subst::SubstsRef;
|
use rustc_middle::ty::subst::SubstsRef;
|
||||||
use rustc_middle::ty::{self, InferConst, ToPredicate, Ty, TyCtxt, TypeFoldable};
|
use rustc_middle::ty::{self, InferConst, ToPredicate, Ty, TyCtxt, TypeFoldable};
|
||||||
@ -790,7 +790,7 @@ pub fn const_unification_error<'tcx>(
|
|||||||
a_is_expected: bool,
|
a_is_expected: bool,
|
||||||
(a, b): (&'tcx ty::Const<'tcx>, &'tcx ty::Const<'tcx>),
|
(a, b): (&'tcx ty::Const<'tcx>, &'tcx ty::Const<'tcx>),
|
||||||
) -> TypeError<'tcx> {
|
) -> TypeError<'tcx> {
|
||||||
TypeError::ConstMismatch(ty::relate::expected_found_bool(a_is_expected, a, b))
|
TypeError::ConstMismatch(ExpectedFound::new(a_is_expected, a, b))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn int_unification_error<'tcx>(
|
fn int_unification_error<'tcx>(
|
||||||
@ -798,7 +798,7 @@ fn int_unification_error<'tcx>(
|
|||||||
v: (ty::IntVarValue, ty::IntVarValue),
|
v: (ty::IntVarValue, ty::IntVarValue),
|
||||||
) -> TypeError<'tcx> {
|
) -> TypeError<'tcx> {
|
||||||
let (a, b) = v;
|
let (a, b) = v;
|
||||||
TypeError::IntMismatch(ty::relate::expected_found_bool(a_is_expected, a, b))
|
TypeError::IntMismatch(ExpectedFound::new(a_is_expected, a, b))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn float_unification_error<'tcx>(
|
fn float_unification_error<'tcx>(
|
||||||
@ -806,7 +806,7 @@ fn float_unification_error<'tcx>(
|
|||||||
v: (ty::FloatVarValue, ty::FloatVarValue),
|
v: (ty::FloatVarValue, ty::FloatVarValue),
|
||||||
) -> TypeError<'tcx> {
|
) -> TypeError<'tcx> {
|
||||||
let (ty::FloatVarValue(a), ty::FloatVarValue(b)) = v;
|
let (ty::FloatVarValue(a), ty::FloatVarValue(b)) = v;
|
||||||
TypeError::FloatMismatch(ty::relate::expected_found_bool(a_is_expected, a, b))
|
TypeError::FloatMismatch(ExpectedFound::new(a_is_expected, a, b))
|
||||||
}
|
}
|
||||||
|
|
||||||
struct ConstInferUnifier<'cx, 'tcx> {
|
struct ConstInferUnifier<'cx, 'tcx> {
|
||||||
|
@ -849,13 +849,5 @@ pub fn expected_found<R, T>(relation: &mut R, a: T, b: T) -> ExpectedFound<T>
|
|||||||
where
|
where
|
||||||
R: TypeRelation<'tcx>,
|
R: TypeRelation<'tcx>,
|
||||||
{
|
{
|
||||||
expected_found_bool(relation.a_is_expected(), a, b)
|
ExpectedFound::new(relation.a_is_expected(), a, b)
|
||||||
}
|
|
||||||
|
|
||||||
pub fn expected_found_bool<T>(a_is_expected: bool, a: T, b: T) -> ExpectedFound<T> {
|
|
||||||
if a_is_expected {
|
|
||||||
ExpectedFound { expected: a, found: b }
|
|
||||||
} else {
|
|
||||||
ExpectedFound { expected: b, found: a }
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -36,8 +36,8 @@ use rustc_infer::infer;
|
|||||||
use rustc_infer::infer::type_variable::{TypeVariableOrigin, TypeVariableOriginKind};
|
use rustc_infer::infer::type_variable::{TypeVariableOrigin, TypeVariableOriginKind};
|
||||||
use rustc_infer::infer::InferOk;
|
use rustc_infer::infer::InferOk;
|
||||||
use rustc_middle::ty::adjustment::{Adjust, Adjustment, AllowTwoPhase};
|
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::error::TypeError::{FieldMisMatch, Sorts};
|
||||||
use rustc_middle::ty::relate::expected_found_bool;
|
|
||||||
use rustc_middle::ty::subst::SubstsRef;
|
use rustc_middle::ty::subst::SubstsRef;
|
||||||
use rustc_middle::ty::{self, AdtKind, Ty, TypeFoldable};
|
use rustc_middle::ty::{self, AdtKind, Ty, TypeFoldable};
|
||||||
use rustc_session::parse::feature_err;
|
use rustc_session::parse::feature_err;
|
||||||
@ -1494,7 +1494,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
|
|||||||
&self.misc(base_expr.span),
|
&self.misc(base_expr.span),
|
||||||
adt_ty,
|
adt_ty,
|
||||||
base_ty,
|
base_ty,
|
||||||
Sorts(expected_found_bool(true, adt_ty, base_ty)),
|
Sorts(ExpectedFound::new(true, adt_ty, base_ty)),
|
||||||
)
|
)
|
||||||
.emit();
|
.emit();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user