Skip to content

Commit a58c099

Browse files
Merge pull request #21172 from ChayimFriedman2/no-block
internal: Remove the block from `DbInterner`
2 parents c984395 + 3924ffe commit a58c099

File tree

23 files changed

+39
-53
lines changed

23 files changed

+39
-53
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ pub fn autoderef<'db>(
3838
env: Arc<TraitEnvironment<'db>>,
3939
ty: Canonical<'db, Ty<'db>>,
4040
) -> impl Iterator<Item = Ty<'db>> + use<'db> {
41-
let interner = DbInterner::new_with(db, env.krate, env.block);
41+
let interner = DbInterner::new_with(db, env.krate);
4242
let infcx = interner.infer_ctxt().build(TypingMode::PostAnalysis);
4343
let (ty, _) = infcx.instantiate_canonical(&ty);
4444
let autoderef = Autoderef::new(&infcx, &env, ty);

src/tools/rust-analyzer/crates/hir-ty/src/diagnostics/expr.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ impl BodyValidationDiagnostic {
7979
let infer = InferenceResult::for_body(db, owner);
8080
let body = db.body(owner);
8181
let env = db.trait_environment_for_body(owner);
82-
let interner = DbInterner::new_with(db, env.krate, env.block);
82+
let interner = DbInterner::new_with(db, env.krate);
8383
let infcx =
8484
interner.infer_ctxt().build(TypingMode::typeck_for_body(interner, owner.into()));
8585
let mut validator = ExprValidator {

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

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -309,7 +309,7 @@ pub trait HirDisplay<'db> {
309309
allow_opaque: bool,
310310
) -> Result<String, DisplaySourceCodeError> {
311311
let mut result = String::new();
312-
let interner = DbInterner::new_with(db, module_id.krate(), module_id.containing_block());
312+
let interner = DbInterner::new_with(db, module_id.krate());
313313
match self.hir_fmt(&mut HirFormatter {
314314
db,
315315
interner,
@@ -544,11 +544,7 @@ pub enum ClosureStyle {
544544
impl<'db, T: HirDisplay<'db>> HirDisplayWrapper<'_, 'db, T> {
545545
pub fn write_to<F: HirWrite>(&self, f: &mut F) -> Result<(), HirDisplayError> {
546546
let krate = self.display_target.krate;
547-
let block = match self.display_kind {
548-
DisplayKind::SourceCode { target_module_id, .. } => target_module_id.containing_block(),
549-
DisplayKind::Diagnostics | DisplayKind::Test => None,
550-
};
551-
let interner = DbInterner::new_with(self.db, krate, block);
547+
let interner = DbInterner::new_with(self.db, krate);
552548
self.t.hir_fmt(&mut HirFormatter {
553549
db: self.db,
554550
interner,

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ pub fn dyn_compatibility_of_trait_query(
131131

132132
pub fn generics_require_sized_self(db: &dyn HirDatabase, def: GenericDefId) -> bool {
133133
let krate = def.module(db).krate();
134-
let interner = DbInterner::new_with(db, krate, None);
134+
let interner = DbInterner::new_with(db, krate);
135135
let Some(sized) = interner.lang_items().Sized else {
136136
return false;
137137
};
@@ -402,7 +402,7 @@ fn receiver_is_dispatchable<'db>(
402402
let sig = sig.instantiate_identity();
403403

404404
let module = trait_.module(db);
405-
let interner = DbInterner::new_with(db, module.krate(), module.containing_block());
405+
let interner = DbInterner::new_with(db, module.krate());
406406
let self_param_id = TypeParamId::from_unchecked(TypeOrConstParamId {
407407
parent: trait_.into(),
408408
local_id: LocalTypeOrConstParamId::from_raw(la_arena::RawIdx::from_u32(0)),

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1576,7 +1576,7 @@ fn coerce<'db>(
15761576
env: Arc<TraitEnvironment<'db>>,
15771577
tys: &Canonical<'db, (Ty<'db>, Ty<'db>)>,
15781578
) -> Result<(Vec<Adjustment<'db>>, Ty<'db>), TypeError<DbInterner<'db>>> {
1579-
let interner = DbInterner::new_with(db, env.krate, env.block);
1579+
let interner = DbInterner::new_with(db, env.krate);
15801580
let infcx = interner.infer_ctxt().build(TypingMode::PostAnalysis);
15811581
let ((ty1_with_vars, ty2_with_vars), vars) = infcx.instantiate_canonical(tys);
15821582

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

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1455,11 +1455,10 @@ impl<'db> InferenceContext<'_, 'db> {
14551455
) -> Ty<'db> {
14561456
let coerce_ty = expected.coercion_target_type(&mut self.table);
14571457
let g = self.resolver.update_to_inner_scope(self.db, self.owner, expr);
1458-
let prev_state = block_id.map(|block_id| {
1458+
let prev_env = block_id.map(|block_id| {
14591459
let prev_env = self.table.trait_env.clone();
14601460
TraitEnvironment::with_block(&mut self.table.trait_env, block_id);
1461-
let prev_block = self.table.infer_ctxt.interner.block.replace(block_id);
1462-
(prev_env, prev_block)
1461+
prev_env
14631462
});
14641463

14651464
let (break_ty, ty) =
@@ -1567,9 +1566,8 @@ impl<'db> InferenceContext<'_, 'db> {
15671566
}
15681567
});
15691568
self.resolver.reset_to_guard(g);
1570-
if let Some((prev_env, prev_block)) = prev_state {
1569+
if let Some(prev_env) = prev_env {
15711570
self.table.trait_env = prev_env;
1572-
self.table.infer_ctxt.interner.block = prev_block;
15731571
}
15741572

15751573
break_ty.unwrap_or(ty)

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ fn could_unify_impl<'db>(
113113
tys: &Canonical<'db, (Ty<'db>, Ty<'db>)>,
114114
select: for<'a> fn(&mut ObligationCtxt<'a, 'db>) -> Vec<NextSolverError<'db>>,
115115
) -> bool {
116-
let interner = DbInterner::new_with(db, env.krate, env.block);
116+
let interner = DbInterner::new_with(db, env.krate);
117117
let infcx = interner.infer_ctxt().build(TypingMode::PostAnalysis);
118118
let cause = ObligationCause::dummy();
119119
let at = infcx.at(&cause, env.env);
@@ -148,7 +148,7 @@ impl<'db> InferenceTable<'db> {
148148
trait_env: Arc<TraitEnvironment<'db>>,
149149
owner: Option<DefWithBodyId>,
150150
) -> Self {
151-
let interner = DbInterner::new_with(db, trait_env.krate, trait_env.block);
151+
let interner = DbInterner::new_with(db, trait_env.krate);
152152
let typing_mode = match owner {
153153
Some(owner) => TypingMode::typeck_for_body(interner, owner.into()),
154154
// IDE things wants to reveal opaque types.

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ pub fn layout_of_ty_query<'db>(
162162
trait_env: Arc<TraitEnvironment<'db>>,
163163
) -> Result<Arc<Layout>, LayoutError> {
164164
let krate = trait_env.krate;
165-
let interner = DbInterner::new_with(db, krate, trait_env.block);
165+
let interner = DbInterner::new_with(db, krate);
166166
let Ok(target) = db.target_data_layout(krate) else {
167167
return Err(LayoutError::TargetLayoutNotAvailable);
168168
};

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ impl<'db, 'a> TyLoweringContext<'db, 'a> {
194194
) -> Self {
195195
let impl_trait_mode = ImplTraitLoweringState::new(ImplTraitLoweringMode::Disallowed);
196196
let in_binders = DebruijnIndex::ZERO;
197-
let interner = DbInterner::new_with(db, resolver.krate(), None);
197+
let interner = DbInterner::new_with(db, resolver.krate());
198198
Self {
199199
db,
200200
// Can provide no block since we don't use it for trait solving.
@@ -1756,7 +1756,7 @@ pub(crate) fn trait_environment_query<'db>(
17561756
def: GenericDefId,
17571757
) -> Arc<TraitEnvironment<'db>> {
17581758
let module = def.module(db);
1759-
let interner = DbInterner::new_with(db, module.krate(), module.containing_block());
1759+
let interner = DbInterner::new_with(db, module.krate());
17601760
let predicates = GenericPredicates::query_all(db, def);
17611761
let traits_in_scope = predicates
17621762
.iter_identity_copied()
@@ -2289,7 +2289,7 @@ pub(crate) fn associated_type_by_name_including_super_traits<'db>(
22892289
name: &Name,
22902290
) -> Option<(TraitRef<'db>, TypeAliasId)> {
22912291
let module = trait_ref.def_id.0.module(db);
2292-
let interner = DbInterner::new_with(db, module.krate(), module.containing_block());
2292+
let interner = DbInterner::new_with(db, module.krate());
22932293
rustc_type_ir::elaborate::supertraits(interner, Binder::dummy(trait_ref)).find_map(|t| {
22942294
let trait_id = t.as_ref().skip_binder().def_id.0;
22952295
let assoc_type = trait_id.trait_items(db).associated_type_by_name(name)?;

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -419,7 +419,7 @@ pub(crate) fn lookup_impl_method_query<'db>(
419419
func: FunctionId,
420420
fn_subst: GenericArgs<'db>,
421421
) -> (FunctionId, GenericArgs<'db>) {
422-
let interner = DbInterner::new_with(db, env.krate, env.block);
422+
let interner = DbInterner::new_with(db, env.krate);
423423
let infcx = interner.infer_ctxt().build(TypingMode::PostAnalysis);
424424

425425
let ItemContainerId::TraitId(trait_id) = func.loc(db).container else {

0 commit comments

Comments
 (0)