@@ -345,6 +345,7 @@ impl FlycheckActor {
345345 ) ;
346346 }
347347 if self . package_status . is_empty ( ) {
348+ tracing:: trace!( flycheck_id = self . id, "clearing diagnostics" ) ;
348349 // We finished without receiving any diagnostics.
349350 // That means all of them are stale.
350351 self . send ( FlycheckMessage :: ClearDiagnostics {
@@ -354,6 +355,11 @@ impl FlycheckActor {
354355 } else {
355356 for ( package_id, status) in mem:: take ( & mut self . package_status ) {
356357 if let DiagnosticReceived :: No = status {
358+ tracing:: trace!(
359+ flycheck_id = self . id,
360+ package_id = package_id. repr,
361+ "clearing diagnostics"
362+ ) ;
357363 self . send ( FlycheckMessage :: ClearDiagnostics {
358364 id : self . id ,
359365 package_id : Some ( package_id) ,
@@ -385,9 +391,15 @@ impl FlycheckActor {
385391 "diagnostic received"
386392 ) ;
387393 if let Some ( package_id) = & package_id {
388- if !self . package_status . contains_key ( package_id) {
389- self . package_status
390- . insert ( package_id. clone ( ) , DiagnosticReceived :: Yes ) ;
394+ if let None | Some ( DiagnosticReceived :: No ) = self
395+ . package_status
396+ . insert ( package_id. clone ( ) , DiagnosticReceived :: Yes )
397+ {
398+ tracing:: trace!(
399+ flycheck_id = self . id,
400+ package_id = package_id. repr,
401+ "clearing diagnostics"
402+ ) ;
391403 self . send ( FlycheckMessage :: ClearDiagnostics {
392404 id : self . id ,
393405 package_id : Some ( package_id. clone ( ) ) ,
0 commit comments