]> git.lizzy.rs Git - rust.git/blobdiff - compiler/rustc_hir_typeck/src/writeback.rs
Auto merge of #105271 - eduardosm:inline-always-int-conv, r=scottmcm
[rust.git] / compiler / rustc_hir_typeck / src / writeback.rs
index 6c2ee35fa50da5b1daef213e9941db8fc3510113..58ced6a1d3b4ffb90308cd91e64d1012b1c245df 100644 (file)
@@ -361,9 +361,12 @@ fn visit_local(&mut self, l: &'tcx hir::Local<'tcx>) {
 
     fn visit_ty(&mut self, hir_ty: &'tcx hir::Ty<'tcx>) {
         intravisit::walk_ty(self, hir_ty);
-        let ty = self.fcx.node_ty(hir_ty.hir_id);
-        let ty = self.resolve(ty, &hir_ty.span);
-        self.write_ty_to_typeck_results(hir_ty.hir_id, ty);
+        // If there are type checking errors, Type privacy pass will stop,
+        // so we may not get the type from hid_id, see #104513
+        if let Some(ty) = self.fcx.node_ty_opt(hir_ty.hir_id) {
+            let ty = self.resolve(ty, &hir_ty.span);
+            self.write_ty_to_typeck_results(hir_ty.hir_id, ty);
+        }
     }
 
     fn visit_infer(&mut self, inf: &'tcx hir::InferArg) {