Unnamed repository; edit this file 'description' to name the repository.
-rw-r--r--crates/ide-completion/src/completions.rs2
-rw-r--r--crates/ide-completion/src/completions/expr.rs10
-rw-r--r--crates/ide-completion/src/render.rs1
-rw-r--r--crates/ide-completion/src/tests/expression.rs2
-rw-r--r--crates/ide-completion/src/tests/special.rs9
5 files changed, 10 insertions, 14 deletions
diff --git a/crates/ide-completion/src/completions.rs b/crates/ide-completion/src/completions.rs
index 4a94383ff4..9a09e9bd4a 100644
--- a/crates/ide-completion/src/completions.rs
+++ b/crates/ide-completion/src/completions.rs
@@ -756,7 +756,7 @@ pub(super) fn complete_name_ref(
match &path_ctx.kind {
PathKind::Expr { expr_ctx } => {
expr::complete_expr_path(acc, ctx, path_ctx, expr_ctx);
- expr::complete_expr(acc, ctx);
+ expr::complete_expr(acc, ctx, path_ctx);
dot::complete_undotted_self(acc, ctx, path_ctx, expr_ctx);
item_list::complete_item_list_in_expr(acc, ctx, path_ctx, expr_ctx);
diff --git a/crates/ide-completion/src/completions/expr.rs b/crates/ide-completion/src/completions/expr.rs
index 8c532e0f4d..99ca55bdaf 100644
--- a/crates/ide-completion/src/completions/expr.rs
+++ b/crates/ide-completion/src/completions/expr.rs
@@ -451,7 +451,11 @@ pub(crate) fn complete_expr_path(
}
}
-pub(crate) fn complete_expr(acc: &mut Completions, ctx: &CompletionContext<'_>) {
+pub(crate) fn complete_expr(
+ acc: &mut Completions,
+ ctx: &CompletionContext<'_>,
+ PathCompletionCtx { qualified, .. }: &PathCompletionCtx<'_>,
+) {
let _p = tracing::info_span!("complete_expr").entered();
if !ctx.config.enable_term_search {
@@ -462,6 +466,10 @@ pub(crate) fn complete_expr(acc: &mut Completions, ctx: &CompletionContext<'_>)
return;
}
+ if !matches!(qualified, Qualified::No) {
+ return;
+ }
+
if let Some(ty) = &ctx.expected_type {
// Ignore unit types as they are not very interesting
if ty.is_unit() || ty.is_unknown() {
diff --git a/crates/ide-completion/src/render.rs b/crates/ide-completion/src/render.rs
index b946441991..b6da6fba63 100644
--- a/crates/ide-completion/src/render.rs
+++ b/crates/ide-completion/src/render.rs
@@ -2211,7 +2211,6 @@ fn bb()-> &'static aa {
}
"#,
expect![[r#"
- ex bb() [type]
fn from_bytes(…) fn(&[u8]) -> &aa [type_could_unify]
"#]],
);
diff --git a/crates/ide-completion/src/tests/expression.rs b/crates/ide-completion/src/tests/expression.rs
index 8e50ef10ec..4a5983097a 100644
--- a/crates/ide-completion/src/tests/expression.rs
+++ b/crates/ide-completion/src/tests/expression.rs
@@ -1030,8 +1030,6 @@ fn main() {
"#,
expect![[r#"
fn test() fn() -> Zulu
- ex Zulu
- ex Zulu::test()
"#]],
);
}
diff --git a/crates/ide-completion/src/tests/special.rs b/crates/ide-completion/src/tests/special.rs
index b82b23541c..55059a4035 100644
--- a/crates/ide-completion/src/tests/special.rs
+++ b/crates/ide-completion/src/tests/special.rs
@@ -896,9 +896,6 @@ fn bar() -> Bar {
"#,
expect![[r#"
fn foo() (as Foo) fn() -> Self
- ex Bar
- ex Bar::foo()
- ex bar()
"#]],
);
}
@@ -926,9 +923,6 @@ fn bar() -> Bar {
expect![[r#"
fn bar() fn()
fn foo() (as Foo) fn() -> Self
- ex Bar
- ex Bar::foo()
- ex bar()
"#]],
);
}
@@ -955,9 +949,6 @@ fn bar() -> Bar {
"#,
expect![[r#"
fn foo() (as Foo) fn() -> Self
- ex Bar
- ex Bar::foo()
- ex bar()
"#]],
);
}