Skip to content

Commit 699ce06

Browse files
committed
Complete extern prelude (again)
1 parent ccef48b commit 699ce06

File tree

4 files changed

+41
-2
lines changed

4 files changed

+41
-2
lines changed

crates/ra_hir/src/nameres.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ use crate::{
3434
/// module, the set of visible items.
3535
#[derive(Default, Debug, PartialEq, Eq)]
3636
pub struct ItemMap {
37-
extern_prelude: FxHashMap<Name, ModuleDef>,
37+
pub(crate) extern_prelude: FxHashMap<Name, ModuleDef>,
3838
per_module: ArenaMap<ModuleId, ModuleScope>,
3939
}
4040

crates/ra_hir/src/resolve.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,10 @@ impl Scope {
197197
.entries()
198198
.for_each(|(name, res)| {
199199
f(name.clone(), res.def.map(Resolution::Def));
200-
})
200+
});
201+
m.item_map.extern_prelude.iter().for_each(|(name, def)| {
202+
f(name.clone(), PerNs::types(Resolution::Def(*def)));
203+
});
201204
}
202205
Scope::GenericParams(gp) => {
203206
for param in &gp.params {

crates/ra_ide_api/src/completion/complete_scope.rs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,20 @@ mod tests {
110110
);
111111
}
112112

113+
#[test]
114+
fn completes_extern_prelude() {
115+
check_reference_completion(
116+
"extern_prelude",
117+
r"
118+
//- /lib.rs
119+
use <|>;
120+
121+
//- /other_crate/lib.rs
122+
// nothing here
123+
",
124+
);
125+
}
126+
113127
#[test]
114128
fn completes_module_items_in_nested_modules() {
115129
check_reference_completion(
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
---
2+
created: "2019-02-04T21:08:32.615556587+00:00"
3+
creator: insta@0.5.3
4+
expression: kind_completions
5+
source: crates/ra_ide_api/src/completion/completion_item.rs
6+
---
7+
[
8+
CompletionItem {
9+
completion_kind: Reference,
10+
label: "other_crate",
11+
kind: Some(
12+
Module
13+
),
14+
detail: None,
15+
documentation: None,
16+
lookup: None,
17+
insert_text: None,
18+
insert_text_format: PlainText,
19+
source_range: [4; 4),
20+
text_edit: None
21+
}
22+
]

0 commit comments

Comments
 (0)