]> git.lizzy.rs Git - rust.git/blobdiff - crates/ide_db/src/helpers/famous_defs.rs
fix: Do not complete `Drop::drop`, complete `std::mem::drop` instead
[rust.git] / crates / ide_db / src / helpers / famous_defs.rs
index e8993d327f93b09d39dcb31795462c34a1343cb8..ee7bf9540bc2b04b8e36b706c190e6ffd89fe676 100644 (file)
@@ -76,6 +76,10 @@ pub fn core_ops_ControlFlow(&self) -> Option<Enum> {
         self.find_enum("core:ops:ControlFlow")
     }
 
+    pub fn core_ops_Drop(&self) -> Option<Trait> {
+        self.find_trait("core:ops:Drop")
+    }
+
     pub fn core_marker_Copy(&self) -> Option<Trait> {
         self.find_trait("core:marker:Copy")
     }
@@ -139,7 +143,7 @@ fn find_crate(&self, name: &str) -> Option<Crate> {
         let krate = self.1?;
         let db = self.0.db;
         let res =
-            krate.dependencies(db).into_iter().find(|dep| dep.name.to_string() == name)?.krate;
+            krate.dependencies(db).into_iter().find(|dep| dep.name.to_smol_str() == name)?.krate;
         Some(res)
     }
 
@@ -153,7 +157,7 @@ fn find_def(&self, path: &str) -> Option<ScopeDef> {
         for segment in path {
             module = module.children(db).find_map(|child| {
                 let name = child.name(db)?;
-                if name.to_string() == segment {
+                if name.to_smol_str() == segment {
                     Some(child)
                 } else {
                     None
@@ -161,7 +165,7 @@ fn find_def(&self, path: &str) -> Option<ScopeDef> {
             })?;
         }
         let def =
-            module.scope(db, None).into_iter().find(|(name, _def)| name.to_string() == trait_)?.1;
+            module.scope(db, None).into_iter().find(|(name, _def)| name.to_smol_str() == trait_)?.1;
         Some(def)
     }
 }