@@ -71,9 +71,9 @@ impl DefPathTable {
7171}
7272
7373/// The definition table containing node definitions.
74- /// It holds the `DefPathTable` for local `DefId `s/`DefPath`s and it also stores a
75- /// mapping from `NodeId `s to local `DefId `s.
76- #[ derive( Clone , Default ) ]
74+ /// It holds the `DefPathTable` for `LocalDefId `s/`DefPath`s.
75+ /// It also stores mappings to convert `LocalDefId `s to/from `HirId `s.
76+ #[ derive( Clone ) ]
7777pub struct Definitions {
7878 table : DefPathTable ,
7979
@@ -328,11 +328,7 @@ impl Definitions {
328328 }
329329
330330 /// Adds a root definition (no parent) and a few other reserved definitions.
331- pub fn create_root_def (
332- & mut self ,
333- crate_name : & str ,
334- crate_disambiguator : CrateDisambiguator ,
335- ) -> LocalDefId {
331+ pub fn new ( crate_name : & str , crate_disambiguator : CrateDisambiguator ) -> Definitions {
336332 let key = DefKey {
337333 parent : None ,
338334 disambiguated_data : DisambiguatedDefPathData {
@@ -344,24 +340,34 @@ impl Definitions {
344340 let parent_hash = DefKey :: root_parent_stable_hash ( crate_name, crate_disambiguator) ;
345341 let def_path_hash = key. compute_stable_hash ( parent_hash) ;
346342
347- // Create the definition.
348- let root = LocalDefId { local_def_index : self . table . allocate ( key, def_path_hash) } ;
343+ // Create the root definition.
344+ let mut table = DefPathTable :: default ( ) ;
345+ let root = LocalDefId { local_def_index : table. allocate ( key, def_path_hash) } ;
349346 assert_eq ! ( root. local_def_index, CRATE_DEF_INDEX ) ;
350347
351- root
348+ Definitions {
349+ table,
350+ def_id_to_hir_id : Default :: default ( ) ,
351+ hir_id_to_def_id : Default :: default ( ) ,
352+ expansions_that_defined : Default :: default ( ) ,
353+ next_disambiguator : Default :: default ( ) ,
354+ parent_modules_of_macro_defs : Default :: default ( ) ,
355+ }
356+ }
357+
358+ /// Retrieves the root definition.
359+ pub fn get_root_def ( & self ) -> LocalDefId {
360+ LocalDefId { local_def_index : CRATE_DEF_INDEX }
352361 }
353362
354363 /// Adds a definition with a parent definition.
355- pub fn create_def_with_parent (
364+ pub fn create_def (
356365 & mut self ,
357366 parent : LocalDefId ,
358367 data : DefPathData ,
359368 expn_id : ExpnId ,
360369 ) -> LocalDefId {
361- debug ! (
362- "create_def_with_parent(parent={:?}, data={:?}, expn_id={:?})" ,
363- parent, data, expn_id
364- ) ;
370+ debug ! ( "create_def(parent={:?}, data={:?}, expn_id={:?})" , parent, data, expn_id) ;
365371
366372 // The root node must be created with `create_root_def()`.
367373 assert ! ( data != DefPathData :: CrateRoot ) ;
@@ -382,7 +388,7 @@ impl Definitions {
382388 let parent_hash = self . table . def_path_hash ( parent. local_def_index ) ;
383389 let def_path_hash = key. compute_stable_hash ( parent_hash) ;
384390
385- debug ! ( "create_def_with_parent : after disambiguation, key = {:?}" , key) ;
391+ debug ! ( "create_def : after disambiguation, key = {:?}" , key) ;
386392
387393 // Create the definition.
388394 let def_id = LocalDefId { local_def_index : self . table . allocate ( key, def_path_hash) } ;
0 commit comments