about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJohn Kåre Alsaker <john.kare.alsaker@gmail.com>2018-11-30 22:58:06 +0100
committerJohn Kåre Alsaker <john.kare.alsaker@gmail.com>2019-05-23 18:51:49 +0200
commit5751fcc3b129a31981e9e24ee0ad063b9c7574ff (patch)
tree763507a6f3e75056f3cd6ebac7cfb2978d3cda01
parent10ef70bb68707eda2f0c999a5a06231adcbf967c (diff)
downloadrust-5751fcc3b129a31981e9e24ee0ad063b9c7574ff.tar.gz
rust-5751fcc3b129a31981e9e24ee0ad063b9c7574ff.zip
Update all_traits
-rw-r--r--src/librustc/arena.rs1
-rw-r--r--src/librustc/query/mod.rs2
-rw-r--r--src/librustc_typeck/check/method/suggest.rs3
3 files changed, 3 insertions, 3 deletions
diff --git a/src/librustc/arena.rs b/src/librustc/arena.rs
index b9126b619cd..8716f3e22cc 100644
--- a/src/librustc/arena.rs
+++ b/src/librustc/arena.rs
@@ -81,6 +81,7 @@ macro_rules! arena_types {
             [few] lint_levels: rustc::lint::LintLevelMap,
             [few] stability_index: rustc::middle::stability::Index<'tcx>,
             [few] features: syntax::feature_gate::Features,
+            [few] all_traits: Vec<rustc::hir::def_id::DefId>,
         ], $tcx);
     )
 }
diff --git a/src/librustc/query/mod.rs b/src/librustc/query/mod.rs
index 759ee41f0e0..9bbc91e4556 100644
--- a/src/librustc/query/mod.rs
+++ b/src/librustc/query/mod.rs
@@ -850,7 +850,7 @@ rustc_queries! {
         /// A vector of every trait accessible in the whole crate
         /// (i.e., including those from subcrates). This is used only for
         /// error reporting.
-        query all_traits(_: CrateNum) -> Lrc<Vec<DefId>> {
+        query all_traits(_: CrateNum) -> &'tcx [DefId] {
             desc { "fetching all foreign and local traits" }
         }
     }
diff --git a/src/librustc_typeck/check/method/suggest.rs b/src/librustc_typeck/check/method/suggest.rs
index 77d2ffab8ef..dfe21edee41 100644
--- a/src/librustc_typeck/check/method/suggest.rs
+++ b/src/librustc_typeck/check/method/suggest.rs
@@ -6,7 +6,6 @@ use crate::middle::lang_items::FnOnceTraitLangItem;
 use crate::namespace::Namespace;
 use crate::util::nodemap::FxHashSet;
 use errors::{Applicability, DiagnosticBuilder};
-use rustc_data_structures::sync::Lrc;
 use rustc::hir::{self, ExprKind, Node, QPath};
 use rustc::hir::def::{Res, DefKind};
 use rustc::hir::def_id::{CRATE_DEF_INDEX, LOCAL_CRATE, DefId};
@@ -844,7 +843,7 @@ fn compute_all_traits<'a, 'gcx, 'tcx>(tcx: TyCtxt<'a, 'gcx, 'tcx>) -> Vec<DefId>
 pub fn provide(providers: &mut ty::query::Providers<'_>) {
     providers.all_traits = |tcx, cnum| {
         assert_eq!(cnum, LOCAL_CRATE);
-        Lrc::new(compute_all_traits(tcx))
+        &tcx.arena.alloc(compute_all_traits(tcx))[..]
     }
 }