diff options
| author | Cameron Steffen <cam.steffen94@gmail.com> | 2022-11-09 10:05:38 -0600 |
|---|---|---|
| committer | Cameron Steffen <cam.steffen94@gmail.com> | 2022-11-09 10:19:23 -0600 |
| commit | 76cab67ed87a23df318c43ab84ae9f87fdf203de (patch) | |
| tree | 3e20bbb46cbc05634fcc90ff7de0013ca7bf4df6 /compiler/rustc_middle/src | |
| parent | 0aaad9e757207657064d70bf9e6c1e6eb327bf15 (diff) | |
Add domain size check to fix ICE
Diffstat (limited to 'compiler/rustc_middle/src')
| -rw-r--r-- | compiler/rustc_middle/src/values.rs | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/compiler/rustc_middle/src/values.rs b/compiler/rustc_middle/src/values.rs index f4b4c3fb05a..f4562cdfb88 100644 --- a/compiler/rustc_middle/src/values.rs +++ b/compiler/rustc_middle/src/values.rs @@ -185,7 +185,8 @@ fn find_item_ty_spans( }); if check_params && let Some(args) = path.segments.last().unwrap().args { let params_in_repr = tcx.params_in_repr(def_id); - for (i, arg) in args.args.iter().enumerate() { + // the domain size check is needed because the HIR may not be well-formed at this point + for (i, arg) in args.args.iter().enumerate().take(params_in_repr.domain_size()) { if let hir::GenericArg::Type(ty) = arg && params_in_repr.contains(i as u32) { find_item_ty_spans(tcx, ty, needle, spans, seen_representable); } |
