about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--crates/ide-completion/src/completions/.mod_.rs.swpbin0 -> 24576 bytes
-rw-r--r--crates/ide-completion/src/completions/mod_.rs20
2 files changed, 20 insertions, 0 deletions
diff --git a/crates/ide-completion/src/completions/.mod_.rs.swp b/crates/ide-completion/src/completions/.mod_.rs.swp
new file mode 100644
index 00000000000..52d5cea48b2
--- /dev/null
+++ b/crates/ide-completion/src/completions/.mod_.rs.swp
Binary files differdiff --git a/crates/ide-completion/src/completions/mod_.rs b/crates/ide-completion/src/completions/mod_.rs
index 9c975b92953..950731eb4ca 100644
--- a/crates/ide-completion/src/completions/mod_.rs
+++ b/crates/ide-completion/src/completions/mod_.rs
@@ -53,6 +53,7 @@ pub(crate) fn complete_mod(
     let existing_mod_declarations = current_module
         .children(ctx.db)
         .filter_map(|module| Some(module.name(ctx.db)?.to_string()))
+        .filter(|module| module != ctx.original_token.text())
         .collect::<FxHashSet<_>>();
 
     let module_declaration_file =
@@ -351,4 +352,23 @@ fn ignored_bar() {}
             "#]],
         );
     }
+
+    #[test]
+    fn semi_colon_completion() {
+        check(
+            r#"
+//- /lib.rs
+mod foo;
+//- /foo.rs
+mod bar {
+    mod baz$0
+}
+//- /foo/bar/baz.rs
+fn baz() {}
+"#,
+            expect![[r#"
+                md baz;
+            "#]],
+        );
+    }
 }