diff options
Diffstat (limited to 'crates/project_model/src/sysroot.rs')
-rw-r--r-- | crates/project_model/src/sysroot.rs | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/crates/project_model/src/sysroot.rs b/crates/project_model/src/sysroot.rs index 687e15337..74c0eda9a 100644 --- a/crates/project_model/src/sysroot.rs +++ b/crates/project_model/src/sysroot.rs | |||
@@ -34,16 +34,10 @@ impl ops::Index<SysrootCrate> for Sysroot { | |||
34 | } | 34 | } |
35 | 35 | ||
36 | impl Sysroot { | 36 | impl Sysroot { |
37 | pub fn core(&self) -> Option<SysrootCrate> { | 37 | pub fn public_deps(&self) -> impl Iterator<Item = (&'static str, SysrootCrate)> + '_ { |
38 | self.by_name("core") | 38 | // core is added as a dependency before std in order to |
39 | } | 39 | // mimic rustcs dependency order |
40 | 40 | vec!["core", "alloc", "std"].into_iter().filter_map(move |it| Some((it, self.by_name(it)?))) | |
41 | pub fn alloc(&self) -> Option<SysrootCrate> { | ||
42 | self.by_name("alloc") | ||
43 | } | ||
44 | |||
45 | pub fn std(&self) -> Option<SysrootCrate> { | ||
46 | self.by_name("std") | ||
47 | } | 41 | } |
48 | 42 | ||
49 | pub fn proc_macro(&self) -> Option<SysrootCrate> { | 43 | pub fn proc_macro(&self) -> Option<SysrootCrate> { |
@@ -81,7 +75,7 @@ impl Sysroot { | |||
81 | } | 75 | } |
82 | } | 76 | } |
83 | 77 | ||
84 | if let Some(std) = sysroot.std() { | 78 | if let Some(std) = sysroot.by_name("std") { |
85 | for dep in STD_DEPS.trim().lines() { | 79 | for dep in STD_DEPS.trim().lines() { |
86 | if let Some(dep) = sysroot.by_name(dep) { | 80 | if let Some(dep) = sysroot.by_name(dep) { |
87 | sysroot.crates[std].deps.push(dep) | 81 | sysroot.crates[std].deps.push(dep) |
@@ -89,8 +83,8 @@ impl Sysroot { | |||
89 | } | 83 | } |
90 | } | 84 | } |
91 | 85 | ||
92 | if let Some(alloc) = sysroot.alloc() { | 86 | if let Some(alloc) = sysroot.by_name("alloc") { |
93 | if let Some(core) = sysroot.core() { | 87 | if let Some(core) = sysroot.by_name("core") { |
94 | sysroot.crates[alloc].deps.push(core); | 88 | sysroot.crates[alloc].deps.push(core); |
95 | } | 89 | } |
96 | } | 90 | } |