5280: Re-enable IDE features for incomplete impl blocs r=matklad a=matklad



bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
This commit is contained in:
bors[bot] 2020-07-09 10:15:20 +00:00 committed by GitHub
commit 7566d7da8a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 21 additions and 3 deletions

View File

@ -450,8 +450,9 @@ impl Ctx {
// We cannot use `assoc_items()` here as that does not include macro calls.
let items = impl_def
.item_list()?
.items()
.item_list()
.into_iter()
.flat_map(|it| it.items())
.filter_map(|item| {
self.collect_inner_items(item.syntax());
let assoc = self.lower_assoc_item(&item)?;

View File

@ -638,4 +638,21 @@ fn f() {}
expect![[""]],
)
}
#[test]
fn completes_type_or_trait_in_impl_block() {
check(
r#"
trait MyTrait {}
struct MyStruct {}
impl My<|>
"#,
expect![[r#"
st MyStruct
tt MyTrait
tp Self
"#]],
)
}
}

View File

@ -58,7 +58,7 @@ pub struct CompletionItem {
score: Option<CompletionScore>,
}
// We use custom debug for CompletionItem to make `insta`'s diffs more readable.
// We use custom debug for CompletionItem to make snapshot tests more readable.
impl fmt::Debug for CompletionItem {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
let mut s = f.debug_struct("CompletionItem");