aboutsummaryrefslogtreecommitdiff
path: root/crates/base_db/src
diff options
context:
space:
mode:
Diffstat (limited to 'crates/base_db/src')
-rw-r--r--crates/base_db/src/fixture.rs2
-rw-r--r--crates/base_db/src/input.rs13
2 files changed, 15 insertions, 0 deletions
diff --git a/crates/base_db/src/fixture.rs b/crates/base_db/src/fixture.rs
index 6ce377710..6d3b1266e 100644
--- a/crates/base_db/src/fixture.rs
+++ b/crates/base_db/src/fixture.rs
@@ -131,6 +131,7 @@ impl ChangeFixture {
131 meta.cfg, 131 meta.cfg,
132 meta.env, 132 meta.env,
133 Default::default(), 133 Default::default(),
134 Default::default(),
134 ); 135 );
135 let prev = crates.insert(crate_name.clone(), crate_id); 136 let prev = crates.insert(crate_name.clone(), crate_id);
136 assert!(prev.is_none()); 137 assert!(prev.is_none());
@@ -160,6 +161,7 @@ impl ChangeFixture {
160 default_cfg, 161 default_cfg,
161 Env::default(), 162 Env::default(),
162 Default::default(), 163 Default::default(),
164 Default::default(),
163 ); 165 );
164 } else { 166 } else {
165 for (from, to) in crate_deps { 167 for (from, to) in crate_deps {
diff --git a/crates/base_db/src/input.rs b/crates/base_db/src/input.rs
index 23cb0c839..d99388f71 100644
--- a/crates/base_db/src/input.rs
+++ b/crates/base_db/src/input.rs
@@ -192,6 +192,7 @@ pub struct CrateData {
192 pub env: Env, 192 pub env: Env,
193 pub dependencies: Vec<Dependency>, 193 pub dependencies: Vec<Dependency>,
194 pub proc_macro: Vec<ProcMacro>, 194 pub proc_macro: Vec<ProcMacro>,
195 pub features: FxHashMap<String, Vec<String>>,
195} 196}
196 197
197#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] 198#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
@@ -221,6 +222,7 @@ impl CrateGraph {
221 cfg_options: CfgOptions, 222 cfg_options: CfgOptions,
222 env: Env, 223 env: Env,
223 proc_macro: Vec<ProcMacro>, 224 proc_macro: Vec<ProcMacro>,
225 features: FxHashMap<String, Vec<String>>,
224 ) -> CrateId { 226 ) -> CrateId {
225 let data = CrateData { 227 let data = CrateData {
226 root_file_id: file_id, 228 root_file_id: file_id,
@@ -230,6 +232,7 @@ impl CrateGraph {
230 env, 232 env,
231 proc_macro, 233 proc_macro,
232 dependencies: Vec::new(), 234 dependencies: Vec::new(),
235 features,
233 }; 236 };
234 let crate_id = CrateId(self.arena.len() as u32); 237 let crate_id = CrateId(self.arena.len() as u32);
235 let prev = self.arena.insert(crate_id, data); 238 let prev = self.arena.insert(crate_id, data);
@@ -506,6 +509,7 @@ mod tests {
506 CfgOptions::default(), 509 CfgOptions::default(),
507 Env::default(), 510 Env::default(),
508 Default::default(), 511 Default::default(),
512 Default::default(),
509 ); 513 );
510 let crate2 = graph.add_crate_root( 514 let crate2 = graph.add_crate_root(
511 FileId(2u32), 515 FileId(2u32),
@@ -514,6 +518,7 @@ mod tests {
514 CfgOptions::default(), 518 CfgOptions::default(),
515 Env::default(), 519 Env::default(),
516 Default::default(), 520 Default::default(),
521 Default::default(),
517 ); 522 );
518 let crate3 = graph.add_crate_root( 523 let crate3 = graph.add_crate_root(
519 FileId(3u32), 524 FileId(3u32),
@@ -522,6 +527,7 @@ mod tests {
522 CfgOptions::default(), 527 CfgOptions::default(),
523 Env::default(), 528 Env::default(),
524 Default::default(), 529 Default::default(),
530 Default::default(),
525 ); 531 );
526 assert!(graph.add_dep(crate1, CrateName::new("crate2").unwrap(), crate2).is_ok()); 532 assert!(graph.add_dep(crate1, CrateName::new("crate2").unwrap(), crate2).is_ok());
527 assert!(graph.add_dep(crate2, CrateName::new("crate3").unwrap(), crate3).is_ok()); 533 assert!(graph.add_dep(crate2, CrateName::new("crate3").unwrap(), crate3).is_ok());
@@ -538,6 +544,7 @@ mod tests {
538 CfgOptions::default(), 544 CfgOptions::default(),
539 Env::default(), 545 Env::default(),
540 Default::default(), 546 Default::default(),
547 Default::default(),
541 ); 548 );
542 let crate2 = graph.add_crate_root( 549 let crate2 = graph.add_crate_root(
543 FileId(2u32), 550 FileId(2u32),
@@ -546,6 +553,7 @@ mod tests {
546 CfgOptions::default(), 553 CfgOptions::default(),
547 Env::default(), 554 Env::default(),
548 Default::default(), 555 Default::default(),
556 Default::default(),
549 ); 557 );
550 assert!(graph.add_dep(crate1, CrateName::new("crate2").unwrap(), crate2).is_ok()); 558 assert!(graph.add_dep(crate1, CrateName::new("crate2").unwrap(), crate2).is_ok());
551 assert!(graph.add_dep(crate2, CrateName::new("crate2").unwrap(), crate2).is_err()); 559 assert!(graph.add_dep(crate2, CrateName::new("crate2").unwrap(), crate2).is_err());
@@ -561,6 +569,7 @@ mod tests {
561 CfgOptions::default(), 569 CfgOptions::default(),
562 Env::default(), 570 Env::default(),
563 Default::default(), 571 Default::default(),
572 Default::default(),
564 ); 573 );
565 let crate2 = graph.add_crate_root( 574 let crate2 = graph.add_crate_root(
566 FileId(2u32), 575 FileId(2u32),
@@ -569,6 +578,7 @@ mod tests {
569 CfgOptions::default(), 578 CfgOptions::default(),
570 Env::default(), 579 Env::default(),
571 Default::default(), 580 Default::default(),
581 Default::default(),
572 ); 582 );
573 let crate3 = graph.add_crate_root( 583 let crate3 = graph.add_crate_root(
574 FileId(3u32), 584 FileId(3u32),
@@ -577,6 +587,7 @@ mod tests {
577 CfgOptions::default(), 587 CfgOptions::default(),
578 Env::default(), 588 Env::default(),
579 Default::default(), 589 Default::default(),
590 Default::default(),
580 ); 591 );
581 assert!(graph.add_dep(crate1, CrateName::new("crate2").unwrap(), crate2).is_ok()); 592 assert!(graph.add_dep(crate1, CrateName::new("crate2").unwrap(), crate2).is_ok());
582 assert!(graph.add_dep(crate2, CrateName::new("crate3").unwrap(), crate3).is_ok()); 593 assert!(graph.add_dep(crate2, CrateName::new("crate3").unwrap(), crate3).is_ok());
@@ -592,6 +603,7 @@ mod tests {
592 CfgOptions::default(), 603 CfgOptions::default(),
593 Env::default(), 604 Env::default(),
594 Default::default(), 605 Default::default(),
606 Default::default(),
595 ); 607 );
596 let crate2 = graph.add_crate_root( 608 let crate2 = graph.add_crate_root(
597 FileId(2u32), 609 FileId(2u32),
@@ -600,6 +612,7 @@ mod tests {
600 CfgOptions::default(), 612 CfgOptions::default(),
601 Env::default(), 613 Env::default(),
602 Default::default(), 614 Default::default(),
615 Default::default(),
603 ); 616 );
604 assert!(graph 617 assert!(graph
605 .add_dep(crate1, CrateName::normalize_dashes("crate-name-with-dashes"), crate2) 618 .add_dep(crate1, CrateName::normalize_dashes("crate-name-with-dashes"), crate2)