Skip to content

Commit 4e10821

Browse files
committed
Added more comments + slight cleanup to code
1 parent 3a3e40c commit 4e10821

File tree

4 files changed

+156
-108
lines changed

4 files changed

+156
-108
lines changed

compiler/rustc_trait_selection/src/solve/eval_ctxt/canonical/dedup_solver.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
#![allow(unused_imports)]
2+
#![allow(unused_variables)]
3+
#![allow(dead_code)]
4+
#![allow(unreachable_code)]
5+
16
use crate::infer::canonical::QueryRegionConstraints;
27
use crate::infer::region_constraints::MemberConstraint;
38
use rustc_infer::infer::InferCtxt;

compiler/rustc_trait_selection/src/solve/eval_ctxt/canonical/dedup_solver/constraint_walker.rs

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
use rustc_data_structures::fx::FxIndexSet;
22
use rustc_infer::infer::InferCtxt;
33
use rustc_middle::ty;
4-
use rustc_middle::ty::{Const, Region, Ty, TyCtxt, TypeFoldable, TypeFolder, TypeSuperFoldable};
4+
use rustc_middle::ty::{
5+
Const, GenericArg, Region, Ty, TyCtxt, TypeFoldable, TypeFolder, TypeSuperFoldable,
6+
};
57

68
pub struct DedupWalker<'me, 'tcx> {
79
infcx: &'me InferCtxt<'tcx>,
@@ -11,15 +13,9 @@ pub struct DedupWalker<'me, 'tcx> {
1113
vars_present: Vec<usize>,
1214
}
1315
pub struct DedupableIndexer<'tcx> {
14-
vars: FxIndexSet<DedupVar<'tcx>>,
16+
vars: FxIndexSet<GenericArg<'tcx>>,
1517
pub unremovable_vars: FxIndexSet<usize>,
1618
}
17-
#[derive(Hash, PartialEq, Eq)]
18-
enum DedupVar<'tcx> {
19-
Region(Region<'tcx>),
20-
Ty(Ty<'tcx>),
21-
Const(Const<'tcx>),
22-
}
2319

2420
impl<'me, 'tcx> DedupWalker<'me, 'tcx> {
2521
pub fn erase_dedupables<T: TypeFoldable<TyCtxt<'tcx>>>(
@@ -38,7 +34,7 @@ impl<'tcx> DedupableIndexer<'tcx> {
3834
pub fn new() -> Self {
3935
Self { vars: FxIndexSet::default(), unremovable_vars: FxIndexSet::default() }
4036
}
41-
fn lookup(&mut self, var: DedupVar<'tcx>) -> usize {
37+
fn lookup(&mut self, var: GenericArg<'tcx>) -> usize {
4238
self.vars.get_index_of(&var).unwrap_or_else(|| self.vars.insert_full(var).0)
4339
}
4440
fn add_unremovable_var(&mut self, var: usize) {
@@ -63,7 +59,7 @@ impl<'tcx> TypeFolder<TyCtxt<'tcx>> for DedupWalker<'_, 'tcx> {
6359
ty::ReVar(..) | ty::RePlaceholder(..) => self.infcx.universe_of_region(region),
6460
_ => return region,
6561
};
66-
let var_id = self.var_indexer.lookup(DedupVar::Region(region));
62+
let var_id = self.var_indexer.lookup(GenericArg::from(region));
6763
self.vars_present.push(var_id);
6864
if self.max_nameable_universe.can_name(universe) {
6965
self.var_indexer.add_unremovable_var(var_id);
@@ -90,7 +86,7 @@ impl<'tcx> TypeFolder<TyCtxt<'tcx>> for DedupWalker<'_, 'tcx> {
9086
}
9187
_ => return ty,
9288
};
93-
let var_id = self.var_indexer.lookup(DedupVar::Ty(ty));
89+
let var_id = self.var_indexer.lookup(GenericArg::from(ty));
9490
self.vars_present.push(var_id);
9591
if self.max_nameable_universe.can_name(universe) {
9692
self.var_indexer.add_unremovable_var(var_id);
@@ -112,7 +108,7 @@ impl<'tcx> TypeFolder<TyCtxt<'tcx>> for DedupWalker<'_, 'tcx> {
112108
_ => None,
113109
};
114110
let new_const_kind = if let Some(uni) = universe {
115-
let var_id = self.var_indexer.lookup(DedupVar::Const(ct));
111+
let var_id = self.var_indexer.lookup(GenericArg::from(ct));
116112
self.vars_present.push(var_id);
117113
if self.max_nameable_universe.can_name(uni) {
118114
self.var_indexer.add_unremovable_var(var_id);

0 commit comments

Comments
 (0)