Skip to content

Commit 4e8d4bd

Browse files
committed
Use () for all_traits.
1 parent 7f25b9f commit 4e8d4bd

File tree

6 files changed

+13
-17
lines changed

6 files changed

+13
-17
lines changed

compiler/rustc_middle/src/query/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1420,7 +1420,7 @@ rustc_queries! {
14201420
/// A vector of every trait accessible in the whole crate
14211421
/// (i.e., including those from subcrates). This is used only for
14221422
/// error reporting.
1423-
query all_traits(_: CrateNum) -> &'tcx [DefId] {
1423+
query all_traits(_: ()) -> &'tcx [DefId] {
14241424
desc { "fetching all foreign and local traits" }
14251425
}
14261426

compiler/rustc_trait_selection/src/traits/error_reporting/mod.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ use crate::infer::{self, InferCtxt, TyCtxtInferExt};
1414
use rustc_data_structures::fx::FxHashMap;
1515
use rustc_errors::{pluralize, struct_span_err, Applicability, DiagnosticBuilder, ErrorReported};
1616
use rustc_hir as hir;
17-
use rustc_hir::def_id::{DefId, LOCAL_CRATE};
17+
use rustc_hir::def_id::DefId;
1818
use rustc_hir::intravisit::Visitor;
1919
use rustc_hir::Node;
2020
use rustc_middle::mir::abstract_const::NotConstEvaluatable;
@@ -1427,7 +1427,7 @@ impl<'a, 'tcx> InferCtxtPrivExt<'tcx> for InferCtxt<'a, 'tcx> {
14271427
self.tcx.find_map_relevant_impl(trait_def_id, trait_ref.skip_binder().self_ty(), Some)
14281428
};
14291429
let required_trait_path = self.tcx.def_path_str(trait_ref.def_id());
1430-
let all_traits = self.tcx.all_traits(LOCAL_CRATE);
1430+
let all_traits = self.tcx.all_traits(());
14311431
let traits_with_same_path: std::collections::BTreeSet<_> = all_traits
14321432
.iter()
14331433
.filter(|trait_def_id| **trait_def_id != trait_ref.def_id())

compiler/rustc_typeck/src/check/method/suggest.rs

+5-8
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use rustc_data_structures::fx::{FxHashMap, FxHashSet};
66
use rustc_errors::{pluralize, struct_span_err, Applicability, DiagnosticBuilder};
77
use rustc_hir as hir;
88
use rustc_hir::def::{DefKind, Namespace, Res};
9-
use rustc_hir::def_id::{DefId, CRATE_DEF_INDEX, LOCAL_CRATE};
9+
use rustc_hir::def_id::{DefId, CRATE_DEF_INDEX};
1010
use rustc_hir::intravisit;
1111
use rustc_hir::lang_items::LangItem;
1212
use rustc_hir::{ExprKind, Node, QPath};
@@ -1440,11 +1440,11 @@ impl Ord for TraitInfo {
14401440

14411441
/// Retrieves all traits in this crate and any dependent crates.
14421442
pub fn all_traits(tcx: TyCtxt<'_>) -> Vec<TraitInfo> {
1443-
tcx.all_traits(LOCAL_CRATE).iter().map(|&def_id| TraitInfo { def_id }).collect()
1443+
tcx.all_traits(()).iter().map(|&def_id| TraitInfo { def_id }).collect()
14441444
}
14451445

14461446
/// Computes all traits in this crate and any dependent crates.
1447-
fn compute_all_traits(tcx: TyCtxt<'_>) -> Vec<DefId> {
1447+
fn compute_all_traits(tcx: TyCtxt<'_>, (): ()) -> &[DefId] {
14481448
use hir::itemlikevisit;
14491449

14501450
let mut traits = vec![];
@@ -1503,14 +1503,11 @@ fn compute_all_traits(tcx: TyCtxt<'_>) -> Vec<DefId> {
15031503
handle_external_res(tcx, &mut traits, &mut external_mods, Res::Def(DefKind::Mod, def_id));
15041504
}
15051505

1506-
traits
1506+
tcx.arena.alloc_from_iter(traits)
15071507
}
15081508

15091509
pub fn provide(providers: &mut ty::query::Providers) {
1510-
providers.all_traits = |tcx, cnum| {
1511-
assert_eq!(cnum, LOCAL_CRATE);
1512-
&tcx.arena.alloc(compute_all_traits(tcx))[..]
1513-
}
1510+
providers.all_traits = compute_all_traits;
15141511
}
15151512

15161513
struct UsePlacementFinder<'tcx> {

src/librustdoc/clean/blanket_impl.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
use crate::rustc_trait_selection::traits::query::evaluate_obligation::InferCtxtExt;
22
use rustc_hir as hir;
3-
use rustc_hir::def_id::LOCAL_CRATE;
43
use rustc_infer::infer::{InferOk, TyCtxtInferExt};
54
use rustc_infer::traits;
65
use rustc_middle::ty::subst::Subst;
@@ -20,7 +19,7 @@ impl<'a, 'tcx> BlanketImplFinder<'a, 'tcx> {
2019

2120
debug!("get_blanket_impls({:?})", ty);
2221
let mut impls = Vec::new();
23-
for &trait_def_id in self.cx.tcx.all_traits(LOCAL_CRATE).iter() {
22+
for &trait_def_id in self.cx.tcx.all_traits(()).iter() {
2423
if !self.cx.cache.access_levels.is_public(trait_def_id)
2524
|| self.cx.generated_synthetics.get(&(ty, trait_def_id)).is_some()
2625
{

src/librustdoc/core.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use rustc_errors::emitter::{Emitter, EmitterWriter};
66
use rustc_errors::json::JsonEmitter;
77
use rustc_feature::UnstableFeatures;
88
use rustc_hir::def::Res;
9-
use rustc_hir::def_id::{DefId, LocalDefId, LOCAL_CRATE};
9+
use rustc_hir::def_id::{DefId, LocalDefId};
1010
use rustc_hir::HirId;
1111
use rustc_hir::{
1212
intravisit::{self, NestedVisitorMap, Visitor},
@@ -371,7 +371,7 @@ crate fn run_global_ctxt(
371371
impl_trait_bounds: Default::default(),
372372
generated_synthetics: Default::default(),
373373
auto_traits: tcx
374-
.all_traits(LOCAL_CRATE)
374+
.all_traits(())
375375
.iter()
376376
.cloned()
377377
.filter(|trait_def_id| tcx.trait_is_auto(*trait_def_id))

src/librustdoc/passes/collect_trait_impls.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use crate::core::DocContext;
44
use crate::fold::DocFolder;
55

66
use rustc_data_structures::fx::{FxHashMap, FxHashSet};
7-
use rustc_hir::def_id::{DefId, LOCAL_CRATE};
7+
use rustc_hir::def_id::DefId;
88
use rustc_middle::ty::DefIdTree;
99
use rustc_span::symbol::sym;
1010

@@ -56,7 +56,7 @@ crate fn collect_trait_impls(krate: Crate, cx: &mut DocContext<'_>) -> Crate {
5656
// `tcx.crates()` doesn't include the local crate, and `tcx.all_trait_implementations`
5757
// doesn't work with it anyway, so pull them from the HIR map instead
5858
let mut extra_attrs = Vec::new();
59-
for &trait_did in cx.tcx.all_traits(LOCAL_CRATE).iter() {
59+
for &trait_did in cx.tcx.all_traits(()).iter() {
6060
for &impl_did in cx.tcx.hir().trait_impls(trait_did) {
6161
let impl_did = impl_did.to_def_id();
6262
cx.tcx.sess.prof.generic_activity("build_local_trait_impl").run(|| {

0 commit comments

Comments
 (0)