Compute proc_macros in resolutions.
This commit is contained in:
@@ -1035,6 +1035,9 @@ pub struct Resolver<'a> {
|
||||
|
||||
main_def: Option<MainDefinition>,
|
||||
trait_impls: BTreeMap<DefId, Vec<LocalDefId>>,
|
||||
/// A list of proc macro LocalDefIds, written out in the order in which
|
||||
/// they are declared in the static array generated by proc_macro_harness.
|
||||
proc_macros: Vec<NodeId>,
|
||||
}
|
||||
|
||||
/// Nothing really interesting here; it just provides memory for the rest of the crate.
|
||||
@@ -1400,6 +1403,7 @@ impl<'a> Resolver<'a> {
|
||||
item_generics_num_lifetimes: Default::default(),
|
||||
main_def: Default::default(),
|
||||
trait_impls: Default::default(),
|
||||
proc_macros: Default::default(),
|
||||
};
|
||||
|
||||
let root_parent_scope = ParentScope::module(graph_root, &resolver);
|
||||
@@ -1434,6 +1438,7 @@ impl<'a> Resolver<'a> {
|
||||
}
|
||||
|
||||
pub fn into_outputs(self) -> ResolverOutputs {
|
||||
let proc_macros = self.proc_macros.iter().map(|id| self.local_def_id(*id)).collect();
|
||||
let definitions = self.definitions;
|
||||
let visibilities = self.visibilities;
|
||||
let extern_crate_map = self.extern_crate_map;
|
||||
@@ -1458,10 +1463,12 @@ impl<'a> Resolver<'a> {
|
||||
.collect(),
|
||||
main_def,
|
||||
trait_impls: self.trait_impls,
|
||||
proc_macros,
|
||||
}
|
||||
}
|
||||
|
||||
pub fn clone_outputs(&self) -> ResolverOutputs {
|
||||
let proc_macros = self.proc_macros.iter().map(|id| self.local_def_id(*id)).collect();
|
||||
ResolverOutputs {
|
||||
definitions: self.definitions.clone(),
|
||||
cstore: Box::new(self.cstore().clone()),
|
||||
@@ -1478,6 +1485,7 @@ impl<'a> Resolver<'a> {
|
||||
.collect(),
|
||||
main_def: self.main_def.clone(),
|
||||
trait_impls: self.trait_impls.clone(),
|
||||
proc_macros,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user