@@ -306,16 +306,16 @@ impl GlobalState {
306
306
if self . proc_macro_clients . is_empty ( ) {
307
307
if let Some ( ( path, args) ) = self . config . proc_macro_srv ( ) {
308
308
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 ! (
313
312
"Failed to run proc_macro_srv from path {}, error: {:?}" ,
314
313
path. display( ) ,
315
314
err
316
315
) ;
317
- None
318
- }
316
+ tracing:: error!( error) ;
317
+ error
318
+ } )
319
319
} )
320
320
. collect ( ) ;
321
321
}
@@ -539,14 +539,14 @@ impl SourceRootConfig {
539
539
/// Load the proc-macros for the given lib path, replacing all expanders whose names are in `dummy_replace`
540
540
/// with an identity dummy expander.
541
541
pub ( crate ) fn load_proc_macro (
542
- server : Option < & ProcMacroServer > ,
542
+ server : Result < & ProcMacroServer , & String > ,
543
543
path : & AbsPath ,
544
544
dummy_replace : & [ Box < str > ] ,
545
545
) -> ProcMacroLoadResult {
546
546
let res: Result < Vec < _ > , String > = ( || {
547
547
let dylib = MacroDylib :: new ( path. to_path_buf ( ) )
548
548
. 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 ) ?;
550
550
let vec = server. load_dylib ( dylib) . map_err ( |e| format ! ( "{e}" ) ) ?;
551
551
if vec. is_empty ( ) {
552
552
return Err ( "proc macro library returned no proc macros" . to_string ( ) ) ;
0 commit comments