From: Ryo Yoshida Date: Mon, 12 Sep 2022 16:52:16 +0000 (+0900) Subject: Remove unnecessary `Option` X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=d223c28c7d89de5a6f040e254c8a602ae7d48814;hp=efb56160c91f0c1db511423fad8cc09fdd73d618;p=rust.git Remove unnecessary `Option` --- diff --git a/crates/hir-ty/src/db.rs b/crates/hir-ty/src/db.rs index dd5639f00d2..69283e55a4c 100644 --- a/crates/hir-ty/src/db.rs +++ b/crates/hir-ty/src/db.rs @@ -156,7 +156,7 @@ fn normalize_projection( &self, projection: crate::ProjectionTy, env: Arc, - ) -> Option; + ) -> Ty; #[salsa::invoke(trait_solve_wait)] #[salsa::transparent] diff --git a/crates/hir-ty/src/traits.rs b/crates/hir-ty/src/traits.rs index aaff894b34f..372c3a3cca6 100644 --- a/crates/hir-ty/src/traits.rs +++ b/crates/hir-ty/src/traits.rs @@ -69,10 +69,10 @@ pub(crate) fn normalize_projection_query( db: &dyn HirDatabase, projection: ProjectionTy, env: Arc, -) -> Option { - let mut table = InferenceTable::new(db, env.clone()); +) -> Ty { + let mut table = InferenceTable::new(db, env); let ty = table.normalize_projection_ty(projection); - Some(table.resolve_completely(ty)) + table.resolve_completely(ty) } /// Solve a trait goal using Chalk. diff --git a/crates/hir/src/lib.rs b/crates/hir/src/lib.rs index d49d2e1ca3a..c981ffbc789 100644 --- a/crates/hir/src/lib.rs +++ b/crates/hir/src/lib.rs @@ -2880,7 +2880,12 @@ pub fn normalize_trait_assoc_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 {