Remove speculative
parameter from instantiate_poly_trait_ref_inner
· Issue #114635 · rust-lang/rust (original) (raw)
Navigation Menu
- Explore
- Pricing
Provide feedback
Saved searches
Use saved searches to filter your results more quickly
Description
instantiate_poly_trait_ref_inner
has a speculative
parameter:
This parameter is used to suppress several errors downstream, and has only one usage:
... which is inside of hir_trait_to_predicates
, which itself has only one usage:
// The traits' privacy in bodies is already checked as a part of trait object types. |
---|
let bounds = rustc_hir_analysis::hir_trait_to_predicates( |
self.tcx, |
trait_ref, |
// NOTE: This isn't really right, but the actual type doesn't matter here. It's |
// just required by `ty::TraitRef`. |
self.tcx.types.never, |
); |
The reason why speculative = true
at this call-site is because we're passing the wrong self type when instantiating the trait ref:
// NOTE: This isn't really right, but the actual type doesn't matter here. It's |
---|
// just required by `ty::TraitRef`. |
self.tcx.types.never, |
If we were able to pass the correct self type here, then we can totally remove the speculative
parameter. I think that would be a nice clean-up if possible.