diff options
author | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2021-05-28 01:43:16 +0100 |
---|---|---|
committer | GitHub <[email protected]> | 2021-05-28 01:43:16 +0100 |
commit | 3a1598c3bcbf089239c2fdff698b9c02670362b3 (patch) | |
tree | 81eed23ea0f4c54e842a6128efd25b1c51d3304b /crates/ide_completion/src/patterns.rs | |
parent | 5b4589f4747f242c038f19f5f2b51b2e03f93252 (diff) | |
parent | 9e71dd9799879fc9070f8717f8711fba5dae490a (diff) |
Merge #9032
9032: Only complete modules in empty use-statements r=Veykril a=Veykril
bors r+
Part of #8518
Co-authored-by: Lukas Wirth <[email protected]>
Diffstat (limited to 'crates/ide_completion/src/patterns.rs')
-rw-r--r-- | crates/ide_completion/src/patterns.rs | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/crates/ide_completion/src/patterns.rs b/crates/ide_completion/src/patterns.rs index 19e42ba43..7bae7d12c 100644 --- a/crates/ide_completion/src/patterns.rs +++ b/crates/ide_completion/src/patterns.rs | |||
@@ -14,6 +14,7 @@ use crate::test_utils::{check_pattern_is_applicable, check_pattern_is_not_applic | |||
14 | /// Direct parent container of the cursor position | 14 | /// Direct parent container of the cursor position |
15 | #[derive(Copy, Clone, Debug, PartialEq, Eq)] | 15 | #[derive(Copy, Clone, Debug, PartialEq, Eq)] |
16 | pub(crate) enum ImmediateLocation { | 16 | pub(crate) enum ImmediateLocation { |
17 | Use, | ||
17 | Impl, | 18 | Impl, |
18 | Trait, | 19 | Trait, |
19 | RecordField, | 20 | RecordField, |
@@ -58,6 +59,7 @@ pub(crate) fn determine_location(tok: SyntaxToken) -> Option<ImmediateLocation> | |||
58 | let res = match_ast! { | 59 | let res = match_ast! { |
59 | match parent { | 60 | match parent { |
60 | ast::IdentPat(_it) => ImmediateLocation::IdentPat, | 61 | ast::IdentPat(_it) => ImmediateLocation::IdentPat, |
62 | ast::Use(_it) => ImmediateLocation::Use, | ||
61 | ast::BlockExpr(_it) => ImmediateLocation::BlockExpr, | 63 | ast::BlockExpr(_it) => ImmediateLocation::BlockExpr, |
62 | ast::SourceFile(_it) => ImmediateLocation::ItemList, | 64 | ast::SourceFile(_it) => ImmediateLocation::ItemList, |
63 | ast::ItemList(_it) => ImmediateLocation::ItemList, | 65 | ast::ItemList(_it) => ImmediateLocation::ItemList, |
@@ -88,6 +90,11 @@ fn test_has_trait_parent() { | |||
88 | } | 90 | } |
89 | 91 | ||
90 | #[test] | 92 | #[test] |
93 | fn test_has_use_parent() { | ||
94 | check_location(r"use f$0", ImmediateLocation::Use); | ||
95 | } | ||
96 | |||
97 | #[test] | ||
91 | fn test_has_impl_parent() { | 98 | fn test_has_impl_parent() { |
92 | check_location(r"impl A { f$0 }", ImmediateLocation::Impl); | 99 | check_location(r"impl A { f$0 }", ImmediateLocation::Impl); |
93 | } | 100 | } |