git.iko.soy/rowtype-yoga/purescript-native
on golang help sign in
Fix detection of single open import
3c8b32eGary Burgess
src/Language/PureScript/Linter/Imports.hs+7−6
@@ -79,8 +79,8 @@ lintImports (Module _ _ mn mdecls mexports) env usedImps = do
79
79
80 let scope = maybe nullImports (\(_, imps, _) -> imps) (M.lookup mn env)
80 let scope = maybe nullImports (\(_, imps, _) -> imps) (M.lookup mn env)
81 usedImps' = foldr (elaborateUsed scope) usedImps exportedModules
81 usedImps' = foldr (elaborateUsed scope) usedImps exportedModules
82− numImplicitImports = getSum $ foldMap (Sum . countImplicitImports) mdecls
82+ numOpenImports = getSum $ foldMap (Sum . countOpenImports) mdecls
83− allowImplicit = numImplicitImports == 1
83+ allowImplicit = numOpenImports == 1
84
84
85 imps <- M.toAscList <$> findImports mdecls
85 imps <- M.toAscList <$> findImports mdecls
86
86
@@ -106,10 +106,11 @@ lintImports (Module _ _ mn mdecls mexports) env usedImps = do
106
106
107 where
107 where
108
108
109− countImplicitImports :: Declaration -> Int
109+ countOpenImports :: Declaration -> Int
110− countImplicitImports (ImportDeclaration mn' Implicit _ _) | not (isPrim mn') = 1
110+ countOpenImports (ImportDeclaration mn' Implicit Nothing _) | not (isPrim mn') = 1
111+ countOpenImports (ImportDeclaration mn' (Hiding _) Nothing _) | not (isPrim mn') = 1
111− countImplicitImports (PositionedDeclaration _ _ d) = countImplicitImports d
112+ countOpenImports (PositionedDeclaration _ _ d) = countOpenImports d
112− countImplicitImports _ = 0
113+ countOpenImports _ = 0
113
114
114 -- Checks whether a module is the Prim module - used to suppress any checks
115 -- Checks whether a module is the Prim module - used to suppress any checks
115 -- made, as Prim is always implicitly imported.
116 -- made, as Prim is always implicitly imported.