1
Fork 0

Remove special treatment for _intern_canonical_var_infos.

This is a leftover from when there were global and thread-local arenas.
This commit is contained in:
Nicholas Nethercote 2019-10-01 15:49:37 +10:00
parent e9d54e1860
commit 3724e37b5a

View file

@ -2217,6 +2217,7 @@ macro_rules! slice_interners {
slice_interners!(
type_list: _intern_type_list(Ty<'tcx>),
substs: _intern_substs(GenericArg<'tcx>),
canonical_var_infos: _intern_canonical_var_infos(CanonicalVarInfo),
existential_predicates: _intern_existential_predicates(ExistentialPredicate<'tcx>),
predicates: _intern_predicates(Predicate<'tcx>),
clauses: _intern_clauses(Clause<'tcx>),
@ -2224,20 +2225,6 @@ slice_interners!(
projs: _intern_projs(ProjectionKind)
);
// This isn't a perfect fit: `CanonicalVarInfo` slices are always
// allocated in the global arena, so this `intern_method!` macro is
// overly general. However, we just return `false` for the code that checks
// whether they belong in the thread-local arena, so no harm done, and
// seems better than open-coding the rest.
intern_method! {
'tcx,
canonical_var_infos: _intern_canonical_var_infos(
&[CanonicalVarInfo],
|a, v| List::from_arena(a, v),
Deref::deref
) -> List<CanonicalVarInfo>
}
impl<'tcx> TyCtxt<'tcx> {
/// Given a `fn` type, returns an equivalent `unsafe fn` type;
/// that is, a `fn` type that is equivalent in every way for being