@@ -10,10 +10,8 @@ module Reporting.Error
12import qualified Data.ByteString as B
12import qualified Data.ByteString as B
13−import qualified Data.Name as Name
14import qualified Data.NonEmptyList as NE
13import qualified Data.NonEmptyList as NE
15import qualified Data.OneOrMore as OneOrMore
14import qualified Data.OneOrMore as OneOrMore
16−import qualified Data.Utf8 as Utf8
18import qualified Elm.ModuleName as ModuleName
16import qualified Elm.ModuleName as ModuleName
19import qualified File
17import qualified File
@@ -22,6 +20,7 @@ import Json.Encode ((==>))
22import qualified Reporting.Annotation as A
20import qualified Reporting.Annotation as A
23import qualified Reporting.Doc as D
21import qualified Reporting.Doc as D
24import qualified Reporting.Error.Canonicalize as Canonicalize
22import qualified Reporting.Error.Canonicalize as Canonicalize
23+import qualified Reporting.Error.Docs as Docs
25import qualified Reporting.Error.Import as Import
24import qualified Reporting.Error.Import as Import
26import qualified Reporting.Error.Main as Main
25import qualified Reporting.Error.Main as Main
27import qualified Reporting.Error.Pattern as Pattern
26import qualified Reporting.Error.Pattern as Pattern
@@ -57,6 +56,7 @@ data Error
57 | BadTypes L.Localizer (NE.List Type.Error)
56 | BadTypes L.Localizer (NE.List Type.Error)
58 | BadMains L.Localizer (OneOrMore.OneOrMore Main.Error)
57 | BadMains L.Localizer (OneOrMore.OneOrMore Main.Error)
59 | BadPatterns (NE.List Pattern.Error)
58 | BadPatterns (NE.List Pattern.Error)
@@ -84,6 +84,9 @@ toReports source err =
84 BadPatterns errs ->
84 BadPatterns errs ->
85 fmap (Pattern.toReport source) errs
85 fmap (Pattern.toReport source) errs
88+ Docs.toReports source docsErr
@@ -92,8 +95,7 @@ toReports source err =
92toDoc :: Module -> [Module] -> D.Doc
95toDoc :: Module -> [Module] -> D.Doc
93toDoc err errs =
96toDoc err errs =
95− timeCompare m1 m2 = compare (_time m1) (_time m2)
96− (NE.List m ms) = NE.sortBy timeCompare (NE.List err errs)
98+ (NE.List m ms) = NE.sortBy _time (NE.List err errs)
98 D.vcat (toDocHelp m ms)
100 D.vcat (toDocHelp m ms)
@@ -173,8 +175,8 @@ toJson (Module name path _ source err) =
173 toReports (Code.toSource source) err
175 toReports (Code.toSource source) err
176− [ "path" ==> E.string (Utf8.fromChars path)
178+ [ "path" ==> E.chars path
177− , "name" ==> E.string (Name.toUtf8 name)
179+ , "name" ==> E.name name
178 , "problems" ==> E.array (map reportToJson (NE.toList reports))
180 , "problems" ==> E.array (map reportToJson (NE.toList reports))
@@ -182,7 +184,7 @@ toJson (Module name path _ source err) =
182reportToJson :: Report.Report -> E.Value
184reportToJson :: Report.Report -> E.Value
183reportToJson (Report.Report title region _sgstns message) =
185reportToJson (Report.Report title region _sgstns message) =
185− [ "title" ==> E.string (Utf8.fromChars title)
187+ [ "title" ==> E.chars title
186 , "region" ==> encodeRegion region
188 , "region" ==> encodeRegion region
187 , "message" ==> D.encode message
189 , "message" ==> D.encode message
@@ -193,12 +195,12 @@ encodeRegion (A.Region (A.Position sr sc) (A.Position er ec)) =
194 [ "start" ==>
196 [ "start" ==>
196− [ ("line", E.int (fromIntegral sr))
198+ [ "line" ==> E.int (fromIntegral sr)
197− , ("column", E.int (fromIntegral sc))
199+ , "column" ==> E.int (fromIntegral sc)
199 , "end" ==>
201 , "end" ==>
201− [ ("line", E.int (fromIntegral er))
203+ [ "line" ==> E.int (fromIntegral er)
202− , ("column", E.int (fromIntegral ec))
204+ , "column" ==> E.int (fromIntegral ec)