@@ -114,9 +114,8 @@ struct CrateData {
114
114
}
115
115
116
116
impl CrateData {
117
- fn new ( file_id : FileId , edition : Edition ) -> CrateData {
118
- // FIXME: cfg options
119
- CrateData { file_id, edition, dependencies : Vec :: new ( ) , cfg_options : CfgOptions :: default ( ) }
117
+ fn new ( file_id : FileId , edition : Edition , cfg_options : CfgOptions ) -> CrateData {
118
+ CrateData { file_id, edition, dependencies : Vec :: new ( ) , cfg_options }
120
119
}
121
120
122
121
fn add_dep ( & mut self , name : SmolStr , crate_id : CrateId ) {
@@ -137,9 +136,14 @@ impl Dependency {
137
136
}
138
137
139
138
impl CrateGraph {
140
- pub fn add_crate_root ( & mut self , file_id : FileId , edition : Edition ) -> CrateId {
139
+ pub fn add_crate_root (
140
+ & mut self ,
141
+ file_id : FileId ,
142
+ edition : Edition ,
143
+ cfg_options : CfgOptions ,
144
+ ) -> CrateId {
141
145
let crate_id = CrateId ( self . arena . len ( ) as u32 ) ;
142
- let prev = self . arena . insert ( crate_id, CrateData :: new ( file_id, edition) ) ;
146
+ let prev = self . arena . insert ( crate_id, CrateData :: new ( file_id, edition, cfg_options ) ) ;
143
147
assert ! ( prev. is_none( ) ) ;
144
148
crate_id
145
149
}
@@ -228,14 +232,14 @@ impl CrateGraph {
228
232
229
233
#[ cfg( test) ]
230
234
mod tests {
231
- use super :: { CrateGraph , Edition :: Edition2018 , FileId , SmolStr } ;
235
+ use super :: { CfgOptions , CrateGraph , Edition :: Edition2018 , FileId , SmolStr } ;
232
236
233
237
#[ test]
234
238
fn it_should_panic_because_of_cycle_dependencies ( ) {
235
239
let mut graph = CrateGraph :: default ( ) ;
236
- let crate1 = graph. add_crate_root ( FileId ( 1u32 ) , Edition2018 ) ;
237
- let crate2 = graph. add_crate_root ( FileId ( 2u32 ) , Edition2018 ) ;
238
- let crate3 = graph. add_crate_root ( FileId ( 3u32 ) , Edition2018 ) ;
240
+ let crate1 = graph. add_crate_root ( FileId ( 1u32 ) , Edition2018 , CfgOptions :: default ( ) ) ;
241
+ let crate2 = graph. add_crate_root ( FileId ( 2u32 ) , Edition2018 , CfgOptions :: default ( ) ) ;
242
+ let crate3 = graph. add_crate_root ( FileId ( 3u32 ) , Edition2018 , CfgOptions :: default ( ) ) ;
239
243
assert ! ( graph. add_dep( crate1, SmolStr :: new( "crate2" ) , crate2) . is_ok( ) ) ;
240
244
assert ! ( graph. add_dep( crate2, SmolStr :: new( "crate3" ) , crate3) . is_ok( ) ) ;
241
245
assert ! ( graph. add_dep( crate3, SmolStr :: new( "crate1" ) , crate1) . is_err( ) ) ;
@@ -244,9 +248,9 @@ mod tests {
244
248
#[ test]
245
249
fn it_works ( ) {
246
250
let mut graph = CrateGraph :: default ( ) ;
247
- let crate1 = graph. add_crate_root ( FileId ( 1u32 ) , Edition2018 ) ;
248
- let crate2 = graph. add_crate_root ( FileId ( 2u32 ) , Edition2018 ) ;
249
- let crate3 = graph. add_crate_root ( FileId ( 3u32 ) , Edition2018 ) ;
251
+ let crate1 = graph. add_crate_root ( FileId ( 1u32 ) , Edition2018 , CfgOptions :: default ( ) ) ;
252
+ let crate2 = graph. add_crate_root ( FileId ( 2u32 ) , Edition2018 , CfgOptions :: default ( ) ) ;
253
+ let crate3 = graph. add_crate_root ( FileId ( 3u32 ) , Edition2018 , CfgOptions :: default ( ) ) ;
250
254
assert ! ( graph. add_dep( crate1, SmolStr :: new( "crate2" ) , crate2) . is_ok( ) ) ;
251
255
assert ! ( graph. add_dep( crate2, SmolStr :: new( "crate3" ) , crate3) . is_ok( ) ) ;
252
256
}
0 commit comments