Unnamed repository; edit this file 'description' to name the repository.
-rw-r--r--crates/ide_db/src/helpers/insert_use.rs7
-rw-r--r--crates/ide_db/src/helpers/insert_use/tests.rs24
2 files changed, 27 insertions, 4 deletions
diff --git a/crates/ide_db/src/helpers/insert_use.rs b/crates/ide_db/src/helpers/insert_use.rs
index 1f3e3c55bf..d6f8cd0f4b 100644
--- a/crates/ide_db/src/helpers/insert_use.rs
+++ b/crates/ide_db/src/helpers/insert_use.rs
@@ -401,7 +401,7 @@ fn insert_use_(
.children_with_tokens()
.filter(|child| match child {
NodeOrToken::Node(node) => is_inner_attribute(node.clone()),
- NodeOrToken::Token(token) => is_inner_comment(token.clone()),
+ NodeOrToken::Token(token) => is_comment(token.clone()),
})
.last()
{
@@ -440,7 +440,6 @@ fn is_inner_attribute(node: SyntaxNode) -> bool {
ast::Attr::cast(node).map(|attr| attr.kind()) == Some(ast::AttrKind::Inner)
}
-fn is_inner_comment(token: SyntaxToken) -> bool {
- ast::Comment::cast(token).and_then(|comment| comment.kind().doc)
- == Some(ast::CommentPlacement::Inner)
+fn is_comment(token: SyntaxToken) -> bool {
+ ast::Comment::cast(token).is_some()
}
diff --git a/crates/ide_db/src/helpers/insert_use/tests.rs b/crates/ide_db/src/helpers/insert_use/tests.rs
index a5763eb41c..abd5e64c54 100644
--- a/crates/ide_db/src/helpers/insert_use/tests.rs
+++ b/crates/ide_db/src/helpers/insert_use/tests.rs
@@ -391,6 +391,30 @@ use foo::bar::Baz;"#,
}
#[test]
+fn inserts_after_single_line_comments() {
+ check_none(
+ "foo::bar::Baz",
+ "// Represents a possible license header and/or general module comments",
+ r#"// Represents a possible license header and/or general module comments
+
+use foo::bar::Baz;"#,
+ );
+}
+
+#[test]
+fn inserts_before_single_line_item_comments() {
+ check_none(
+ "foo::bar::Baz",
+ r#"// Represents a comment about a function
+fn foo() {}"#,
+ r#"use foo::bar::Baz;
+
+// Represents a comment about a function
+fn foo() {}"#,
+ );
+}
+
+#[test]
fn inserts_after_multiline_inner_comments() {
check_none(
"foo::bar::Baz",