Auto merge of #13225 - lowr:fix/hir-proj-normalization, r=Veykril

fixup: remove unnecessary `Option`

Fixup for #13223, two things:

- `normalize_projection_query()` (and consequently `HirDatabase::normalize_projection()`) never returns `None` (well, it used to when I first wrote it...), so just return `Ty` instead of `Option<Ty>`
- When chalk cannot normalize projection uniquely, `normalize_trait_assoc_type()` used to return `None` before #13223, but not anymore because of the first point. I restored the behavior so its callers work as before.
This commit is contained in:
bors 2022-09-13 14:52:58 +00:00
commit ba15f75c39
3 changed files with 10 additions and 5 deletions

View file

@ -2892,7 +2892,12 @@ impl Type {
})
.build();
db.normalize_projection(projection, self.env.clone()).map(|ty| self.derived(ty))
let ty = db.normalize_projection(projection, self.env.clone());
if ty.is_unknown() {
None
} else {
Some(self.derived(ty))
}
}
pub fn is_copy(&self, db: &dyn HirDatabase) -> bool {