diff options
author | Marco Groppo <[email protected]> | 2019-04-14 23:03:54 +0100 |
---|---|---|
committer | Marco Groppo <[email protected]> | 2019-04-19 23:10:19 +0100 |
commit | e85ee60c42db57368e24ad9ac24840c2494d383c (patch) | |
tree | a94bb45556b404452e2ef282e6d11887f93601ca /crates/ra_ide_api/src | |
parent | d55f1136d6444b1f50b9092c36a976d0e1c26202 (diff) |
Initial support for lang items.
Diffstat (limited to 'crates/ra_ide_api/src')
-rw-r--r-- | crates/ra_ide_api/src/completion/complete_path.rs | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/crates/ra_ide_api/src/completion/complete_path.rs b/crates/ra_ide_api/src/completion/complete_path.rs index bc03a7095..c49147b9e 100644 --- a/crates/ra_ide_api/src/completion/complete_path.rs +++ b/crates/ra_ide_api/src/completion/complete_path.rs | |||
@@ -38,18 +38,21 @@ pub(super) fn complete_path(acc: &mut Completions, ctx: &CompletionContext) { | |||
38 | } | 38 | } |
39 | hir::ModuleDef::Struct(s) => { | 39 | hir::ModuleDef::Struct(s) => { |
40 | let ty = s.ty(ctx.db); | 40 | let ty = s.ty(ctx.db); |
41 | ty.iterate_impl_items(ctx.db, |item| { | 41 | let krate = ctx.module.and_then(|m| m.krate(ctx.db)); |
42 | match item { | 42 | krate.map_or((), |krate| { |
43 | hir::ImplItem::Method(func) => { | 43 | ty.iterate_impl_items(ctx.db, krate, |item| { |
44 | let sig = func.signature(ctx.db); | 44 | match item { |
45 | if !sig.has_self_param() { | 45 | hir::ImplItem::Method(func) => { |
46 | acc.add_function(ctx, func); | 46 | let sig = func.signature(ctx.db); |
47 | if !sig.has_self_param() { | ||
48 | acc.add_function(ctx, func); | ||
49 | } | ||
47 | } | 50 | } |
51 | hir::ImplItem::Const(ct) => acc.add_const(ctx, ct), | ||
52 | hir::ImplItem::TypeAlias(ty) => acc.add_type_alias(ctx, ty), | ||
48 | } | 53 | } |
49 | hir::ImplItem::Const(ct) => acc.add_const(ctx, ct), | 54 | None::<()> |
50 | hir::ImplItem::TypeAlias(ty) => acc.add_type_alias(ctx, ty), | 55 | }); |
51 | } | ||
52 | None::<()> | ||
53 | }); | 56 | }); |
54 | } | 57 | } |
55 | _ => return, | 58 | _ => return, |