aboutsummaryrefslogtreecommitdiff
path: root/crates/ide_completion/src/patterns.rs
diff options
context:
space:
mode:
authorbors[bot] <26634292+bors[bot]@users.noreply.github.com>2021-05-28 01:43:16 +0100
committerGitHub <[email protected]>2021-05-28 01:43:16 +0100
commit3a1598c3bcbf089239c2fdff698b9c02670362b3 (patch)
tree81eed23ea0f4c54e842a6128efd25b1c51d3304b /crates/ide_completion/src/patterns.rs
parent5b4589f4747f242c038f19f5f2b51b2e03f93252 (diff)
parent9e71dd9799879fc9070f8717f8711fba5dae490a (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.rs7
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)]
16pub(crate) enum ImmediateLocation { 16pub(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]
93fn test_has_use_parent() {
94 check_location(r"use f$0", ImmediateLocation::Use);
95}
96
97#[test]
91fn test_has_impl_parent() { 98fn 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}