@@ -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