on master help sign in
Remove some newly dead code
c37875cEvan Czaplicki
src/Canonicalize/Environment.hs+5−19
@@ -17,7 +17,6 @@ import qualified AST.Module.Name as ModuleName
17import qualified AST.Pattern as P
17import qualified AST.Pattern as P
18import qualified AST.Type as Type
18import qualified AST.Type as Type
19import qualified AST.Variable as Var
19import qualified AST.Variable as Var
20−import Elm.Utils ((|>))
21
20
22
21
23
22
@@ -30,7 +29,6 @@ data Environment = Env
30 , _unions :: Dict Var.Canonical
29 , _unions :: Dict Var.Canonical
31 , _aliases :: Dict (Var.Canonical, [String], Type.Canonical)
30 , _aliases :: Dict (Var.Canonical, [String], Type.Canonical)
32 , _patterns :: Dict (Var.Canonical, Int)
31 , _patterns :: Dict (Var.Canonical, Int)
33− , _effects :: Map.Map String ModuleName.Canonical
34 }
32 }
35
33
36
34
@@ -38,20 +36,9 @@ type Dict a =
38 Map.Map String (Set.Set a)
36 Map.Map String (Set.Set a)
39
37
40
38
41−fromPatches
42− :: ModuleName.Canonical
39+fromPatches :: ModuleName.Canonical -> [Patch] -> Environment
43− -> Map.Map String ModuleName.Canonical
44− -> [Patch]
45− -> Environment
46−fromPatches moduleName moduleNames patches =
40+fromPatches moduleName patches =
47− let
48− effects =
49− Map.insert (ModuleName.canonicalToString moduleName) moduleName moduleNames
50− -- TODO filter this so it is *only* effect modules, no normal modules!
51− in
52− addPatches
53− patches
54− (Env moduleName Map.empty Map.empty Map.empty Map.empty effects)
41+ addPatches patches (Env moduleName Map.empty Map.empty Map.empty Map.empty)
55
42
56
43
57addPattern :: P.Pattern ann var -> Environment -> Environment
44addPattern :: P.Pattern ann var -> Environment -> Environment
@@ -138,7 +125,7 @@ builtinPatches =
138
125
139
126
140toDealiaser :: Environment -> Map.Map String String
127toDealiaser :: Environment -> Map.Map String String
141−toDealiaser (Env _ _ unions aliases _ _) =
128+toDealiaser (Env _ _ unions aliases _) =
142 let
129 let
143 dealiasUnion (localName, canonicalSet) =
130 dealiasUnion (localName, canonicalSet) =
144 case Set.toList canonicalSet of
131 case Set.toList canonicalSet of
@@ -163,5 +150,4 @@ toDealiaser (Env _ _ unions aliases _ _) =
163 add (key,value) dict =
150 add (key,value) dict =
164 Map.insertWith (\v v' -> if length v < length v' then v else v') key value dict
151 Map.insertWith (\v v' -> if length v < length v' then v else v') key value dict
165 in
152 in
166− unionPairs ++ aliasPairs
167− |> foldr add Map.empty
153+ foldr add Map.empty (unionPairs ++ aliasPairs)
src/Canonicalize/Setup.hs+14−16
@@ -39,8 +39,8 @@ environment importDict interfaces (Module.Module name _ info) =
39 allImports =
39 allImports =
40 imports ++ map (A.A (error "default import not found")) defaults
40 imports ++ map (A.A (error "default import not found")) defaults
41
41
42− importIngredients =
42+ getImportPatches =
43− unzip <$> Trav.traverse (importPatches importDict interfaces) allImports
43+ Trav.traverse (importToPatches importDict interfaces) allImports
44
44
45 (typeAliasNodes, declPatches) =
45 (typeAliasNodes, declPatches) =
46 declarationsToPatches name decls
46 declarationsToPatches name decls
@@ -48,13 +48,12 @@ environment importDict interfaces (Module.Module name _ info) =
48 effectPatches =
48 effectPatches =
49 effectsToPatches name effects
49 effectsToPatches name effects
50
50
51− createEnv (moduleNamePairs, patchLists) =
51+ createEnv importPatches =
52 Env.fromPatches
52 Env.fromPatches
53 name
53 name
54− (Map.fromList (Maybe.catMaybes moduleNamePairs))
55− (concat (Env.builtinPatches : declPatches : effectPatches : patchLists))
54+ (concat (Env.builtinPatches : declPatches : effectPatches : importPatches))
56 in
55 in
57− (createEnv <$> importIngredients)
56+ (createEnv <$> getImportPatches)
58 `Result.andThen` addTypeAliases name typeAliasNodes
57 `Result.andThen` addTypeAliases name typeAliasNodes
59
58
60
59
@@ -62,12 +61,12 @@ environment importDict interfaces (Module.Module name _ info) =
62-- PATCHES FOR IMPORTS
61-- PATCHES FOR IMPORTS
63
62
64
63
65−importPatches
64+importToPatches
66 :: Map.Map ModuleName.Raw ModuleName.Canonical
65 :: Map.Map ModuleName.Raw ModuleName.Canonical
67 -> Module.Interfaces
66 -> Module.Interfaces
68 -> A.Located (ModuleName.Raw, Module.ImportMethod)
67 -> A.Located (ModuleName.Raw, Module.ImportMethod)
69− -> Result.ResultErr (Maybe (String, ModuleName.Canonical), [Env.Patch])
68+ -> Result.ResultErr [Env.Patch]
70−importPatches importDict allInterfaces (A.A region (rawImportName, method)) =
69+importToPatches importDict allInterfaces (A.A region (rawImportName, method)) =
71 let
70 let
72 maybeInterface =
71 maybeInterface =
73 do canonicalName <- Map.lookup rawImportName importDict
72 do canonicalName <- Map.lookup rawImportName importDict
@@ -77,7 +76,7 @@ importPatches importDict allInterfaces (A.A region (rawImportName, method)) =
77 case maybeInterface of
76 case maybeInterface of
78 Nothing ->
77 Nothing ->
79 if ModuleName.isNative rawImportName then
78 if ModuleName.isNative rawImportName then
80− Result.ok (Nothing, [])
79+ Result.ok []
81
80
82 else
81 else
83 allInterfaces
82 allInterfaces
@@ -100,21 +99,20 @@ importPatches importDict allInterfaces (A.A region (rawImportName, method)) =
100 maybe (ModuleName.toString rawImportName) id maybeAlias
99 maybe (ModuleName.toString rawImportName) id maybeAlias
101
100
102 qualifiedPatches =
101 qualifiedPatches =
103− interfacePatches importName (qualifier ++ ".") interface
102+ interfaceToPatches importName (qualifier ++ ".") interface
104
103
105 unqualifiedPatches =
104 unqualifiedPatches =
106 if open then
105 if open then
107− Result.ok (interfacePatches importName "" interface)
106+ Result.ok (interfaceToPatches importName "" interface)
108
107
109 else
108 else
110 concat <$> Trav.traverse (valueToPatches region importName interface) exposedValues
109 concat <$> Trav.traverse (valueToPatches region importName interface) exposedValues
111 in
110 in
112− (,) (Just (qualifier, importName)) <$>
113− ((++) qualifiedPatches <$> unqualifiedPatches)
111+ (++) qualifiedPatches <$> unqualifiedPatches
114
112
115
113
116−interfacePatches :: ModuleName.Canonical -> String -> Module.Interface -> [Env.Patch]
114+interfaceToPatches :: ModuleName.Canonical -> String -> Module.Interface -> [Env.Patch]
117−interfacePatches moduleName prefix interface =
115+interfaceToPatches moduleName prefix interface =
118 let
116 let
119 genericPatch mkPatch name value =
117 genericPatch mkPatch name value =
120 mkPatch (prefix ++ name) value
118 mkPatch (prefix ++ name) value
src/Canonicalize/Variable.hs+1−18
@@ -1,5 +1,5 @@
1{-# OPTIONS_GHC -Wall #-}
1{-# OPTIONS_GHC -Wall #-}
2−module Canonicalize.Variable (variable, tvar, pvar, effect) where
2+module Canonicalize.Variable (variable, tvar, pvar) where
3
3
4import qualified Data.Either as Either
4import qualified Data.Either as Either
5import qualified Data.Map as Map
5import qualified Data.Map as Map
@@ -98,23 +98,6 @@ pvar region env var actualArgs =
98 else Result.err (A.A region (Error.argMismatch name expectedArgs actualArgs))
98 else Result.err (A.A region (Error.argMismatch name expectedArgs actualArgs))
99
99
100
100
101−effect
102− :: Env.Environment
103− -> A.Located ModuleName.Raw
104− -> Result.ResultErr (A.Located ModuleName.Canonical)
105−effect env (A.A region rawName) =
106− let
107− rawString =
108− ModuleName.toString rawName
109− in
110− case Map.lookup rawString (Env._effects env) of
111− Just name ->
112− Result.addModule (ModuleName._module name) (Result.ok (A.A region name))
113−
114− Nothing ->
115− notFound region "effect type" (Map.keys (Env._effects env)) rawString
116−
117−
118
101
119-- FOUND
102-- FOUND
120
103