Rollup merge of #133366 - compiler-errors:expected-found, r=dtolnay
Remove unnecessary bool from `ExpectedFound::new` It's true almost everywhere, and the one place it's not can be replaced w/ an if statement.
This commit is contained in:
commit
96e8c7c7ba
13 changed files with 58 additions and 90 deletions
|
@ -152,7 +152,7 @@ impl<'a, 'tcx> TypeErrCtxt<'a, 'tcx> {
|
|||
err: TypeError<'tcx>,
|
||||
) -> Diag<'a> {
|
||||
self.report_and_explain_type_error(
|
||||
TypeTrace::types(cause, true, expected, actual),
|
||||
TypeTrace::types(cause, expected, actual),
|
||||
param_env,
|
||||
err,
|
||||
)
|
||||
|
@ -167,7 +167,7 @@ impl<'a, 'tcx> TypeErrCtxt<'a, 'tcx> {
|
|||
err: TypeError<'tcx>,
|
||||
) -> Diag<'a> {
|
||||
self.report_and_explain_type_error(
|
||||
TypeTrace::consts(cause, true, expected, actual),
|
||||
TypeTrace::consts(cause, expected, actual),
|
||||
param_env,
|
||||
err,
|
||||
)
|
||||
|
|
|
@ -725,7 +725,7 @@ impl<'a, 'tcx> TypeErrCtxt<'a, 'tcx> {
|
|||
&obligation.cause,
|
||||
None,
|
||||
None,
|
||||
TypeError::Sorts(ty::error::ExpectedFound::new(true, expected_ty, ct_ty)),
|
||||
TypeError::Sorts(ty::error::ExpectedFound::new(expected_ty, ct_ty)),
|
||||
false,
|
||||
);
|
||||
diag
|
||||
|
@ -1449,7 +1449,6 @@ impl<'a, 'tcx> TypeErrCtxt<'a, 'tcx> {
|
|||
secondary_span,
|
||||
values.map(|(_, normalized_ty, expected_ty)| {
|
||||
obligation.param_env.and(infer::ValuePairs::Terms(ExpectedFound::new(
|
||||
true,
|
||||
expected_ty,
|
||||
normalized_ty,
|
||||
)))
|
||||
|
@ -2755,7 +2754,7 @@ impl<'a, 'tcx> TypeErrCtxt<'a, 'tcx> {
|
|||
(obligation.cause.clone(), terr)
|
||||
};
|
||||
self.report_and_explain_type_error(
|
||||
TypeTrace::trait_refs(&cause, true, expected_trait_ref, found_trait_ref),
|
||||
TypeTrace::trait_refs(&cause, expected_trait_ref, found_trait_ref),
|
||||
obligation.param_env,
|
||||
terr,
|
||||
)
|
||||
|
@ -2846,7 +2845,7 @@ impl<'a, 'tcx> TypeErrCtxt<'a, 'tcx> {
|
|||
if Some(expected_trait_ref.def_id) != self.tcx.lang_items().coroutine_trait() && not_tupled
|
||||
{
|
||||
return Ok(self.report_and_explain_type_error(
|
||||
TypeTrace::trait_refs(&obligation.cause, true, expected_trait_ref, found_trait_ref),
|
||||
TypeTrace::trait_refs(&obligation.cause, expected_trait_ref, found_trait_ref),
|
||||
obligation.param_env,
|
||||
ty::error::TypeError::Mismatch,
|
||||
));
|
||||
|
|
|
@ -264,14 +264,14 @@ fn fulfillment_error_for_no_solution<'tcx>(
|
|||
let (a, b) = infcx.enter_forall_and_leak_universe(
|
||||
obligation.predicate.kind().rebind((pred.a, pred.b)),
|
||||
);
|
||||
let expected_found = ExpectedFound::new(true, a, b);
|
||||
let expected_found = ExpectedFound::new(a, b);
|
||||
FulfillmentErrorCode::Subtype(expected_found, TypeError::Sorts(expected_found))
|
||||
}
|
||||
ty::PredicateKind::Coerce(pred) => {
|
||||
let (a, b) = infcx.enter_forall_and_leak_universe(
|
||||
obligation.predicate.kind().rebind((pred.a, pred.b)),
|
||||
);
|
||||
let expected_found = ExpectedFound::new(false, a, b);
|
||||
let expected_found = ExpectedFound::new(b, a);
|
||||
FulfillmentErrorCode::Subtype(expected_found, TypeError::Sorts(expected_found))
|
||||
}
|
||||
ty::PredicateKind::Clause(_)
|
||||
|
|
|
@ -557,8 +557,11 @@ impl<'a, 'tcx> ObligationProcessor for FulfillProcessor<'a, 'tcx> {
|
|||
ProcessResult::Changed(mk_pending(ok.obligations))
|
||||
}
|
||||
Ok(Err(err)) => {
|
||||
let expected_found =
|
||||
ExpectedFound::new(subtype.a_is_expected, subtype.a, subtype.b);
|
||||
let expected_found = if subtype.a_is_expected {
|
||||
ExpectedFound::new(subtype.a, subtype.b)
|
||||
} else {
|
||||
ExpectedFound::new(subtype.b, subtype.a)
|
||||
};
|
||||
ProcessResult::Error(FulfillmentErrorCode::Subtype(expected_found, err))
|
||||
}
|
||||
}
|
||||
|
@ -578,7 +581,7 @@ impl<'a, 'tcx> ObligationProcessor for FulfillProcessor<'a, 'tcx> {
|
|||
}
|
||||
Ok(Ok(ok)) => ProcessResult::Changed(mk_pending(ok.obligations)),
|
||||
Ok(Err(err)) => {
|
||||
let expected_found = ExpectedFound::new(false, coerce.a, coerce.b);
|
||||
let expected_found = ExpectedFound::new(coerce.b, coerce.a);
|
||||
ProcessResult::Error(FulfillmentErrorCode::Subtype(expected_found, err))
|
||||
}
|
||||
}
|
||||
|
@ -703,7 +706,7 @@ impl<'a, 'tcx> ObligationProcessor for FulfillProcessor<'a, 'tcx> {
|
|||
}
|
||||
Err(err) => {
|
||||
ProcessResult::Error(FulfillmentErrorCode::ConstEquate(
|
||||
ExpectedFound::new(true, c1, c2),
|
||||
ExpectedFound::new(c1, c2),
|
||||
err,
|
||||
))
|
||||
}
|
||||
|
@ -727,7 +730,7 @@ impl<'a, 'tcx> ObligationProcessor for FulfillProcessor<'a, 'tcx> {
|
|||
ProcessResult::Unchanged
|
||||
} else {
|
||||
// Two different constants using generic parameters ~> error.
|
||||
let expected_found = ExpectedFound::new(true, c1, c2);
|
||||
let expected_found = ExpectedFound::new(c1, c2);
|
||||
ProcessResult::Error(FulfillmentErrorCode::ConstEquate(
|
||||
expected_found,
|
||||
TypeError::ConstMismatch(expected_found),
|
||||
|
|
|
@ -70,7 +70,7 @@ impl<'tcx> TypeRelation<TyCtxt<'tcx>> for MatchAgainstFreshVars<'tcx> {
|
|||
) => Ok(a),
|
||||
|
||||
(&ty::Infer(_), _) | (_, &ty::Infer(_)) => {
|
||||
Err(TypeError::Sorts(ExpectedFound::new(true, a, b)))
|
||||
Err(TypeError::Sorts(ExpectedFound::new(a, b)))
|
||||
}
|
||||
|
||||
(&ty::Error(guar), _) | (_, &ty::Error(guar)) => Ok(Ty::new_error(self.cx(), guar)),
|
||||
|
@ -95,7 +95,7 @@ impl<'tcx> TypeRelation<TyCtxt<'tcx>> for MatchAgainstFreshVars<'tcx> {
|
|||
}
|
||||
|
||||
(ty::ConstKind::Infer(_), _) | (_, ty::ConstKind::Infer(_)) => {
|
||||
return Err(TypeError::ConstMismatch(ExpectedFound::new(true, a, b)));
|
||||
return Err(TypeError::ConstMismatch(ExpectedFound::new(a, b)));
|
||||
}
|
||||
|
||||
_ => {}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue