Skip to content

Commit ec76fc9

Browse files
authored
TCO for formatReports (#143)
Fixes #142
1 parent bd2450a commit ec76fc9

File tree

1 file changed

+23
-8
lines changed

1 file changed

+23
-8
lines changed

template/src/Elm/Review/Reporter.elm

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -781,19 +781,34 @@ fixableErrors files =
781781

782782
formatReports : DetailsMode -> Mode -> List FileWithError -> List Text
783783
formatReports detailsMode mode files =
784+
formatReportsEndingWith [] detailsMode mode files
785+
786+
787+
formatReportsEndingWith : List (List Text) -> DetailsMode -> Mode -> List FileWithError -> List Text
788+
formatReportsEndingWith soFarReverse detailsMode mode files =
784789
case files of
785790
[] ->
786-
[]
791+
soFarReverse |> reverseThenConcat
787792

788-
[ file ] ->
789-
formatReportForFileWithExtract detailsMode mode file
793+
[ firstFile ] ->
794+
formatReportForFileWithExtract detailsMode mode firstFile
795+
:: soFarReverse
796+
|> reverseThenConcat
790797

791798
firstFile :: secondFile :: restOfFiles ->
792-
List.concat
793-
[ formatReportForFileWithExtract detailsMode mode firstFile
794-
, fileSeparator firstFile.path secondFile.path
795-
, formatReports detailsMode mode (secondFile :: restOfFiles)
796-
]
799+
formatReportsEndingWith
800+
(fileSeparator firstFile.path secondFile.path
801+
:: formatReportForFileWithExtract detailsMode mode firstFile
802+
:: soFarReverse
803+
)
804+
detailsMode
805+
mode
806+
(secondFile :: restOfFiles)
807+
808+
809+
reverseThenConcat : List (List a) -> List a
810+
reverseThenConcat reverseLists =
811+
List.foldl (++) [] reverseLists
797812

798813

799814
fileSeparator : FilePath -> FilePath -> List Text

0 commit comments

Comments
 (0)