Skip to content

Commit c2b5a7e

Browse files
committed
remove unify_key::replace_if_possible
1 parent 18fae7b commit c2b5a7e

File tree

6 files changed

+11
-43
lines changed

6 files changed

+11
-43
lines changed

Diff for: compiler/rustc_infer/src/infer/combine.rs

+4-7
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,12 @@ use super::glb::Glb;
2727
use super::lub::Lub;
2828
use super::sub::Sub;
2929
use super::type_variable::TypeVariableValue;
30-
use super::unify_key::replace_if_possible;
31-
use super::unify_key::{ConstVarValue, ConstVariableValue};
32-
use super::unify_key::{ConstVariableOrigin, ConstVariableOriginKind};
3330
use super::{InferCtxt, MiscVariable, TypeTrace};
34-
3531
use crate::traits::{Obligation, PredicateObligations};
36-
3732
use rustc_data_structures::sso::SsoHashMap;
3833
use rustc_hir::def_id::DefId;
34+
use rustc_middle::infer::unify_key::{ConstVarValue, ConstVariableValue};
35+
use rustc_middle::infer::unify_key::{ConstVariableOrigin, ConstVariableOriginKind};
3936
use rustc_middle::traits::ObligationCause;
4037
use rustc_middle::ty::error::{ExpectedFound, TypeError};
4138
use rustc_middle::ty::relate::{self, Relate, RelateResult, TypeRelation};
@@ -140,8 +137,8 @@ impl<'infcx, 'tcx> InferCtxt<'infcx, 'tcx> {
140137
return Ok(a);
141138
}
142139

143-
let a = replace_if_possible(&mut self.inner.borrow_mut().const_unification_table(), a);
144-
let b = replace_if_possible(&mut self.inner.borrow_mut().const_unification_table(), b);
140+
let a = self.shallow_resolve(a);
141+
let b = self.shallow_resolve(b);
145142

146143
let a_is_expected = relation.a_is_expected();
147144

Diff for: compiler/rustc_infer/src/infer/freshen.rs

+3-7
Original file line numberDiff line numberDiff line change
@@ -30,17 +30,13 @@
3030
//! solving a set of constraints. In contrast, the type inferencer assigns a value to each type
3131
//! variable only once, and it does so as soon as it can, so it is reasonable to ask what the type
3232
//! inferencer knows "so far".
33-
33+
use super::InferCtxt;
34+
use rustc_data_structures::fx::FxHashMap;
35+
use rustc_middle::infer::unify_key::ToType;
3436
use rustc_middle::ty::fold::TypeFolder;
3537
use rustc_middle::ty::{self, Ty, TyCtxt, TypeFoldable};
36-
37-
use rustc_data_structures::fx::FxHashMap;
38-
3938
use std::collections::hash_map::Entry;
4039

41-
use super::unify_key::ToType;
42-
use super::InferCtxt;
43-
4440
pub struct TypeFreshener<'a, 'tcx> {
4541
infcx: &'a InferCtxt<'a, 'tcx>,
4642
ty_freshen_count: u32,

Diff for: compiler/rustc_infer/src/infer/mod.rs

-2
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,6 @@ mod sub;
7070
pub mod type_variable;
7171
mod undo_log;
7272

73-
pub use rustc_middle::infer::unify_key;
74-
7573
#[must_use]
7674
#[derive(Debug)]
7775
pub struct InferOk<'tcx, T> {

Diff for: compiler/rustc_middle/src/infer/unify_key.rs

+2-25
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,8 @@
1-
use crate::ty::{self, InferConst, Ty, TyCtxt};
2-
use rustc_data_structures::snapshot_vec;
3-
use rustc_data_structures::undo_log::UndoLogs;
4-
use rustc_data_structures::unify::{
5-
self, EqUnifyValue, InPlace, NoError, UnificationTable, UnifyKey, UnifyValue,
6-
};
1+
use crate::ty::{self, Ty, TyCtxt};
2+
use rustc_data_structures::unify::{EqUnifyValue, NoError, UnifyKey, UnifyValue};
73
use rustc_span::def_id::DefId;
84
use rustc_span::symbol::Symbol;
95
use rustc_span::Span;
10-
116
use std::cmp;
127
use std::marker::PhantomData;
138

@@ -167,21 +162,3 @@ impl<'tcx> UnifyValue for ConstVarValue<'tcx> {
167162
}
168163

169164
impl<'tcx> EqUnifyValue for ty::Const<'tcx> {}
170-
171-
pub fn replace_if_possible<'tcx, V, L>(
172-
table: &mut UnificationTable<InPlace<ty::ConstVid<'tcx>, V, L>>,
173-
c: ty::Const<'tcx>,
174-
) -> ty::Const<'tcx>
175-
where
176-
V: snapshot_vec::VecLike<unify::Delegate<ty::ConstVid<'tcx>>>,
177-
L: UndoLogs<snapshot_vec::UndoLog<unify::Delegate<ty::ConstVid<'tcx>>>>,
178-
{
179-
if let ty::ConstKind::Infer(InferConst::Var(vid)) = c.val() {
180-
match table.probe_value(vid).val.known() {
181-
Some(c) => c,
182-
None => c,
183-
}
184-
} else {
185-
c
186-
}
187-
}

Diff for: compiler/rustc_typeck/src/check/fn_ctxt/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ use rustc_hir as hir;
1414
use rustc_hir::def_id::DefId;
1515
use rustc_infer::infer;
1616
use rustc_infer::infer::type_variable::{TypeVariableOrigin, TypeVariableOriginKind};
17-
use rustc_infer::infer::unify_key::{ConstVariableOrigin, ConstVariableOriginKind};
17+
use rustc_middle::infer::unify_key::{ConstVariableOrigin, ConstVariableOriginKind};
1818
use rustc_middle::ty::fold::TypeFoldable;
1919
use rustc_middle::ty::subst::GenericArgKind;
2020
use rustc_middle::ty::{self, Const, Ty, TyCtxt};

Diff for: compiler/rustc_typeck/src/check/method/probe.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ use rustc_hir::def::Namespace;
1515
use rustc_infer::infer::canonical::OriginalQueryValues;
1616
use rustc_infer::infer::canonical::{Canonical, QueryResponse};
1717
use rustc_infer::infer::type_variable::{TypeVariableOrigin, TypeVariableOriginKind};
18-
use rustc_infer::infer::unify_key::{ConstVariableOrigin, ConstVariableOriginKind};
1918
use rustc_infer::infer::{self, InferOk, TyCtxtInferExt};
19+
use rustc_middle::infer::unify_key::{ConstVariableOrigin, ConstVariableOriginKind};
2020
use rustc_middle::middle::stability;
2121
use rustc_middle::ty::fast_reject::{simplify_type, TreatParams};
2222
use rustc_middle::ty::subst::{InternalSubsts, Subst, SubstsRef};

0 commit comments

Comments
 (0)