}
}
- pub fn collect_root(&mut self) {
- let root = self.create_def_with_parent(None,
- CRATE_NODE_ID,
- DefPathData::CrateRoot,
- ITEM_LIKE_SPACE);
+ pub fn collect_root(&mut self, crate_name: &str, crate_disambiguator: &str) {
+ let root = self.definitions.create_root_def(crate_name,
+ crate_disambiguator);
assert_eq!(root, CRATE_DEF_INDEX);
self.parent_def = Some(root);
}
data: DefPathData,
address_space: DefIndexAddressSpace)
-> DefIndex {
- let parent_def = self.parent_def;
+ let parent_def = self.parent_def.unwrap();
debug!("create_def(node_id={:?}, data={:?}, parent_def={:?})", node_id, data, parent_def);
self.definitions.create_def_with_parent(parent_def, node_id, data, address_space)
}
- fn create_def_with_parent(&mut self,
- parent: Option<DefIndex>,
- node_id: NodeId,
- data: DefPathData,
- address_space: DefIndexAddressSpace)
- -> DefIndex {
- self.definitions.create_def_with_parent(parent, node_id, data, address_space)
- }
-
pub fn with_parent<F: FnOnce(&mut Self)>(&mut self, parent_def: DefIndex, f: F) {
let parent = self.parent_def;
self.parent_def = Some(parent_def);