Skip to content

Commit 3405725

Browse files
committed
Change concrete opaque type to be a VecMap
1 parent 2bc723f commit 3405725

File tree

3 files changed

+7
-5
lines changed

3 files changed

+7
-5
lines changed

compiler/rustc_middle/src/mir/query.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
33
use crate::mir::{abstract_const, Body, Promoted};
44
use crate::ty::{self, Ty, TyCtxt};
5-
use rustc_data_structures::fx::FxHashMap;
65
use rustc_data_structures::sync::Lrc;
6+
use rustc_data_structures::vec_map::VecMap;
77
use rustc_errors::ErrorReported;
88
use rustc_hir as hir;
99
use rustc_hir::def_id::{DefId, LocalDefId};
@@ -210,7 +210,7 @@ pub struct BorrowCheckResult<'tcx> {
210210
/// All the opaque types that are restricted to concrete types
211211
/// by this function. Unlike the value in `TypeckResults`, this has
212212
/// unerased regions.
213-
pub concrete_opaque_types: FxHashMap<DefId, ty::ResolvedOpaqueTy<'tcx>>,
213+
pub concrete_opaque_types: VecMap<DefId, ty::ResolvedOpaqueTy<'tcx>>,
214214
pub closure_requirements: Option<ClosureRegionRequirements<'tcx>>,
215215
pub used_mut_upvars: SmallVec<[Field; 8]>,
216216
}

compiler/rustc_middle/src/ty/context.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ use rustc_data_structures::sharded::{IntoPointer, ShardedHashMap};
3434
use rustc_data_structures::stable_hasher::{HashStable, StableHasher};
3535
use rustc_data_structures::steal::Steal;
3636
use rustc_data_structures::sync::{self, Lock, Lrc, WorkerLocal};
37+
use rustc_data_structures::vec_map::VecMap;
3738
use rustc_errors::ErrorReported;
3839
use rustc_hir as hir;
3940
use rustc_hir::def::{DefKind, Res};
@@ -424,7 +425,7 @@ pub struct TypeckResults<'tcx> {
424425

425426
/// All the opaque types that are restricted to concrete types
426427
/// by this function.
427-
pub concrete_opaque_types: FxHashMap<DefId, ResolvedOpaqueTy<'tcx>>,
428+
pub concrete_opaque_types: VecMap<DefId, ResolvedOpaqueTy<'tcx>>,
428429

429430
/// Tracks the minimum captures required for a closure;
430431
/// see `MinCaptureInformationMap` for more details.

compiler/rustc_mir/src/borrow_check/mod.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
33
use rustc_data_structures::fx::{FxHashMap, FxHashSet};
44
use rustc_data_structures::graph::dominators::Dominators;
5+
use rustc_data_structures::vec_map::VecMap;
56
use rustc_errors::{Applicability, Diagnostic, DiagnosticBuilder, ErrorReported};
67
use rustc_hir as hir;
78
use rustc_hir::def_id::LocalDefId;
@@ -25,7 +26,7 @@ use either::Either;
2526
use smallvec::SmallVec;
2627
use std::cell::RefCell;
2728
use std::collections::BTreeMap;
28-
use std::iter;
29+
use std::iter::{self, FromIterator};
2930
use std::mem;
3031
use std::rc::Rc;
3132

@@ -441,7 +442,7 @@ fn do_mir_borrowck<'a, 'tcx>(
441442
}
442443

443444
let result = BorrowCheckResult {
444-
concrete_opaque_types: opaque_type_values,
445+
concrete_opaque_types: VecMap::from_iter(opaque_type_values.into_iter()),
445446
closure_requirements: opt_closure_req,
446447
used_mut_upvars: mbcx.used_mut_upvars,
447448
};

0 commit comments

Comments
 (0)