Do not ICE in privacy when type inference fails.

This commit is contained in:
Camille GILLOT 2024-06-17 10:06:13 +00:00
parent 55cac26a9e
commit 9074427c69
3 changed files with 34 additions and 3 deletions

View file

@ -973,8 +973,12 @@ impl<'tcx> NamePrivacyVisitor<'tcx> {
impl<'tcx> Visitor<'tcx> for NamePrivacyVisitor<'tcx> {
fn visit_nested_body(&mut self, body_id: hir::BodyId) {
let old_maybe_typeck_results =
self.maybe_typeck_results.replace(self.tcx.typeck_body(body_id));
let new_typeck_results = self.tcx.typeck_body(body_id);
// Do not try reporting privacy violations if we failed to infer types.
if new_typeck_results.tainted_by_errors.is_some() {
return;
}
let old_maybe_typeck_results = self.maybe_typeck_results.replace(new_typeck_results);
self.visit_body(self.tcx.hir().body(body_id));
self.maybe_typeck_results = old_maybe_typeck_results;
}