diff --git a/compiler/rustc_query_system/src/query/plumbing.rs b/compiler/rustc_query_system/src/query/plumbing.rs index 68d2d619aabb48c20568a4aa7147c781bfb5a8de..39dfdd78cc4f5613a85153303e9dcc3aae9bf01f 100644 --- a/compiler/rustc_query_system/src/query/plumbing.rs +++ b/compiler/rustc_query_system/src/query/plumbing.rs @@ -605,13 +605,19 @@ fn incremental_verify_ich( let old_hash = tcx.dep_graph().prev_fingerprint_of(dep_node); - assert_eq!( - Some(new_hash), - old_hash, - "found unstable fingerprints for {:?}: {:?}", - dep_node, - result - ); + if Some(new_hash) != old_hash { + let run_cmd = if let Some(crate_name) = &tcx.sess().opts.crate_name { + format!("`cargo clean -p {}` or `cargo clean`", crate_name) + } else { + "`cargo clean`".to_string() + }; + tcx.sess().struct_err(&format!("internal compiler error: encountered incremental compilation error with {:?}", dep_node)) + .help(&format!("This is a known issue with the compiler. Run {} to allow your project to compile", run_cmd)) + .note(&format!("Please follow the instructions below to create a bug report with the provided information")) + .note(&format!("See for more information")) + .emit(); + panic!("Found unstable fingerprints for {:?}: {:?}", dep_node, result); + } } fn force_query_with_job(