@@ -1,16 +1,22 @@
1+{-# OPTIONS_GHC -Wall #-}
2+{-# LANGUAGE OverloadedStrings #-}
1module Type.Error
3module Type.Error
3 , Extension(..)
5 , Extension(..)
4 , iteratedDealias
6 , iteratedDealias
5 , Localizer
7 , Localizer
10import qualified Data.Map as Map
13import qualified Data.Map as Map
14+import qualified Data.Maybe as Maybe
12import qualified AST.Module.Name as ModuleName
16import qualified AST.Module.Name as ModuleName
13import qualified Elm.Name as N
17import qualified Elm.Name as N
18+import qualified Reporting.Helpers as H
19+import qualified Reporting.Render.Type as RT
@@ -49,12 +55,78 @@ iteratedDealias tipe =
52−-- LOCALIZE
58+-- TO DOC
55−type Localizer = Map.Map N.Name ()
61+type Localizer = Map.Map (ModuleName.Canonical, N.Name) (Maybe N.Name)
64+toDoc :: Localizer -> RT.Context -> Type -> H.Doc
65+toDoc localizer context tipe =
69+ (toDoc localizer RT.Func a)
70+ (toDoc localizer RT.Func b)
71+ (map (toDoc localizer RT.Func) cs)
91+ Type home name args ->
93+ (toLocal localizer home name)
94+ (map (toDoc localizer RT.App) args)
98+ entryToDocs (fieldName, fieldType) =
99+ ( H.nameToDoc fieldName, toDoc localizer RT.None fieldType )
102+ map entryToDocs (Map.toList fields)
104+ RT.record fieldDocs $
107+ FlexOpen x -> Just (H.nameToDoc x)
108+ RigidOpen x -> Just (H.nameToDoc x)
116+ (toDoc localizer RT.None a)
117+ (toDoc localizer RT.None b)
118+ (map (toDoc localizer RT.None) (Maybe.maybeToList maybeC))
120+ Alias home name args _ ->
122+ (toLocal localizer home name)
123+ (map (toDoc localizer RT.App . snd) args)
126+toLocal :: Localizer -> ModuleName.Canonical -> N.Name -> H.Doc
127+toLocal localizer home name =
128+ error "TODO toLocal" localizer home name