]> git.lizzy.rs Git - rust.git/commitdiff
Remove unnecessary `Option`
authorRyo Yoshida <low.ryoshida@gmail.com>
Mon, 12 Sep 2022 16:52:16 +0000 (01:52 +0900)
committerRyo Yoshida <low.ryoshida@gmail.com>
Mon, 12 Sep 2022 17:20:35 +0000 (02:20 +0900)
crates/hir-ty/src/db.rs
crates/hir-ty/src/traits.rs
crates/hir/src/lib.rs

index dd5639f00d21904bbdcae044eeeaeeb4801e00fe..69283e55a4c2cb0e6acce24fe7f2ac73c11d2410 100644 (file)
@@ -156,7 +156,7 @@ fn normalize_projection(
         &self,
         projection: crate::ProjectionTy,
         env: Arc<crate::TraitEnvironment>,
-    ) -> Option<crate::Ty>;
+    ) -> Ty;
 
     #[salsa::invoke(trait_solve_wait)]
     #[salsa::transparent]
index aaff894b34ffc4de8c61c5e2b7a17a39e818ba97..372c3a3cca644fd0966c88bc992c5c06087ffb03 100644 (file)
@@ -69,10 +69,10 @@ pub(crate) fn normalize_projection_query(
     db: &dyn HirDatabase,
     projection: ProjectionTy,
     env: Arc<TraitEnvironment>,
-) -> Option<Ty> {
-    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.
index d49d2e1ca3aceccf9abec5544dcb5d7832ec5f6c..c981ffbc789a55bff6ed22f13bf6973fd6ac532d 100644 (file)
@@ -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 {