@@ -306,16 +306,16 @@ impl GlobalState {
306306 if self . proc_macro_clients . is_empty ( ) {
307307 if let Some ( ( path, args) ) = self . config . proc_macro_srv ( ) {
308308 self . proc_macro_clients = ( 0 ..self . workspaces . len ( ) )
309- . map ( |_| match ProcMacroServer :: spawn ( path. clone ( ) , args. clone ( ) ) {
310- Ok ( it) => Some ( it) ,
311- Err ( err) => {
312- tracing:: error!(
309+ . map ( |_| {
310+ ProcMacroServer :: spawn ( path. clone ( ) , args. clone ( ) ) . map_err ( |err| {
311+ let error = format ! (
313312 "Failed to run proc_macro_srv from path {}, error: {:?}" ,
314313 path. display( ) ,
315314 err
316315 ) ;
317- None
318- }
316+ tracing:: error!( error) ;
317+ error
318+ } )
319319 } )
320320 . collect ( ) ;
321321 }
@@ -539,14 +539,14 @@ impl SourceRootConfig {
539539/// Load the proc-macros for the given lib path, replacing all expanders whose names are in `dummy_replace`
540540/// with an identity dummy expander.
541541pub ( crate ) fn load_proc_macro (
542- server : Option < & ProcMacroServer > ,
542+ server : Result < & ProcMacroServer , & String > ,
543543 path : & AbsPath ,
544544 dummy_replace : & [ Box < str > ] ,
545545) -> ProcMacroLoadResult {
546546 let res: Result < Vec < _ > , String > = ( || {
547547 let dylib = MacroDylib :: new ( path. to_path_buf ( ) )
548548 . map_err ( |io| format ! ( "Proc-macro dylib loading failed: {io}" ) ) ?;
549- let server = server. ok_or_else ( || format ! ( "Proc-macro server not started" ) ) ?;
549+ let server = server. map_err ( ToOwned :: to_owned ) ?;
550550 let vec = server. load_dylib ( dylib) . map_err ( |e| format ! ( "{e}" ) ) ?;
551551 if vec. is_empty ( ) {
552552 return Err ( "proc macro library returned no proc macros" . to_string ( ) ) ;
0 commit comments