From 9c2d4dd529a41f919765d1ca29613dc63033f30b Mon Sep 17 00:00:00 2001 From: yukang Date: Wed, 16 Nov 2022 19:40:35 +0800 Subject: [PATCH] fix #104510, Remove is_tainted_by_errors since we have ty_error for delay bug --- compiler/rustc_hir_typeck/src/fn_ctxt/checks.rs | 1 - src/test/ui/typeck/issue-104510-ice.rs | 16 ++++++++++++++++ src/test/ui/typeck/issue-104510-ice.stderr | 9 +++++++++ 3 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 src/test/ui/typeck/issue-104510-ice.rs create mode 100644 src/test/ui/typeck/issue-104510-ice.stderr diff --git a/compiler/rustc_hir_typeck/src/fn_ctxt/checks.rs b/compiler/rustc_hir_typeck/src/fn_ctxt/checks.rs index 8cf70eb5431a8..a27dae8cc4141 100644 --- a/compiler/rustc_hir_typeck/src/fn_ctxt/checks.rs +++ b/compiler/rustc_hir_typeck/src/fn_ctxt/checks.rs @@ -73,7 +73,6 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> { let ty = self.typeck_results.borrow().expr_ty_adjusted(expr); let ty = self.resolve_vars_if_possible(ty); if ty.has_non_region_infer() { - assert!(self.is_tainted_by_errors()); self.tcx.ty_error() } else { self.tcx.erase_regions(ty) diff --git a/src/test/ui/typeck/issue-104510-ice.rs b/src/test/ui/typeck/issue-104510-ice.rs new file mode 100644 index 0000000000000..157bdf07e3826 --- /dev/null +++ b/src/test/ui/typeck/issue-104510-ice.rs @@ -0,0 +1,16 @@ +// needs-asm-support +// only-x86_64 + +struct W(Oops); +//~^ ERROR cannot find type `Oops` in this scope + +unsafe fn test() { + let j = W(()); + let pointer = &j as *const _; + core::arch::asm!( + "nop", + in("eax") pointer, + ); +} + +fn main() {} diff --git a/src/test/ui/typeck/issue-104510-ice.stderr b/src/test/ui/typeck/issue-104510-ice.stderr new file mode 100644 index 0000000000000..ddb510ef04772 --- /dev/null +++ b/src/test/ui/typeck/issue-104510-ice.stderr @@ -0,0 +1,9 @@ +error[E0412]: cannot find type `Oops` in this scope + --> $DIR/issue-104510-ice.rs:4:21 + | +LL | struct W(Oops); + | ^^^^ not found in this scope + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0412`.