about summary refs log tree commit diff
path: root/compiler/rustc_middle/src
diff options
context:
space:
mode:
authorCameron Steffen <cam.steffen94@gmail.com>2022-11-09 10:05:38 -0600
committerCameron Steffen <cam.steffen94@gmail.com>2022-11-09 10:19:23 -0600
commit76cab67ed87a23df318c43ab84ae9f87fdf203de (patch)
tree3e20bbb46cbc05634fcc90ff7de0013ca7bf4df6 /compiler/rustc_middle/src
parent0aaad9e757207657064d70bf9e6c1e6eb327bf15 (diff)
Add domain size check to fix ICE
Diffstat (limited to 'compiler/rustc_middle/src')
-rw-r--r--compiler/rustc_middle/src/values.rs3
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);
                         }