Update ty::VariantDef
to use IndexVec<FieldIdx, FieldDef>
And while doing the updates for that, also uses `FieldIdx` in `ProjectionKind::Field` and `TypeckResults::field_indices`. There's more places that could use it (like `rustc_const_eval` and `LayoutS`), but I tried to keep this PR from exploding to *even more* places. Part 2/? of https://github.com/rust-lang/compiler-team/issues/606
This commit is contained in:
parent
10338571cf
commit
4abb455529
47 changed files with 127 additions and 104 deletions
|
@ -16,6 +16,7 @@ use rustc_middle::ty::query::Providers;
|
|||
use rustc_middle::ty::{self, TyCtxt};
|
||||
use rustc_session::lint;
|
||||
use rustc_span::symbol::{sym, Symbol};
|
||||
use rustc_target::abi::FieldIdx;
|
||||
use std::mem;
|
||||
|
||||
use crate::errors::{
|
||||
|
@ -232,7 +233,7 @@ impl<'tcx> MarkSymbolVisitor<'tcx> {
|
|||
if let PatKind::Wild = pat.kind {
|
||||
continue;
|
||||
}
|
||||
self.insert_def_id(variant.fields[idx].did);
|
||||
self.insert_def_id(variant.fields[FieldIdx::from_usize(idx)].did);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue