Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/proc-macro-api/src/lib.rs')
-rw-r--r--crates/proc-macro-api/src/lib.rs16
1 files changed, 6 insertions, 10 deletions
diff --git a/crates/proc-macro-api/src/lib.rs b/crates/proc-macro-api/src/lib.rs
index eb7a28b972..4a30168ca5 100644
--- a/crates/proc-macro-api/src/lib.rs
+++ b/crates/proc-macro-api/src/lib.rs
@@ -118,16 +118,13 @@ impl ProcMacroServer {
Ok(ProcMacroServer { process: Arc::new(Mutex::new(process)) })
}
- pub fn load_dylib(
- &self,
- dylib: MacroDylib,
- ) -> Result<Result<Vec<ProcMacro>, String>, ServerError> {
+ pub fn load_dylib(&self, dylib: MacroDylib) -> Result<Vec<ProcMacro>, ServerError> {
let _p = profile::span("ProcMacroClient::by_dylib_path");
let macros =
self.process.lock().unwrap_or_else(|e| e.into_inner()).find_proc_macros(&dylib.path)?;
- let res = macros.map(|macros| {
- macros
+ match macros {
+ Ok(macros) => Ok(macros
.into_iter()
.map(|(name, kind)| ProcMacro {
process: self.process.clone(),
@@ -135,10 +132,9 @@ impl ProcMacroServer {
kind,
dylib_path: dylib.path.clone(),
})
- .collect()
- });
-
- Ok(res)
+ .collect()),
+ Err(message) => Err(ServerError { message, io: None }),
+ }
}
}