Log project path that was no open due to no project entry found

Kirill Bulatov created

Change summary

crates/project/src/project.rs   | 5 +++--
crates/project2/src/project2.rs | 5 +++--
2 files changed, 6 insertions(+), 4 deletions(-)

Detailed changes

crates/project/src/project.rs 🔗

@@ -1661,14 +1661,15 @@ impl Project {
         path: impl Into<ProjectPath>,
         cx: &mut ModelContext<Self>,
     ) -> Task<Result<(ProjectEntryId, AnyModelHandle)>> {
-        let task = self.open_buffer(path, cx);
+        let project_path = path.into();
+        let task = self.open_buffer(project_path.clone(), cx);
         cx.spawn_weak(|_, cx| async move {
             let buffer = task.await?;
             let project_entry_id = buffer
                 .read_with(&cx, |buffer, cx| {
                     File::from_dyn(buffer.file()).and_then(|file| file.project_entry_id(cx))
                 })
-                .ok_or_else(|| anyhow!("no project entry"))?;
+                .with_context(|| format!("no project entry for {project_path:?}"))?;
 
             let buffer: &AnyModelHandle = &buffer;
             Ok((project_entry_id, buffer.clone()))

crates/project2/src/project2.rs 🔗

@@ -1691,14 +1691,15 @@ impl Project {
         path: impl Into<ProjectPath>,
         cx: &mut ModelContext<Self>,
     ) -> Task<Result<(ProjectEntryId, AnyModel)>> {
-        let task = self.open_buffer(path, cx);
+        let project_path = path.into();
+        let task = self.open_buffer(project_path.clone(), cx);
         cx.spawn(move |_, mut cx| async move {
             let buffer = task.await?;
             let project_entry_id = buffer
                 .update(&mut cx, |buffer, cx| {
                     File::from_dyn(buffer.file()).and_then(|file| file.project_entry_id(cx))
                 })?
-                .ok_or_else(|| anyhow!("no project entry"))?;
+                .with_context(|| format!("no project entry for {project_path:?}"))?;
 
             let buffer: &AnyModel = &buffer;
             Ok((project_entry_id, buffer.clone()))