git.iko.soy/rowtype-yoga/purescript-native
on golang help sign in
Fix handling of duplicate module imports in JS codegen
commit34d072fffd6a7d3d11d5243f9630dd2dcfb0d99b authorGary Burgess <gary.burgess@gmail.com> dateSat 24 Sep 2016, 12:07 (10 years ago) parenta84f7f3
1 file changed+3−3
src/Language/PureScript/CodeGen/JS.hs+3−3
src/Language/PureScript/CodeGen/JS.hs+3−3
@@ -15,7 +15,7 @@ import Control.Monad.Error.Class (MonadError(..))
1515import Control.Monad.Reader (MonadReader, asks)
1616import Control.Monad.Supply.Class
1717
18−import Data.List ((\\), delete, intersect)
18+import Data.List ((\\), delete, intersect, nub)
1919import Data.Maybe (isNothing, fromMaybe)
2020import qualified Data.Foldable as F
2121import qualified Data.Map as M
@@ -51,7 +51,7 @@ moduleToJs (Module coms mn imps exps foreigns decls) foreign_ =
5151 rethrow (addHint (ErrorInModule mn)) $ do
5252 let usedNames = concatMap getNames decls
5353 let mnLookup = renameImports usedNames imps
54− jsImports <- T.traverse (importToJs mnLookup) . delete (ModuleName [ProperName C.prim]) . (\\ [mn]) $ map snd imps
54+ jsImports <- T.traverse (importToJs mnLookup) . delete (ModuleName [ProperName C.prim]) . (\\ [mn]) $ nub $ map snd imps
5555 let decls' = renameModules mnLookup decls
5656 jsDecls <- mapM bindToJs decls'
5757 optimized <- T.traverse (T.traverse optimize) jsDecls
@@ -89,7 +89,7 @@ moduleToJs (Module coms mn imps exps foreigns decls) foreign_ =
8989 in if mn' /= mn && mni `elem` used
9090 then let newName = freshModuleName 1 mn' used
9191 in go (M.insert mn' (ann, newName) acc) (Ident (runModuleName newName) : used) mns'
92− else go (M.insert mn' (ann, mn') acc) (mni : used) mns'
92+ else go (M.insert mn' (ann, mn') acc) used mns'
9393 go acc _ [] = acc
9494
9595 freshModuleName :: Integer -> ModuleName -> [Ident] -> ModuleName