diff options
author | bors[bot] <bors[bot]@users.noreply.github.com> | 2019-03-17 09:59:04 +0000 |
---|---|---|
committer | bors[bot] <bors[bot]@users.noreply.github.com> | 2019-03-17 09:59:04 +0000 |
commit | 7d3f48cdaf20d718e711f999573adf3303e9396a (patch) | |
tree | df584fbb044cad23e196da5ae0b3636b06bfeeff /crates/ra_db/src/input.rs | |
parent | 65e763fa84ae70ec9cee13f434acaae5371ad8e5 (diff) | |
parent | 3a770233652cbf3e48688dd5f1d9f3c363eda5a8 (diff) |
Merge #968
968: Macro aware name resoltion r=matklad a=matklad
The first commit lays the ground work for new name resolution, including
* extracting position-indendent items from parse trees
* walking the tree of modules
* old-style macro_rules resolve
cc @pnkfelix: this looks like an API name resolution should interact with.
Co-authored-by: Aleksey Kladov <[email protected]>
Diffstat (limited to 'crates/ra_db/src/input.rs')
-rw-r--r-- | crates/ra_db/src/input.rs | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/crates/ra_db/src/input.rs b/crates/ra_db/src/input.rs index e45a510b3..2b1001d48 100644 --- a/crates/ra_db/src/input.rs +++ b/crates/ra_db/src/input.rs | |||
@@ -124,6 +124,10 @@ impl CrateGraph { | |||
124 | self.arena.is_empty() | 124 | self.arena.is_empty() |
125 | } | 125 | } |
126 | 126 | ||
127 | pub fn iter<'a>(&'a self) -> impl Iterator<Item = CrateId> + 'a { | ||
128 | self.arena.keys().map(|it| *it) | ||
129 | } | ||
130 | |||
127 | pub fn crate_root(&self, crate_id: CrateId) -> FileId { | 131 | pub fn crate_root(&self, crate_id: CrateId) -> FileId { |
128 | self.arena[&crate_id].file_id | 132 | self.arena[&crate_id].file_id |
129 | } | 133 | } |