on master help sign in
Use fully qualified variable names, rely on gzip to crush them
commit31e58961a6a53bc43d4e68593fe210b44a0a10c0 authorEvan Czaplicki <info@elm-lang.org> dateFri 19 Feb 2016, 13:05 (11 years ago) parent0c62398
1 file changed+14−2
src/Generate/JavaScript/Variable.hs+14−2
src/Generate/JavaScript/Variable.hs+14−2
@@ -1,3 +1,4 @@
1+{-# OPTIONS_GHC -Wall #-}
12module Generate.JavaScript.Variable
23 ( fresh
34 , canonical
@@ -14,6 +15,7 @@ import qualified Language.ECMAScript3.Syntax as JS
1415import qualified AST.Helpers as Help
1516import qualified AST.Module.Name as ModuleName
1617import qualified AST.Variable as Var
18+import qualified Elm.Package as Pkg
1719import qualified Generate.JavaScript.Helpers as JS
1820
1921
@@ -116,8 +118,18 @@ getOpsDictName home =
116118
117119
118120moduleToString :: ModuleName.Canonical -> String
119−moduleToString (ModuleName.Canonical _ moduleName) =
120− '_' : List.intercalate "_" 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 =
130+ List.intercalate "_" moduleName
131+ in
132+ '_' : safeUser ++ "$" ++ safeProject ++ "$" ++ safeModuleName
121133
122134
123135swap :: Char -> Char -> Char -> Char