File tree Expand file tree Collapse file tree 1 file changed +16
-3
lines changed
crates/ra_cargo_watch/src Expand file tree Collapse file tree 1 file changed +16
-3
lines changed Original file line number Diff line number Diff line change @@ -259,7 +259,7 @@ pub fn run_cargo(
259
259
let mut child = command
260
260
. args ( args)
261
261
. stdout ( Stdio :: piped ( ) )
262
- . stderr ( Stdio :: null ( ) )
262
+ . stderr ( Stdio :: piped ( ) )
263
263
. stdin ( Stdio :: null ( ) )
264
264
. spawn ( )
265
265
. expect ( "couldn't launch cargo" ) ;
@@ -352,8 +352,21 @@ impl WatchThread {
352
352
// It is okay to ignore the result, as it only errors if the process is already dead
353
353
let _ = child. kill ( ) ;
354
354
355
- // Again, we don't care about the exit status so just ignore the result
356
- let _ = child. wait ( ) ;
355
+ // Again, we are resilient to errors, so we don't try to panic here
356
+ match child. wait_with_output ( ) {
357
+ Ok ( output) => match output. status . code ( ) {
358
+ Some ( 0 ) | None => { }
359
+ Some ( exit_code) => {
360
+ let output =
361
+ std:: str:: from_utf8 ( & output. stderr ) . unwrap_or ( "<bad utf8 output>" ) ;
362
+
363
+ if !output. contains ( "could not compile" ) {
364
+ log:: error!( "Cargo failed with exit code {} {}" , exit_code, output) ;
365
+ }
366
+ }
367
+ } ,
368
+ Err ( err) => log:: error!( "Cargo io error: {:?}" , err) ,
369
+ }
357
370
} ) )
358
371
} else {
359
372
None
You can’t perform that action at this time.
0 commit comments