Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide_completion/src/completions/flyimport.rs')
-rw-r--r--crates/ide_completion/src/completions/flyimport.rs21
1 files changed, 19 insertions, 2 deletions
diff --git a/crates/ide_completion/src/completions/flyimport.rs b/crates/ide_completion/src/completions/flyimport.rs
index cbfe89b911..1eb45036a9 100644
--- a/crates/ide_completion/src/completions/flyimport.rs
+++ b/crates/ide_completion/src/completions/flyimport.rs
@@ -163,11 +163,11 @@ pub(crate) fn position_for_import<'a>(
import_candidate: Option<&ImportCandidate>,
) -> Option<&'a SyntaxNode> {
Some(match import_candidate {
- Some(ImportCandidate::Path(_)) => ctx.name_ref_syntax.as_ref()?.syntax(),
+ Some(ImportCandidate::Path(_)) => ctx.name_syntax.as_ref()?.syntax(),
Some(ImportCandidate::TraitAssocItem(_)) => ctx.path_qual()?.syntax(),
Some(ImportCandidate::TraitMethod(_)) => ctx.dot_receiver()?.syntax(),
None => ctx
- .name_ref_syntax
+ .name_syntax
.as_ref()
.map(|name_ref| name_ref.syntax())
.or_else(|| ctx.path_qual().map(|path| path.syntax()))
@@ -1203,4 +1203,21 @@ mod mud {
"#]],
);
}
+
+ #[test]
+ fn flyimport_pattern() {
+ check(
+ r#"
+mod module {
+ pub struct Struct;
+}
+fn function() {
+ let Str$0
+}
+"#,
+ expect![[r#"
+ st Struct (use module::Struct)
+ "#]],
+ );
+ }
}