1
Fork 0

Rollup merge of #75928 - JulianKnodt:non_utf8, r=estebank

Remove trait_selection error message in specific case

In the case that a trait is not implemented for an ADT with type errors, cancel the error.

Fixes #75627
This commit is contained in:
Dylan DPC 2020-10-05 02:29:25 +02:00 committed by GitHub
commit 5fa978fa1b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 20 additions and 0 deletions

View file

@ -1907,6 +1907,11 @@ impl<'a, 'tcx> InferCtxtExt<'tcx> for InferCtxt<'a, 'tcx> {
ObligationCauseCode::BuiltinDerivedObligation(ref data) => {
let parent_trait_ref = self.resolve_vars_if_possible(&data.parent_trait_ref);
let ty = parent_trait_ref.skip_binder().self_ty();
if parent_trait_ref.references_error() {
err.cancel();
return;
}
err.note(&format!("required because it appears within the type `{}`", ty));
obligated_types.push(ty);