1
Fork 0

Rollup merge of #109447 - lcnr:coherence, r=compiler-errors

new solver cleanup + implement coherence

the cleanup:
- change `Certainty::unify_and` to consider ambig + overflow to be ambig
- rename `trait_candidate_should_be_dropped_in_favor_of` to `candidate_should_be_dropped_in_favor_of`
- remove outdated fixme

For coherence I mostly just add an ambiguous candidate if the current trait ref is unknowable. I am doing the same for reservation impl where I also just add an ambiguous candidate.
This commit is contained in:
Matthias Krüger 2023-03-22 22:44:43 +01:00 committed by GitHub
commit 28b9354bf6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
20 changed files with 226 additions and 62 deletions

View file

@ -585,8 +585,8 @@ impl<'tcx> InferCtxtBuilder<'tcx> {
self
}
pub fn intercrate(mut self) -> Self {
self.intercrate = true;
pub fn intercrate(mut self, intercrate: bool) -> Self {
self.intercrate = intercrate;
self
}