@@ -195,8 +195,8 @@ fn can_be_doc_comment(comment: &ast::Comment) -> Option<CommentPlacement> {
195
195
// check if comment is followed by: `struct`, `trait`, `mod`, `fn`, `type`, `extern crate`,
196
196
// `use` or `const`.
197
197
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 ) )
200
200
. then_some ( CommentPlacement :: Outer )
201
201
}
202
202
@@ -469,20 +469,6 @@ mod tests {
469
469
) ;
470
470
}
471
471
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
-
486
472
#[ test]
487
473
fn single_inner_line_doc_to_comment ( ) {
488
474
check_assist (
@@ -596,6 +582,98 @@ mod tests {
596
582
) ;
597
583
}
598
584
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
+
599
677
#[ test]
600
678
fn no_inner_comments ( ) {
601
679
check_assist_not_applicable (
0 commit comments