@@ -19,6 +19,7 @@ use rustc_hash::FxHashSet;
1919
2020use crate :: { RelativePath , RelativePathBuf } ;
2121use fmt:: Display ;
22+ use ra_proc_macro:: ProcMacro ;
2223
2324/// `FileId` is an integer which uniquely identifies a file. File paths are
2425/// messy and system-dependent, so most of the code should work directly with
@@ -115,6 +116,9 @@ impl Display for CrateName {
115116 }
116117}
117118
119+ #[ derive( Debug , Copy , Clone , PartialEq , Eq , Hash ) ]
120+ pub struct ProcMacroId ( pub usize ) ;
121+
118122#[ derive( Debug , Clone , PartialEq , Eq ) ]
119123pub struct CrateData {
120124 pub root_file_id : FileId ,
@@ -127,6 +131,7 @@ pub struct CrateData {
127131 pub env : Env ,
128132 pub extern_source : ExternSource ,
129133 pub dependencies : Vec < Dependency > ,
134+ pub proc_macro : Vec < ProcMacro > ,
130135}
131136
132137#[ derive( Debug , Clone , Copy , PartialEq , Eq , Hash ) ]
@@ -166,6 +171,7 @@ impl CrateGraph {
166171 cfg_options : CfgOptions ,
167172 env : Env ,
168173 extern_source : ExternSource ,
174+ proc_macro : Vec < ProcMacro > ,
169175 ) -> CrateId {
170176 let data = CrateData {
171177 root_file_id : file_id,
@@ -174,6 +180,7 @@ impl CrateGraph {
174180 cfg_options,
175181 env,
176182 extern_source,
183+ proc_macro,
177184 dependencies : Vec :: new ( ) ,
178185 } ;
179186 let crate_id = CrateId ( self . arena . len ( ) as u32 ) ;
@@ -345,6 +352,7 @@ mod tests {
345352 CfgOptions :: default ( ) ,
346353 Env :: default ( ) ,
347354 Default :: default ( ) ,
355+ Default :: default ( ) ,
348356 ) ;
349357 let crate2 = graph. add_crate_root (
350358 FileId ( 2u32 ) ,
@@ -353,6 +361,7 @@ mod tests {
353361 CfgOptions :: default ( ) ,
354362 Env :: default ( ) ,
355363 Default :: default ( ) ,
364+ Default :: default ( ) ,
356365 ) ;
357366 let crate3 = graph. add_crate_root (
358367 FileId ( 3u32 ) ,
@@ -361,6 +370,7 @@ mod tests {
361370 CfgOptions :: default ( ) ,
362371 Env :: default ( ) ,
363372 Default :: default ( ) ,
373+ Default :: default ( ) ,
364374 ) ;
365375 assert ! ( graph. add_dep( crate1, CrateName :: new( "crate2" ) . unwrap( ) , crate2) . is_ok( ) ) ;
366376 assert ! ( graph. add_dep( crate2, CrateName :: new( "crate3" ) . unwrap( ) , crate3) . is_ok( ) ) ;
@@ -377,6 +387,7 @@ mod tests {
377387 CfgOptions :: default ( ) ,
378388 Env :: default ( ) ,
379389 Default :: default ( ) ,
390+ Default :: default ( ) ,
380391 ) ;
381392 let crate2 = graph. add_crate_root (
382393 FileId ( 2u32 ) ,
@@ -385,6 +396,7 @@ mod tests {
385396 CfgOptions :: default ( ) ,
386397 Env :: default ( ) ,
387398 Default :: default ( ) ,
399+ Default :: default ( ) ,
388400 ) ;
389401 let crate3 = graph. add_crate_root (
390402 FileId ( 3u32 ) ,
@@ -393,6 +405,7 @@ mod tests {
393405 CfgOptions :: default ( ) ,
394406 Env :: default ( ) ,
395407 Default :: default ( ) ,
408+ Default :: default ( ) ,
396409 ) ;
397410 assert ! ( graph. add_dep( crate1, CrateName :: new( "crate2" ) . unwrap( ) , crate2) . is_ok( ) ) ;
398411 assert ! ( graph. add_dep( crate2, CrateName :: new( "crate3" ) . unwrap( ) , crate3) . is_ok( ) ) ;
@@ -408,6 +421,7 @@ mod tests {
408421 CfgOptions :: default ( ) ,
409422 Env :: default ( ) ,
410423 Default :: default ( ) ,
424+ Default :: default ( ) ,
411425 ) ;
412426 let crate2 = graph. add_crate_root (
413427 FileId ( 2u32 ) ,
@@ -416,6 +430,7 @@ mod tests {
416430 CfgOptions :: default ( ) ,
417431 Env :: default ( ) ,
418432 Default :: default ( ) ,
433+ Default :: default ( ) ,
419434 ) ;
420435 assert ! ( graph
421436 . add_dep( crate1, CrateName :: normalize_dashes( "crate-name-with-dashes" ) , crate2)
0 commit comments