fix #104513, Use node_ty_opt to avoid ICE in visit_ty
This commit is contained in:
parent
bebd57a960
commit
ecea94e6a4
3 changed files with 30 additions and 3 deletions
|
@ -363,9 +363,12 @@ impl<'cx, 'tcx> Visitor<'tcx> for WritebackCx<'cx, '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) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue