Skip to content

Commit 70918ec

Browse files
authored
Rollup merge of rust-lang#109280 - compiler-errors:no-vec-map, r=Mark-Simulacrum
Remove `VecMap` Not sure what the use of this data structure is over just using `FxIndexMap` or a `Vec`. r? ```@ghost```
2 parents d8543ab + 6639538 commit 70918ec

File tree

12 files changed

+16
-263
lines changed

12 files changed

+16
-263
lines changed

compiler/rustc_borrowck/src/lib.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ extern crate tracing;
1919

2020
use rustc_data_structures::fx::{FxIndexMap, FxIndexSet};
2121
use rustc_data_structures::graph::dominators::Dominators;
22-
use rustc_data_structures::vec_map::VecMap;
2322
use rustc_errors::{Diagnostic, DiagnosticBuilder, DiagnosticMessage, SubdiagnosticMessage};
2423
use rustc_hir as hir;
2524
use rustc_hir::def_id::LocalDefId;
@@ -141,7 +140,7 @@ fn mir_borrowck(tcx: TyCtxt<'_>, def: ty::WithOptConstParam<LocalDefId>) -> &Bor
141140
debug!("Skipping borrowck because of injected body");
142141
// Let's make up a borrowck result! Fun times!
143142
let result = BorrowCheckResult {
144-
concrete_opaque_types: VecMap::new(),
143+
concrete_opaque_types: FxIndexMap::default(),
145144
closure_requirements: None,
146145
used_mut_upvars: SmallVec::new(),
147146
tainted_by_errors: None,

compiler/rustc_borrowck/src/nll.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
#![deny(rustc::diagnostic_outside_of_impl)]
33
//! The entry point of the NLL borrow checker.
44
5-
use rustc_data_structures::vec_map::VecMap;
5+
use rustc_data_structures::fx::FxIndexMap;
66
use rustc_hir::def_id::LocalDefId;
77
use rustc_index::vec::IndexVec;
88
use rustc_middle::mir::{create_dump_file, dump_enabled, dump_mir, PassWhere};
@@ -44,7 +44,7 @@ pub type PoloniusOutput = Output<RustcFacts>;
4444
/// closure requirements to propagate, and any generated errors.
4545
pub(crate) struct NllOutput<'tcx> {
4646
pub regioncx: RegionInferenceContext<'tcx>,
47-
pub opaque_type_values: VecMap<LocalDefId, OpaqueHiddenType<'tcx>>,
47+
pub opaque_type_values: FxIndexMap<LocalDefId, OpaqueHiddenType<'tcx>>,
4848
pub polonius_input: Option<Box<AllFacts>>,
4949
pub polonius_output: Option<Rc<PoloniusOutput>>,
5050
pub opt_closure_req: Option<ClosureRegionRequirements<'tcx>>,
@@ -377,7 +377,7 @@ pub(super) fn dump_annotation<'tcx>(
377377
body: &Body<'tcx>,
378378
regioncx: &RegionInferenceContext<'tcx>,
379379
closure_region_requirements: &Option<ClosureRegionRequirements<'tcx>>,
380-
opaque_type_values: &VecMap<LocalDefId, OpaqueHiddenType<'tcx>>,
380+
opaque_type_values: &FxIndexMap<LocalDefId, OpaqueHiddenType<'tcx>>,
381381
errors: &mut crate::error::BorrowckErrors<'tcx>,
382382
) {
383383
let tcx = infcx.tcx;

compiler/rustc_borrowck/src/region_infer/opaque_types.rs

+3-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
use rustc_data_structures::fx::{FxIndexMap, FxIndexSet};
2-
use rustc_data_structures::vec_map::VecMap;
32
use rustc_errors::ErrorGuaranteed;
43
use rustc_hir::def_id::LocalDefId;
54
use rustc_hir::OpaqueTyOrigin;
@@ -61,9 +60,9 @@ impl<'tcx> RegionInferenceContext<'tcx> {
6160
pub(crate) fn infer_opaque_types(
6261
&self,
6362
infcx: &InferCtxt<'tcx>,
64-
opaque_ty_decls: VecMap<OpaqueTypeKey<'tcx>, (OpaqueHiddenType<'tcx>, OpaqueTyOrigin)>,
65-
) -> VecMap<LocalDefId, OpaqueHiddenType<'tcx>> {
66-
let mut result: VecMap<LocalDefId, OpaqueHiddenType<'tcx>> = VecMap::new();
63+
opaque_ty_decls: FxIndexMap<OpaqueTypeKey<'tcx>, (OpaqueHiddenType<'tcx>, OpaqueTyOrigin)>,
64+
) -> FxIndexMap<LocalDefId, OpaqueHiddenType<'tcx>> {
65+
let mut result: FxIndexMap<LocalDefId, OpaqueHiddenType<'tcx>> = FxIndexMap::default();
6766

6867
let member_constraints: FxIndexMap<_, _> = self
6968
.member_constraints

compiler/rustc_borrowck/src/type_check/mod.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ use either::Either;
1010
use hir::OpaqueTyOrigin;
1111
use rustc_data_structures::frozen::Frozen;
1212
use rustc_data_structures::fx::{FxIndexMap, FxIndexSet};
13-
use rustc_data_structures::vec_map::VecMap;
1413
use rustc_hir as hir;
1514
use rustc_hir::def::DefKind;
1615
use rustc_hir::def_id::LocalDefId;
@@ -894,7 +893,7 @@ pub(crate) struct MirTypeckResults<'tcx> {
894893
pub(crate) constraints: MirTypeckRegionConstraints<'tcx>,
895894
pub(crate) universal_region_relations: Frozen<UniversalRegionRelations<'tcx>>,
896895
pub(crate) opaque_type_values:
897-
VecMap<OpaqueTypeKey<'tcx>, (OpaqueHiddenType<'tcx>, OpaqueTyOrigin)>,
896+
FxIndexMap<OpaqueTypeKey<'tcx>, (OpaqueHiddenType<'tcx>, OpaqueTyOrigin)>,
898897
}
899898

900899
/// A collection of region constraints that must be satisfied for the

compiler/rustc_data_structures/src/lib.rs

-1
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,6 @@ pub mod sync;
7979
pub mod tiny_list;
8080
pub mod transitive_relation;
8181
pub mod vec_linked_list;
82-
pub mod vec_map;
8382
pub mod work_queue;
8483
pub use atomic_ref::AtomicRef;
8584
pub mod frozen;

compiler/rustc_data_structures/src/vec_map.rs

-192
This file was deleted.

compiler/rustc_data_structures/src/vec_map/tests.rs

-48
This file was deleted.

compiler/rustc_hir_analysis/src/collect/type_of.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -778,7 +778,7 @@ fn find_opaque_ty_constraints_for_rpit(
778778
// Use borrowck to get the type with unerased regions.
779779
let concrete_opaque_types = &self.tcx.mir_borrowck(def_id).concrete_opaque_types;
780780
debug!(?concrete_opaque_types);
781-
for &(def_id, concrete_type) in concrete_opaque_types {
781+
for (&def_id, &concrete_type) in concrete_opaque_types {
782782
if def_id != self.def_id {
783783
// Ignore constraints for other opaque types.
784784
continue;

compiler/rustc_infer/src/infer/canonical/query_response.rs

+1-3
Original file line numberDiff line numberDiff line change
@@ -159,9 +159,7 @@ impl<'tcx> InferCtxt<'tcx> {
159159
.opaque_type_storage
160160
.opaque_types
161161
.iter()
162-
.map(|&(k, ref v)| {
163-
(self.tcx.mk_opaque(k.def_id.to_def_id(), k.substs), v.hidden_type.ty)
164-
})
162+
.map(|(k, v)| (self.tcx.mk_opaque(k.def_id.to_def_id(), k.substs), v.hidden_type.ty))
165163
.collect()
166164
}
167165

compiler/rustc_infer/src/infer/opaque_types.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ use crate::infer::{DefiningAnchor, InferCtxt, InferOk};
55
use crate::traits;
66
use hir::def_id::{DefId, LocalDefId};
77
use hir::OpaqueTyOrigin;
8+
use rustc_data_structures::fx::FxIndexMap;
89
use rustc_data_structures::sync::Lrc;
9-
use rustc_data_structures::vec_map::VecMap;
1010
use rustc_hir as hir;
1111
use rustc_middle::traits::ObligationCause;
1212
use rustc_middle::ty::error::{ExpectedFound, TypeError};
@@ -21,7 +21,7 @@ use std::ops::ControlFlow;
2121

2222
mod table;
2323

24-
pub type OpaqueTypeMap<'tcx> = VecMap<OpaqueTypeKey<'tcx>, OpaqueTypeDecl<'tcx>>;
24+
pub type OpaqueTypeMap<'tcx> = FxIndexMap<OpaqueTypeKey<'tcx>, OpaqueTypeDecl<'tcx>>;
2525
pub use table::{OpaqueTypeStorage, OpaqueTypeTable};
2626

2727
/// Information about the opaque types whose values we

compiler/rustc_middle/src/mir/query.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
33
use crate::mir::{Body, ConstantKind, Promoted};
44
use crate::ty::{self, OpaqueHiddenType, Ty, TyCtxt};
5+
use rustc_data_structures::fx::FxIndexMap;
56
use rustc_data_structures::unord::UnordSet;
6-
use rustc_data_structures::vec_map::VecMap;
77
use rustc_errors::ErrorGuaranteed;
88
use rustc_hir as hir;
99
use rustc_hir::def_id::{DefId, LocalDefId};
@@ -227,7 +227,7 @@ pub struct BorrowCheckResult<'tcx> {
227227
/// All the opaque types that are restricted to concrete types
228228
/// by this function. Unlike the value in `TypeckResults`, this has
229229
/// unerased regions.
230-
pub concrete_opaque_types: VecMap<LocalDefId, OpaqueHiddenType<'tcx>>,
230+
pub concrete_opaque_types: FxIndexMap<LocalDefId, OpaqueHiddenType<'tcx>>,
231231
pub closure_requirements: Option<ClosureRegionRequirements<'tcx>>,
232232
pub used_mut_upvars: SmallVec<[Field; 8]>,
233233
pub tainted_by_errors: Option<ErrorGuaranteed>,

0 commit comments

Comments
 (0)