on master help sign in
Remove some newly dead code

Without “effect types” there is no need for this kind of canonicalization

commitc37875c2a6be1bb16ecc6d8d9e6ba8c8f9e68553 authorEvan Czaplicki <info@elm-lang.org> dateFri 4 Mar 2016, 17:10 (11 years ago) parentfa09513
3 files changed+20−53
src/Canonicalize/Environment.hs+5−19 src/Canonicalize/Setup.hs+14−16 src/Canonicalize/Variable.hs+1−18
src/Canonicalize/Environment.hs+5−19
@@ -17,7 +17,6 @@ import qualified AST.Module.Name as ModuleName
1717import qualified AST.Pattern as P
1818import qualified AST.Type as Type
1919import qualified AST.Variable as Var
20−import Elm.Utils ((|>))
2120
2221
2322
@@ -30,7 +29,6 @@ data Environment = Env
3029 , _unions :: Dict Var.Canonical
3130 , _aliases :: Dict (Var.Canonical, [String], Type.Canonical)
3231 , _patterns :: Dict (Var.Canonical, Int)
33− , _effects :: Map.Map String ModuleName.Canonical
3432 }
3533
3634
@@ -38,20 +36,9 @@ type Dict a =
3836 Map.Map String (Set.Set a)
3937
4038
41−fromPatches
42− :: ModuleName.Canonical
43− -> Map.Map String ModuleName.Canonical
44− -> [Patch]
45− -> Environment
46−fromPatches moduleName moduleNames 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)
39+fromPatches :: ModuleName.Canonical -> [Patch] -> Environment
40+fromPatches moduleName patches =
41+ addPatches patches (Env moduleName Map.empty Map.empty Map.empty Map.empty)
5542
5643
5744addPattern :: P.Pattern ann var -> Environment -> Environment
@@ -138,7 +125,7 @@ builtinPatches =
138125
139126
140127toDealiaser :: Environment -> Map.Map String String
141−toDealiaser (Env _ _ unions aliases _ _) =
128+toDealiaser (Env _ _ unions aliases _) =
142129 let
143130 dealiasUnion (localName, canonicalSet) =
144131 case Set.toList canonicalSet of
@@ -163,5 +150,4 @@ toDealiaser (Env _ _ unions aliases _ _) =
163150 add (key,value) dict =
164151 Map.insertWith (\v v' -> if length v < length v' then v else v') key value dict
165152 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) =
3939 allImports =
4040 imports ++ map (A.A (error "default import not found")) defaults
4141
42− importIngredients =
43− unzip <$> Trav.traverse (importPatches importDict interfaces) allImports
42+ getImportPatches =
43+ Trav.traverse (importToPatches importDict interfaces) allImports
4444
4545 (typeAliasNodes, declPatches) =
4646 declarationsToPatches name decls
@@ -48,13 +48,12 @@ environment importDict interfaces (Module.Module name _ info) =
4848 effectPatches =
4949 effectsToPatches name effects
5050
51− createEnv (moduleNamePairs, patchLists) =
51+ createEnv importPatches =
5252 Env.fromPatches
5353 name
54− (Map.fromList (Maybe.catMaybes moduleNamePairs))
55− (concat (Env.builtinPatches : declPatches : effectPatches : patchLists))
54+ (concat (Env.builtinPatches : declPatches : effectPatches : importPatches))
5655 in
57− (createEnv <$> importIngredients)
56+ (createEnv <$> getImportPatches)
5857 `Result.andThen` addTypeAliases name typeAliasNodes
5958
6059
@@ -62,12 +61,12 @@ environment importDict interfaces (Module.Module name _ info) =
6261-- PATCHES FOR IMPORTS
6362
6463
65−importPatches
64+importToPatches
6665 :: Map.Map ModuleName.Raw ModuleName.Canonical
6766 -> Module.Interfaces
6867 -> A.Located (ModuleName.Raw, Module.ImportMethod)
69− -> Result.ResultErr (Maybe (String, ModuleName.Canonical), [Env.Patch])
70−importPatches importDict allInterfaces (A.A region (rawImportName, method)) =
68+ -> Result.ResultErr [Env.Patch]
69+importToPatches importDict allInterfaces (A.A region (rawImportName, method)) =
7170 let
7271 maybeInterface =
7372 do canonicalName <- Map.lookup rawImportName importDict
@@ -77,7 +76,7 @@ importPatches importDict allInterfaces (A.A region (rawImportName, method)) =
7776 case maybeInterface of
7877 Nothing ->
7978 if ModuleName.isNative rawImportName then
80− Result.ok (Nothing, [])
79+ Result.ok []
8180
8281 else
8382 allInterfaces
@@ -100,21 +99,20 @@ importPatches importDict allInterfaces (A.A region (rawImportName, method)) =
10099 maybe (ModuleName.toString rawImportName) id maybeAlias
101100
102101 qualifiedPatches =
103− interfacePatches importName (qualifier ++ ".") interface
102+ interfaceToPatches importName (qualifier ++ ".") interface
104103
105104 unqualifiedPatches =
106105 if open then
107− Result.ok (interfacePatches importName "" interface)
106+ Result.ok (interfaceToPatches importName "" interface)
108107
109108 else
110109 concat <$> Trav.traverse (valueToPatches region importName interface) exposedValues
111110 in
112− (,) (Just (qualifier, importName)) <$>
113− ((++) qualifiedPatches <$> unqualifiedPatches)
111+ (++) qualifiedPatches <$> unqualifiedPatches
114112
115113
116−interfacePatches :: ModuleName.Canonical -> String -> Module.Interface -> [Env.Patch]
117−interfacePatches moduleName prefix interface =
114+interfaceToPatches :: ModuleName.Canonical -> String -> Module.Interface -> [Env.Patch]
115+interfaceToPatches moduleName prefix interface =
118116 let
119117 genericPatch mkPatch name value =
120118 mkPatch (prefix ++ name) value
src/Canonicalize/Variable.hs+1−18
@@ -1,5 +1,5 @@
11{-# OPTIONS_GHC -Wall #-}
2−module Canonicalize.Variable (variable, tvar, pvar, effect) where
2+module Canonicalize.Variable (variable, tvar, pvar) where
33
44import qualified Data.Either as Either
55import qualified Data.Map as Map
@@ -98,23 +98,6 @@ pvar region env var actualArgs =
9898 else Result.err (A.A region (Error.argMismatch name expectedArgs actualArgs))
9999
100100
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−
118101
119102-- FOUND
120103