on master help sign in
First draft of localizing type names
commit22a5c27cd31dd8434ef7c925ff6125a568cb961b authorEvan Czaplicki <evancz@users.noreply.github.com> dateSat 10 Feb 2018, 17:56 (9 years ago) parentce99d51
1 file changed+14−8
src/Type/Error.hs+14−8
src/Type/Error.hs+14−8
@@ -12,6 +12,7 @@ module Type.Error
1212
1313import qualified Data.Map as Map
1414import qualified Data.Maybe as Maybe
15+import Data.Monoid ((<>))
1516
1617import qualified AST.Module.Name as ModuleName
1718import qualified Elm.Name as N
@@ -58,7 +59,17 @@ iteratedDealias tipe =
5859-- TO DOC
5960
6061
61−type Localizer = Map.Map (ModuleName.Canonical, N.Name) (Maybe N.Name)
62+type Localizer = Map.Map (ModuleName.Canonical, N.Name) String
63+
64+
65+nameToDoc :: Localizer -> ModuleName.Canonical -> N.Name -> H.Doc
66+nameToDoc localizer home@(ModuleName.Canonical _ moduleName) name =
67+ case Map.lookup (home, name) localizer of
68+ Nothing ->
69+ H.nameToDoc moduleName <> "." <> H.nameToDoc name
70+
71+ Just string ->
72+ H.text string
6273
6374
6475toDoc :: Localizer -> RT.Context -> Type -> H.Doc
@@ -90,7 +101,7 @@ toDoc localizer context tipe =
90101
91102 Type home name args ->
92103 RT.apply context
93− (toLocal localizer home name)
104+ (nameToDoc localizer home name)
94105 (map (toDoc localizer RT.App) args)
95106
96107 Record fields ext ->
@@ -119,15 +130,10 @@ toDoc localizer context tipe =
119130
120131 Alias home name args _ ->
121132 RT.apply context
122− (toLocal localizer home name)
133+ (nameToDoc localizer home name)
123134 (map (toDoc localizer RT.App . snd) args)
124135
125136
126−toLocal :: Localizer -> ModuleName.Canonical -> N.Name -> H.Doc
127−toLocal localizer home name =
128− error "TODO toLocal" localizer home name
129−
130−
131137
132138{-- DIFF
133139