Skip to content

Commit 28399f9

Browse files
committed
add test for every keyword, fix bug
1 parent e0d1092 commit 28399f9

File tree

1 file changed

+94
-16
lines changed

1 file changed

+94
-16
lines changed

src/tools/rust-analyzer/crates/ide-assists/src/handlers/convert_comment_from_or_to_doc.rs

Lines changed: 94 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -195,8 +195,8 @@ fn can_be_doc_comment(comment: &ast::Comment) -> Option<CommentPlacement> {
195195
// check if comment is followed by: `struct`, `trait`, `mod`, `fn`, `type`, `extern crate`,
196196
// `use` or `const`.
197197
let parent = comment.syntax().parent();
198-
let parent_kind = parent.as_ref().map(|parent| parent.kind());
199-
matches!(parent_kind, Some(STRUCT | TRAIT | MODULE | FN | TYPE_KW | EXTERN_CRATE | USE | CONST))
198+
let par_kind = parent.as_ref().map(|parent| parent.kind());
199+
matches!(par_kind, Some(STRUCT | TRAIT | MODULE | FN | TYPE_ALIAS | EXTERN_CRATE | USE | CONST))
200200
.then_some(CommentPlacement::Outer)
201201
}
202202

@@ -469,20 +469,6 @@ mod tests {
469469
);
470470
}
471471

472-
#[test]
473-
fn multi_inner_line_comment_to_doc() {
474-
check_assist_not_applicable(
475-
convert_comment_from_or_to_doc,
476-
r#"
477-
mod mymod {
478-
// unseen$0 docs
479-
// make me seen!
480-
type Int = i32;
481-
}
482-
"#,
483-
);
484-
}
485-
486472
#[test]
487473
fn single_inner_line_doc_to_comment() {
488474
check_assist(
@@ -596,6 +582,98 @@ mod tests {
596582
);
597583
}
598584

585+
#[test]
586+
fn all_possible_items() {
587+
check_assist(
588+
convert_comment_from_or_to_doc,
589+
r#"mod m {
590+
/* Nice struct$0 */
591+
struct S {}
592+
}"#,
593+
r#"mod m {
594+
/** Nice struct */
595+
struct S {}
596+
}"#,
597+
);
598+
check_assist(
599+
convert_comment_from_or_to_doc,
600+
r#"mod m {
601+
/* Nice trait$0 */
602+
trait T {}
603+
}"#,
604+
r#"mod m {
605+
/** Nice trait */
606+
trait T {}
607+
}"#,
608+
);
609+
check_assist(
610+
convert_comment_from_or_to_doc,
611+
r#"mod m {
612+
/* Nice module$0 */
613+
mod module {}
614+
}"#,
615+
r#"mod m {
616+
/** Nice module */
617+
mod module {}
618+
}"#,
619+
);
620+
check_assist(
621+
convert_comment_from_or_to_doc,
622+
r#"mod m {
623+
/* Nice function$0 */
624+
fn function() {}
625+
}"#,
626+
r#"mod m {
627+
/** Nice function */
628+
fn function() {}
629+
}"#,
630+
);
631+
check_assist(
632+
convert_comment_from_or_to_doc,
633+
r#"mod m {
634+
/* Nice type$0 */
635+
type Type Int = i32;
636+
}"#,
637+
r#"mod m {
638+
/** Nice type */
639+
type Type Int = i32;
640+
}"#,
641+
);
642+
check_assist(
643+
convert_comment_from_or_to_doc,
644+
r#"mod m {
645+
/* Nice crate$0 */
646+
extern crate rust_analyzer;
647+
}"#,
648+
r#"mod m {
649+
/** Nice crate */
650+
extern crate rust_analyzer;
651+
}"#,
652+
);
653+
check_assist(
654+
convert_comment_from_or_to_doc,
655+
r#"mod m {
656+
/* Nice import$0 */
657+
use ide_assists::convert_comment_from_or_to_doc::tests
658+
}"#,
659+
r#"mod m {
660+
/** Nice import */
661+
use ide_assists::convert_comment_from_or_to_doc::tests
662+
}"#,
663+
);
664+
check_assist(
665+
convert_comment_from_or_to_doc,
666+
r#"mod m {
667+
/* Nice constant$0 */
668+
const CONST: &str = "very const";
669+
}"#,
670+
r#"mod m {
671+
/** Nice constant */
672+
const CONST: &str = "very const";
673+
}"#,
674+
);
675+
}
676+
599677
#[test]
600678
fn no_inner_comments() {
601679
check_assist_not_applicable(

0 commit comments

Comments
 (0)