diff options
| author | Michael Goulet <michael@errs.io> | 2023-07-06 20:11:41 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-07-06 20:11:41 -0700 |
| commit | 45cb1ba9d30452fc332fa28bdda06ac86e80fe25 (patch) | |
| tree | 54240e924825ebe88246152eb6ca6abb7be638a4 /compiler/rustc_hir_analysis/src | |
| parent | 901c86364431f62dbe3f88936e2eeb0d48e43fd8 (diff) | |
| parent | 07a230b5a5819d9a0bcfdf77bec8e9d4d9ba1ea9 (diff) | |
| download | rust-45cb1ba9d30452fc332fa28bdda06ac86e80fe25.tar.gz rust-45cb1ba9d30452fc332fa28bdda06ac86e80fe25.zip | |
Rollup merge of #113421 - spastorino:new-rpitit-29, r=compiler-errors
Do not assert >1 RPITITs on collect_return_position_impl_trait_in_trait_tys Fixes #113403 Assert on collect_return_position_impl_trait_in_trait_tys is not correct when we call it from type_of(GAT). The included test is an example of a situation that collector collects 0 types. r? `@compiler-errors`
Diffstat (limited to 'compiler/rustc_hir_analysis/src')
| -rw-r--r-- | compiler/rustc_hir_analysis/src/check/compare_impl_item.rs | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/compiler/rustc_hir_analysis/src/check/compare_impl_item.rs b/compiler/rustc_hir_analysis/src/check/compare_impl_item.rs index 2999e1fd89b..22e576e345e 100644 --- a/compiler/rustc_hir_analysis/src/check/compare_impl_item.rs +++ b/compiler/rustc_hir_analysis/src/check/compare_impl_item.rs @@ -669,11 +669,13 @@ pub(super) fn collect_return_position_impl_trait_in_trait_tys<'tcx>( ) .fold_with(&mut collector); - debug_assert_ne!( - collector.types.len(), - 0, - "expect >1 RPITITs in call to `collect_return_position_impl_trait_in_trait_tys`" - ); + if !unnormalized_trait_sig.output().references_error() { + debug_assert_ne!( + collector.types.len(), + 0, + "expect >1 RPITITs in call to `collect_return_position_impl_trait_in_trait_tys`" + ); + } let trait_sig = ocx.normalize(&norm_cause, param_env, unnormalized_trait_sig); trait_sig.error_reported()?; |
