@@ -734,3 +734,55 @@ func TestCleanupMaintainsRefs(t *testing.T) {
734
734
t .Errorf ("got:\n %v\n want:\n %v" , syntax .Stmt [0 ], lineB )
735
735
}
736
736
}
737
+
738
+ func TestCleanupRemoveRequireBlockBlankLines (t * testing.T ) {
739
+ syntax := & FileSyntax {
740
+ Stmt : []Expr {
741
+ & Line {
742
+ Token : []string {"module" , "a" },
743
+ },
744
+ & LineBlock {
745
+ Token : []string {"require" },
746
+ Line : []* Line {
747
+ {
748
+ Token : []string {"golang.org/x/time" , "v0.8.0" },
749
+ InBlock : true ,
750
+ },
751
+ {
752
+ Token : nil , // Blank line
753
+ InBlock : true ,
754
+ },
755
+ {
756
+ Token : []string {"golang.org/x/other" , "v0.1.0" },
757
+ InBlock : true ,
758
+ },
759
+ },
760
+ },
761
+ },
762
+ }
763
+ syntax .Cleanup ()
764
+
765
+ buf := & bytes.Buffer {}
766
+ for _ , stmt := range syntax .Stmt {
767
+ switch stmt := stmt .(type ) {
768
+ case * Line :
769
+ fmt .Fprintf (buf , "line: %v\n " , strings .Join (stmt .Token , " " ))
770
+ case * LineBlock :
771
+ fmt .Fprintf (buf , "block: %v\n " , strings .Join (stmt .Token , " " ))
772
+ for _ , line := range stmt .Line {
773
+ fmt .Fprintf (buf , "blockline: %v\n " , strings .Join (line .Token , " " ))
774
+ }
775
+ }
776
+ }
777
+
778
+ got := strings .TrimSpace (buf .String ())
779
+ want := strings .TrimSpace (`
780
+ line: module a
781
+ block: require
782
+ blockline: golang.org/x/time v0.8.0
783
+ blockline: golang.org/x/other v0.1.0
784
+ ` )
785
+ if got != want {
786
+ t .Errorf ("got:\n %s\n want:\n %s" , got , want )
787
+ }
788
+ }
0 commit comments