diff --git a/lib/Echidna/Output/Source.hs b/lib/Echidna/Output/Source.hs index c2e9c2da0..bca8dcc14 100644 --- a/lib/Echidna/Output/Source.hs +++ b/lib/Echidna/Output/Source.hs @@ -15,6 +15,8 @@ import Data.Sequence qualified as Seq import Data.Set qualified as S import Data.Text (Text, pack) import Data.Text qualified as T +import Data.Text.Lazy (toStrict) +import Data.Text.Lazy.Builder (fromString, fromText, singleton, toLazyText) import Data.Text.Encoding (decodeUtf8) import Data.Text.IO (writeFile) import Data.Vector qualified as V @@ -80,7 +82,7 @@ ppCoveredCode fileType sc cs s | null s = "Coverage map is empty" ppFile (srcPath, srcLines) = let runtimeLines = fromMaybe mempty $ Map.lookup srcPath runtimeLinesMap marked = markLines fileType srcLines runtimeLines (fromMaybe Map.empty (Map.lookup srcPath covLines)) - in T.unlines (changeFileName srcPath : changeFileLines (V.toList marked)) + in changeFileName srcPath <> lazyunlines fromText (changeFileLines (V.toList marked)) topHeader = case fileType of Lcov -> "TN:\n" Html -> "