We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent e209e85 commit 8492460Copy full SHA for 8492460
compiler/rustc_trait_selection/src/traits/mod.rs
@@ -461,6 +461,14 @@ fn subst_and_check_impossible_predicates<'tcx>(
461
debug!("subst_and_check_impossible_predicates(key={:?})", key);
462
463
let mut predicates = tcx.predicates_of(key.0).instantiate(tcx, key.1).predicates;
464
+
465
+ // Specifically check trait fulfillment to avoid an error when trying to resolve
466
+ // associated items.
467
+ if let Some(trait_def_id) = tcx.trait_of_item(key.0) {
468
+ let trait_ref = ty::TraitRef::from_method(tcx, trait_def_id, key.1);
469
+ predicates.push(ty::Binder::dummy(trait_ref).to_poly_trait_predicate().to_predicate(tcx));
470
+ }
471
472
predicates.retain(|predicate| !predicate.needs_subst());
473
let result = impossible_predicates(tcx, predicates);
474
0 commit comments