diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2024-09-30 18:25:14 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-09-30 18:25:14 +0200 |
| commit | 5df1123b39ccacfa95bdaf83b5a1e231aec85da4 (patch) | |
| tree | 10ca9d06cdd4d71b0af21b518b704b30173c2e3e /compiler | |
| parent | dc1ccc526435c55c28664576270ab558ac86e506 (diff) | |
| parent | c5598d6a9e0e8a46775f2c69e1278efee8223425 (diff) | |
| download | rust-5df1123b39ccacfa95bdaf83b5a1e231aec85da4.tar.gz rust-5df1123b39ccacfa95bdaf83b5a1e231aec85da4.zip | |
Rollup merge of #131038 - onkoe:fix/adt_const_params_leak_118179, r=compiler-errors
Fix `adt_const_params` leaking `{type error}` in error msg
Fixes the confusing diagnostic described in #118179. (users would see `{type error}` in some situations, which is pretty weird)
`adt_const_params` tracking issue: #95174
Diffstat (limited to 'compiler')
| -rw-r--r-- | compiler/rustc_hir_analysis/src/check/wfcheck.rs | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/compiler/rustc_hir_analysis/src/check/wfcheck.rs b/compiler/rustc_hir_analysis/src/check/wfcheck.rs index a71e14ce463..70b0b3f5788 100644 --- a/compiler/rustc_hir_analysis/src/check/wfcheck.rs +++ b/compiler/rustc_hir_analysis/src/check/wfcheck.rs @@ -961,13 +961,20 @@ fn check_param_wf(tcx: TyCtxt<'_>, param: &hir::GenericParam<'_>) -> Result<(), hir_ty.span, "using raw pointers as const generic parameters is forbidden", ), - _ => tcx.dcx().struct_span_err( - hir_ty.span, - format!("`{}` is forbidden as the type of a const generic parameter", ty), - ), + _ => { + // Avoid showing "{type error}" to users. See #118179. + ty.error_reported()?; + + tcx.dcx().struct_span_err( + hir_ty.span, + format!( + "`{ty}` is forbidden as the type of a const generic parameter", + ), + ) + } }; - diag.note("the only supported types are integers, `bool` and `char`"); + diag.note("the only supported types are integers, `bool`, and `char`"); let cause = ObligationCause::misc(hir_ty.span, param.def_id); let adt_const_params_feature_string = |
