Remove unnecessary Option

This commit is contained in:
Ryo Yoshida 2022-09-13 01:52:16 +09:00
parent efb56160c9
commit d223c28c7d
No known key found for this signature in database
GPG key ID: E25698A930586171
3 changed files with 10 additions and 5 deletions

View file

@ -156,7 +156,7 @@ pub trait HirDatabase: DefDatabase + Upcast<dyn DefDatabase> {
&self, &self,
projection: crate::ProjectionTy, projection: crate::ProjectionTy,
env: Arc<crate::TraitEnvironment>, env: Arc<crate::TraitEnvironment>,
) -> Option<crate::Ty>; ) -> Ty;
#[salsa::invoke(trait_solve_wait)] #[salsa::invoke(trait_solve_wait)]
#[salsa::transparent] #[salsa::transparent]

View file

@ -69,10 +69,10 @@ pub(crate) fn normalize_projection_query(
db: &dyn HirDatabase, db: &dyn HirDatabase,
projection: ProjectionTy, projection: ProjectionTy,
env: Arc<TraitEnvironment>, env: Arc<TraitEnvironment>,
) -> Option<Ty> { ) -> Ty {
let mut table = InferenceTable::new(db, env.clone()); let mut table = InferenceTable::new(db, env);
let ty = table.normalize_projection_ty(projection); let ty = table.normalize_projection_ty(projection);
Some(table.resolve_completely(ty)) table.resolve_completely(ty)
} }
/// Solve a trait goal using Chalk. /// Solve a trait goal using Chalk.

View file

@ -2880,7 +2880,12 @@ impl Type {
}) })
.build(); .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 { pub fn is_copy(&self, db: &dyn HirDatabase) -> bool {