Use DroplessArena for variance inference

This commit is contained in:
Dániel Buga 2020-10-20 11:05:00 +02:00
parent d07ce65d56
commit 9b453d6954
2 changed files with 6 additions and 6 deletions

View File

@ -4,7 +4,7 @@
//! [rustc dev guide]: https://rustc-dev-guide.rust-lang.org/variance.html
use hir::Node;
use rustc_arena::TypedArena;
use rustc_arena::DroplessArena;
use rustc_hir as hir;
use rustc_hir::def_id::{CrateNum, DefId, LOCAL_CRATE};
use rustc_middle::ty::query::Providers;
@ -32,8 +32,8 @@ pub fn provide(providers: &mut Providers) {
fn crate_variances(tcx: TyCtxt<'_>, crate_num: CrateNum) -> CrateVariancesMap<'_> {
assert_eq!(crate_num, LOCAL_CRATE);
let mut arena = TypedArena::default();
let terms_cx = terms::determine_parameters_to_be_inferred(tcx, &mut arena);
let arena = DroplessArena::default();
let terms_cx = terms::determine_parameters_to_be_inferred(tcx, &arena);
let constraints_cx = constraints::add_constraints_from_crate(terms_cx);
solve::solve_constraints(constraints_cx)
}

View File

@ -9,7 +9,7 @@
// `InferredIndex` is a newtype'd int representing the index of such
// a variable.
use rustc_arena::TypedArena;
use rustc_arena::DroplessArena;
use rustc_hir as hir;
use rustc_hir::itemlikevisit::ItemLikeVisitor;
use rustc_hir::HirIdMap;
@ -47,7 +47,7 @@ impl<'a> fmt::Debug for VarianceTerm<'a> {
pub struct TermsContext<'a, 'tcx> {
pub tcx: TyCtxt<'tcx>,
pub arena: &'a TypedArena<VarianceTerm<'a>>,
pub arena: &'a DroplessArena,
// For marker types, UnsafeCell, and other lang items where
// variance is hardcoded, records the item-id and the hardcoded
@ -64,7 +64,7 @@ pub struct TermsContext<'a, 'tcx> {
pub fn determine_parameters_to_be_inferred<'a, 'tcx>(
tcx: TyCtxt<'tcx>,
arena: &'a mut TypedArena<VarianceTerm<'a>>,
arena: &'a DroplessArena,
) -> TermsContext<'a, 'tcx> {
let mut terms_cx = TermsContext {
tcx,