on master help sign in
Get rid of List.NonEmpty usage
commitbf253267f3414671fe790eda5f0fe879babf71a8 authorEvan Czaplicki <evancz@users.noreply.github.com> dateTue 3 Apr 2018, 17:01 (9 years ago) parent2d4371e
1 file changed+27−5
builder/src/Reporting/Exit/Compile.hs+27−5
builder/src/Reporting/Exit/Compile.hs+27−5
@@ -8,8 +8,7 @@ module Reporting.Exit.Compile
88 where
99
1010
11−import Data.List.NonEmpty (NonEmpty((:|)))
12−import qualified Data.List.NonEmpty as NonEmpty
11+import qualified Data.List as List
1312import qualified Data.Text as Text
1413import qualified Data.Time.Clock as Time
1514import qualified Text.PrettyPrint.ANSI.Leijen as P
@@ -48,9 +47,10 @@ toJson (Exit name path _ source errors) =
4847
4948toDoc :: Exit -> [Exit] -> P.Doc
5049toDoc e es =
51− case NonEmpty.sortWith _time (e :| es) of
52− exit :| exits ->
53− P.vcat (toDocHelp exit exits)
50+ let
51+ (exit, exits) = sortByTime e es
52+ in
53+ P.vcat (toDocHelp exit exits)
5454
5555
5656toDocHelp :: Exit -> [Exit] -> [P.Doc]
@@ -81,3 +81,25 @@ separator beforeName afterName =
8181 , P.empty
8282 , P.empty
8383 ]
84+
85+
86+
87+-- SORT BY TIME
88+
89+
90+sortByTime :: Exit -> [Exit] -> (Exit, [Exit])
91+sortByTime exit exits =
92+ case List.sortBy timeCompare exits of
93+ [] ->
94+ (exit, [])
95+
96+ e:es ->
97+ if _time exit < _time e then
98+ (exit, e:es)
99+ else
100+ (e, List.insertBy timeCompare exit es)
101+
102+
103+timeCompare :: Exit -> Exit -> Ordering
104+timeCompare e1 e2 =
105+ compare (_time e1) (_time e2)