Skip to content

Commit d6d007c

Browse files
Merge pull request rust-lang#20896 from smmalis37/delete-mapping
Remove hir-ty/src/next_solver/mapping.rs
2 parents 6e397d3 + 617683f commit d6d007c

File tree

8 files changed

+21
-52
lines changed

8 files changed

+21
-52
lines changed

src/tools/rust-analyzer/crates/hir-ty/src/db.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -277,7 +277,7 @@ pub trait HirDatabase: DefDatabase + std::fmt::Debug {
277277

278278
// Interned IDs for solver integration
279279
#[salsa::interned]
280-
fn intern_impl_trait_id(&self, id: ImplTraitId) -> InternedOpaqueTyId;
280+
fn intern_impl_trait_id(&self, id: ImplTraitId<'_>) -> InternedOpaqueTyId;
281281

282282
#[salsa::interned]
283283
fn intern_closure(&self, id: InternedClosure) -> InternedClosureId;
@@ -322,7 +322,7 @@ pub struct InternedConstParamId {
322322
#[salsa_macros::interned(no_lifetime, debug, revisions = usize::MAX)]
323323
#[derive(PartialOrd, Ord)]
324324
pub struct InternedOpaqueTyId {
325-
pub loc: ImplTraitId,
325+
pub loc: ImplTraitId<'db>,
326326
}
327327

328328
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord)]

src/tools/rust-analyzer/crates/hir-ty/src/display.rs

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,6 @@ use crate::{
5858
TraitRef, Ty, TyKind, TypingMode,
5959
abi::Safety,
6060
infer::{DbInternerInferExt, traits::ObligationCause},
61-
mapping::ChalkToNextSolver,
6261
},
6362
primitive,
6463
utils::{self, detect_variant_from_bytes},
@@ -1126,9 +1125,9 @@ impl<'db> HirDisplay<'db> for Ty<'db> {
11261125
let datas = db
11271126
.return_type_impl_traits(func)
11281127
.expect("impl trait id without data");
1129-
let data = (*datas).as_ref().map_bound(|rpit| {
1130-
&rpit.impl_traits[idx.to_nextsolver(interner)].predicates
1131-
});
1128+
let data = (*datas)
1129+
.as_ref()
1130+
.map_bound(|rpit| &rpit.impl_traits[idx].predicates);
11321131
let bounds =
11331132
|| data.iter_instantiated_copied(f.interner, ty.args.as_slice());
11341133
let mut len = bounds().count();
@@ -1358,9 +1357,8 @@ impl<'db> HirDisplay<'db> for Ty<'db> {
13581357
ImplTraitId::ReturnTypeImplTrait(func, idx) => {
13591358
let datas =
13601359
db.return_type_impl_traits(func).expect("impl trait id without data");
1361-
let data = (*datas).as_ref().map_bound(|rpit| {
1362-
&rpit.impl_traits[idx.to_nextsolver(interner)].predicates
1363-
});
1360+
let data =
1361+
(*datas).as_ref().map_bound(|rpit| &rpit.impl_traits[idx].predicates);
13641362
let bounds = data
13651363
.iter_instantiated_copied(interner, alias_ty.args.as_slice())
13661364
.collect::<Vec<_>>();
@@ -1377,9 +1375,8 @@ impl<'db> HirDisplay<'db> for Ty<'db> {
13771375
ImplTraitId::TypeAliasImplTrait(alias, idx) => {
13781376
let datas =
13791377
db.type_alias_impl_traits(alias).expect("impl trait id without data");
1380-
let data = (*datas).as_ref().map_bound(|rpit| {
1381-
&rpit.impl_traits[idx.to_nextsolver(interner)].predicates
1382-
});
1378+
let data =
1379+
(*datas).as_ref().map_bound(|rpit| &rpit.impl_traits[idx].predicates);
13831380
let bounds = data
13841381
.iter_instantiated_copied(interner, alias_ty.args.as_slice())
13851382
.collect::<Vec<_>>();

src/tools/rust-analyzer/crates/hir-ty/src/infer.rs

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,6 @@ use crate::{
7373
abi::Safety,
7474
fold::fold_tys,
7575
infer::traits::{Obligation, ObligationCause},
76-
mapping::ChalkToNextSolver,
7776
},
7877
traits::FnTrait,
7978
utils::TargetFeatureIsSafeInTarget,
@@ -1228,9 +1227,7 @@ impl<'body, 'db> InferenceContext<'body, 'db> {
12281227
if matches!(mode, ImplTraitReplacingMode::TypeAlias) {
12291228
// RPITs don't have `tait_coercion_table`, so use inserted inference
12301229
// vars for them.
1231-
if let Some(ty) =
1232-
self.result.type_of_rpit.get(idx.to_nextsolver(self.interner()))
1233-
{
1230+
if let Some(ty) = self.result.type_of_rpit.get(idx) {
12341231
return *ty;
12351232
}
12361233
return ty;
@@ -1251,10 +1248,9 @@ impl<'body, 'db> InferenceContext<'body, 'db> {
12511248
let Some(impl_traits) = impl_traits else {
12521249
return ty;
12531250
};
1254-
let bounds = (*impl_traits).as_ref().map_bound(|its| {
1255-
its.impl_traits[idx.to_nextsolver(self.interner())].predicates.as_slice()
1256-
});
1257-
let var = match self.result.type_of_rpit.entry(idx.to_nextsolver(self.interner())) {
1251+
let bounds =
1252+
(*impl_traits).as_ref().map_bound(|its| its.impl_traits[idx].predicates.as_slice());
1253+
let var = match self.result.type_of_rpit.entry(idx) {
12581254
Entry::Occupied(entry) => return *entry.get(),
12591255
Entry::Vacant(entry) => *entry.insert(self.table.next_ty_var()),
12601256
};

src/tools/rust-analyzer/crates/hir-ty/src/lib.rs

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@ use hir_def::{CallableDefId, TypeOrConstParamId, hir::ExprId, type_ref::Rawness}
5757
use hir_expand::name::Name;
5858
use indexmap::{IndexMap, map::Entry};
5959
use intern::{Symbol, sym};
60-
use la_arena::Idx;
6160
use mir::{MirEvalError, VTableMap};
6261
use rustc_hash::{FxBuildHasher, FxHashMap, FxHashSet};
6362
use rustc_type_ir::{
@@ -332,17 +331,12 @@ impl FnAbi {
332331
}
333332

334333
#[derive(Copy, Clone, PartialEq, Eq, Debug, Hash)]
335-
pub enum ImplTraitId {
336-
ReturnTypeImplTrait(hir_def::FunctionId, ImplTraitIdx), // FIXME(next-solver): Should be crate::nextsolver::ImplTraitIdx.
337-
TypeAliasImplTrait(hir_def::TypeAliasId, ImplTraitIdx),
334+
pub enum ImplTraitId<'db> {
335+
ReturnTypeImplTrait(hir_def::FunctionId, next_solver::ImplTraitIdx<'db>),
336+
TypeAliasImplTrait(hir_def::TypeAliasId, next_solver::ImplTraitIdx<'db>),
338337
AsyncBlockTypeImplTrait(hir_def::DefWithBodyId, ExprId),
339338
}
340339

341-
#[derive(PartialEq, Eq, Debug, Hash)]
342-
pub struct ImplTrait {}
343-
344-
pub type ImplTraitIdx = Idx<ImplTrait>;
345-
346340
/// 'Canonicalizes' the `t` by replacing any errors with new variables. Also
347341
/// ensures there are no unbound variables or inference variables anywhere in
348342
/// the `t`.

src/tools/rust-analyzer/crates/hir-ty/src/next_solver.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ pub mod infer;
1111
pub(crate) mod inspect;
1212
pub mod interner;
1313
mod ir_print;
14-
pub mod mapping;
1514
pub mod normalize;
1615
pub mod obligation_ctxt;
1716
mod opaques;

src/tools/rust-analyzer/crates/hir-ty/src/next_solver/interner.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@ use super::{
4747
abi::Safety,
4848
fold::{BoundVarReplacer, BoundVarReplacerDelegate, FnMutDelegate},
4949
generics::{Generics, generics},
50-
mapping::ChalkToNextSolver,
5150
region::{
5251
BoundRegion, BoundRegionKind, EarlyParamRegion, LateParamRegion, PlaceholderRegion, Region,
5352
},
@@ -1883,7 +1882,7 @@ impl<'db> Interner for DbInterner<'db> {
18831882
match impl_trait_id {
18841883
crate::ImplTraitId::ReturnTypeImplTrait(func, idx) => {
18851884
let infer = self.db().infer(func.into());
1886-
EarlyBinder::bind(infer.type_of_rpit[idx.to_nextsolver(self)])
1885+
EarlyBinder::bind(infer.type_of_rpit[idx])
18871886
}
18881887
crate::ImplTraitId::TypeAliasImplTrait(..)
18891888
| crate::ImplTraitId::AsyncBlockTypeImplTrait(_, _) => {

src/tools/rust-analyzer/crates/hir-ty/src/next_solver/mapping.rs

Lines changed: 0 additions & 13 deletions
This file was deleted.

src/tools/rust-analyzer/crates/hir-ty/src/next_solver/ty.rs

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ use crate::{
3232
CoroutineIdWrapper, FnSig, GenericArg, PolyFnSig, Region, TraitRef, TypeAliasIdWrapper,
3333
abi::Safety,
3434
interner::InternedWrapperNoDebug,
35-
mapping::ChalkToNextSolver,
3635
util::{CoroutineArgsExt, IntegerTypeExt},
3736
},
3837
};
@@ -533,18 +532,16 @@ impl<'db> Ty<'db> {
533532
match db.lookup_intern_impl_trait_id(opaque_ty.def_id.expect_opaque_ty()) {
534533
ImplTraitId::ReturnTypeImplTrait(func, idx) => {
535534
db.return_type_impl_traits(func).map(|it| {
536-
let data = (*it).as_ref().map_bound(|rpit| {
537-
&rpit.impl_traits[idx.to_nextsolver(interner)].predicates
538-
});
535+
let data =
536+
(*it).as_ref().map_bound(|rpit| &rpit.impl_traits[idx].predicates);
539537
data.iter_instantiated_copied(interner, opaque_ty.args.as_slice())
540538
.collect()
541539
})
542540
}
543541
ImplTraitId::TypeAliasImplTrait(alias, idx) => {
544542
db.type_alias_impl_traits(alias).map(|it| {
545-
let data = (*it).as_ref().map_bound(|rpit| {
546-
&rpit.impl_traits[idx.to_nextsolver(interner)].predicates
547-
});
543+
let data =
544+
(*it).as_ref().map_bound(|rpit| &rpit.impl_traits[idx].predicates);
548545
data.iter_instantiated_copied(interner, opaque_ty.args.as_slice())
549546
.collect()
550547
})

0 commit comments

Comments
 (0)