diff options
| author | John Kåre Alsaker <john.kare.alsaker@gmail.com> | 2018-11-30 20:34:25 +0100 |
|---|---|---|
| committer | John Kåre Alsaker <john.kare.alsaker@gmail.com> | 2019-04-25 18:23:35 +0200 |
| commit | b164a2da63530d1e5f67415a5654ccb4f9c68099 (patch) | |
| tree | eedfcd6cfb04c5e0cde2b953b59d088b462c83f1 | |
| parent | 1fe0d4e3839883bb88777173cd7775425a251085 (diff) | |
| download | rust-b164a2da63530d1e5f67415a5654ccb4f9c68099.tar.gz rust-b164a2da63530d1e5f67415a5654ccb4f9c68099.zip | |
Update trait_impls_of
| -rw-r--r-- | src/librustc/arena.rs | 1 | ||||
| -rw-r--r-- | src/librustc/query/mod.rs | 2 | ||||
| -rw-r--r-- | src/librustc/ty/trait_def.rs | 5 |
3 files changed, 4 insertions, 4 deletions
diff --git a/src/librustc/arena.rs b/src/librustc/arena.rs index af212741e9f..bdec2dc3b9d 100644 --- a/src/librustc/arena.rs +++ b/src/librustc/arena.rs @@ -19,6 +19,7 @@ macro_rules! arena_types { [] region_scope_tree: rustc::middle::region::ScopeTree, [] item_local_set: rustc::util::nodemap::ItemLocalSet, [decode] mir_const_qualif: rustc_data_structures::bit_set::BitSet<rustc::mir::Local>, + [] trait_impls_of: rustc::ty::trait_def::TraitImpls, ], $tcx); ) } diff --git a/src/librustc/query/mod.rs b/src/librustc/query/mod.rs index d7e37862b88..b56b4046830 100644 --- a/src/librustc/query/mod.rs +++ b/src/librustc/query/mod.rs @@ -540,7 +540,7 @@ rustc_queries! { } TypeChecking { - query trait_impls_of(key: DefId) -> Lrc<ty::trait_def::TraitImpls> { + query trait_impls_of(key: DefId) -> &'tcx ty::trait_def::TraitImpls { desc { |tcx| "trait impls of `{}`", tcx.def_path_str(key) } } query specialization_graph_of(_: DefId) -> &'tcx specialization_graph::Graph {} diff --git a/src/librustc/ty/trait_def.rs b/src/librustc/ty/trait_def.rs index 58f21893de1..a0b409bc400 100644 --- a/src/librustc/ty/trait_def.rs +++ b/src/librustc/ty/trait_def.rs @@ -10,7 +10,6 @@ use crate::ty::{Ty, TyCtxt}; use rustc_data_structures::fx::FxHashMap; use rustc_data_structures::stable_hasher::{HashStable, StableHasher, StableHasherResult}; -use rustc_data_structures::sync::Lrc; use rustc_macros::HashStable; /// A trait's definition with type information. @@ -151,7 +150,7 @@ impl<'a, 'gcx, 'tcx> TyCtxt<'a, 'gcx, 'tcx> { // Query provider for `trait_impls_of`. pub(super) fn trait_impls_of_provider<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, trait_id: DefId) - -> Lrc<TraitImpls> { + -> &'tcx TraitImpls { let mut impls = TraitImpls::default(); { @@ -188,7 +187,7 @@ pub(super) fn trait_impls_of_provider<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, } } - Lrc::new(impls) + tcx.arena.alloc(impls) } impl<'a> HashStable<StableHashingContext<'a>> for TraitImpls { |
