Compute all_traits_impls during resolution.
This commit is contained in:
@@ -60,7 +60,7 @@ use rustc_span::{Span, DUMMY_SP};
|
||||
|
||||
use smallvec::{smallvec, SmallVec};
|
||||
use std::cell::{Cell, RefCell};
|
||||
use std::collections::BTreeSet;
|
||||
use std::collections::{BTreeMap, BTreeSet};
|
||||
use std::ops::ControlFlow;
|
||||
use std::{cmp, fmt, iter, ptr};
|
||||
use tracing::debug;
|
||||
@@ -1034,6 +1034,7 @@ pub struct Resolver<'a> {
|
||||
item_generics_num_lifetimes: FxHashMap<LocalDefId, usize>,
|
||||
|
||||
main_def: Option<MainDefinition>,
|
||||
trait_impls: BTreeMap<DefId, Vec<LocalDefId>>,
|
||||
}
|
||||
|
||||
/// Nothing really interesting here; it just provides memory for the rest of the crate.
|
||||
@@ -1398,6 +1399,7 @@ impl<'a> Resolver<'a> {
|
||||
legacy_const_generic_args: Default::default(),
|
||||
item_generics_num_lifetimes: Default::default(),
|
||||
main_def: Default::default(),
|
||||
trait_impls: Default::default(),
|
||||
};
|
||||
|
||||
let root_parent_scope = ParentScope::module(graph_root, &resolver);
|
||||
@@ -1455,6 +1457,7 @@ impl<'a> Resolver<'a> {
|
||||
.map(|(ident, entry)| (ident.name, entry.introduced_by_item))
|
||||
.collect(),
|
||||
main_def,
|
||||
trait_impls: self.trait_impls,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1474,6 +1477,7 @@ impl<'a> Resolver<'a> {
|
||||
.map(|(ident, entry)| (ident.name, entry.introduced_by_item))
|
||||
.collect(),
|
||||
main_def: self.main_def.clone(),
|
||||
trait_impls: self.trait_impls.clone(),
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user