on master help sign in
Use fully qualified variable names, rely on gzip to crush them
31e5896Evan Czaplicki
src/Generate/JavaScript/Variable.hs+14−2
@@ -1,3 +1,4 @@
1+{-# OPTIONS_GHC -Wall #-}
1module Generate.JavaScript.Variable
2module Generate.JavaScript.Variable
2 ( fresh
3 ( fresh
3 , canonical
4 , canonical
@@ -14,6 +15,7 @@ import qualified Language.ECMAScript3.Syntax as JS
14import qualified AST.Helpers as Help
15import qualified AST.Helpers as Help
15import qualified AST.Module.Name as ModuleName
16import qualified AST.Module.Name as ModuleName
16import qualified AST.Variable as Var
17import qualified AST.Variable as Var
18+import qualified Elm.Package as Pkg
17import qualified Generate.JavaScript.Helpers as JS
19import qualified Generate.JavaScript.Helpers as JS
18
20
19
21
@@ -116,8 +118,18 @@ getOpsDictName home =
116
118
117
119
118moduleToString :: ModuleName.Canonical -> String
120moduleToString :: ModuleName.Canonical -> String
119−moduleToString (ModuleName.Canonical _ moduleName) =
121+moduleToString (ModuleName.Canonical (Pkg.Name user project) moduleName) =
122+ let
123+ safeUser =
124+ map (swap '-' '_') user
125+
126+ safeProject =
127+ map (swap '-' '_') project
128+
129+ safeModuleName =
120− '_' : List.intercalate "_" moduleName
130+ List.intercalate "_" moduleName
131+ in
132+ '_' : safeUser ++ "$" ++ safeProject ++ "$" ++ safeModuleName
121
133
122
134
123swap :: Char -> Char -> Char -> Char
135swap :: Char -> Char -> Char -> Char