diff options
| author | lcnr <rust@lcnr.de> | 2025-09-15 14:39:01 +0200 |
|---|---|---|
| committer | lcnr <rust@lcnr.de> | 2025-09-18 12:58:39 +0200 |
| commit | 9913c47da2b616fee57f308071d6adc39bff4568 (patch) | |
| tree | 314166a46bd6f85e7525c2bad2a1003a7583b4c7 /compiler | |
| parent | f4e19c68786211f3c3cf2593442629599678800a (diff) | |
| download | rust-9913c47da2b616fee57f308071d6adc39bff4568.tar.gz rust-9913c47da2b616fee57f308071d6adc39bff4568.zip | |
add tests, silence type annotations needed errors for opaques
Diffstat (limited to 'compiler')
| -rw-r--r-- | compiler/rustc_hir_typeck/src/opaque_types.rs | 34 |
1 files changed, 19 insertions, 15 deletions
diff --git a/compiler/rustc_hir_typeck/src/opaque_types.rs b/compiler/rustc_hir_typeck/src/opaque_types.rs index 97feac3d009..5cefa506b5a 100644 --- a/compiler/rustc_hir_typeck/src/opaque_types.rs +++ b/compiler/rustc_hir_typeck/src/opaque_types.rs @@ -117,21 +117,25 @@ impl<'tcx> FnCtxt<'_, 'tcx> { ) } UsageKind::UnconstrainedHiddenType(hidden_type) => { - let infer_var = hidden_type - .ty - .walk() - .filter_map(ty::GenericArg::as_term) - .find(|term| term.is_infer()) - .unwrap_or_else(|| hidden_type.ty.into()); - self.err_ctxt() - .emit_inference_failure_err( - self.body_id, - hidden_type.span, - infer_var, - TypeAnnotationNeeded::E0282, - false, - ) - .emit() + if let Some(guar) = self.tainted_by_errors() { + guar + } else { + let infer_var = hidden_type + .ty + .walk() + .filter_map(ty::GenericArg::as_term) + .find(|term| term.is_infer()) + .unwrap_or_else(|| hidden_type.ty.into()); + self.err_ctxt() + .emit_inference_failure_err( + self.body_id, + hidden_type.span, + infer_var, + TypeAnnotationNeeded::E0282, + false, + ) + .emit() + } } UsageKind::HasDefiningUse => continue, }; |
