Skip to content

Commit 182409f

Browse files
authored
Merge pull request purescript#2328 from garyb/fix-dup-module-codegen
Fix handling of duplicate module imports in JS codegen
2 parents da9b49f + 34d072f commit 182409f

File tree

1 file changed

+3
-3
lines changed
  • src/Language/PureScript/CodeGen

1 file changed

+3
-3
lines changed

src/Language/PureScript/CodeGen/JS.hs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import Control.Monad.Error.Class (MonadError(..))
1515
import Control.Monad.Reader (MonadReader, asks)
1616
import Control.Monad.Supply.Class
1717

18-
import Data.List ((\\), delete, intersect)
18+
import Data.List ((\\), delete, intersect, nub)
1919
import Data.Maybe (isNothing, fromMaybe)
2020
import qualified Data.Foldable as F
2121
import 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

0 commit comments

Comments
 (0)