@@ -25,7 +25,11 @@ import Language.PureScript.Sugar.Names.Imports
25import qualified Language.PureScript.Constants as C
25import qualified Language.PureScript.Constants as C
27-- | Imported name used in some type or expression.
27-- | Imported name used in some type or expression.
29+ = IdentName (Qualified Ident)
30+ | TypeName (Qualified ProperName)
28−data Name = IdentName (Qualified Ident) | IsProperName (Qualified ProperName) | DctorName (Qualified ProperName)
31+ | DctorName (Qualified ProperName)
32+ | ClassName (Qualified ProperName)
30-- | Map of module name to list of imported names from that module which have been used.
34-- | Map of module name to list of imported names from that module which have been used.
31type UsedImports = M.Map ModuleName [Name]
35type UsedImports = M.Map ModuleName [Name]
@@ -63,6 +67,7 @@ findUnusedImports (Module _ _ _ mdecls mexports) env usedImps = do
63 let ddiff = ctors \\ usedDctors
67 let ddiff = ctors \\ usedDctors
64 in unless (null ddiff) $ tell $ errorMessage $ UnusedDctorExplicitImport tn ddiff
68 in unless (null ddiff) $ tell $ errorMessage $ UnusedDctorExplicitImport tn ddiff
65 _ -> return ()
69 _ -> return ()
68 _ -> return ()
73 _ -> return ()
@@ -102,7 +107,8 @@ findUnusedImports (Module _ _ _ mdecls mexports) env usedImps = do
103matchName :: (ProperName -> Maybe ProperName) -> Maybe ModuleName -> Name -> Maybe String
108matchName :: (ProperName -> Maybe ProperName) -> Maybe ModuleName -> Name -> Maybe String
104matchName _ qual (IdentName (Qualified q x)) | q == qual = Just $ showIdent x
109matchName _ qual (IdentName (Qualified q x)) | q == qual = Just $ showIdent x
110+matchName _ qual (TypeName (Qualified q x)) | q == qual = Just $ runProperName x
105−matchName _ qual (IsProperName (Qualified q x)) | q == qual = Just $ runProperName x
111+matchName _ qual (ClassName (Qualified q x)) | q == qual = Just $ runProperName x
106matchName lookupDc qual (DctorName (Qualified q x)) | q == qual = runProperName <$> lookupDc x
112matchName lookupDc qual (DctorName (Qualified q x)) | q == qual = runProperName <$> lookupDc x
107matchName _ _ _ = Nothing
113matchName _ _ _ = Nothing
@@ -114,6 +120,7 @@ runDeclRef :: DeclarationRef -> Maybe String
114runDeclRef (PositionedDeclarationRef _ _ ref) = runDeclRef ref
120runDeclRef (PositionedDeclarationRef _ _ ref) = runDeclRef ref
115runDeclRef (ValueRef ident) = Just $ showIdent ident
121runDeclRef (ValueRef ident) = Just $ showIdent ident
116runDeclRef (TypeRef pn _) = Just $ runProperName pn
122runDeclRef (TypeRef pn _) = Just $ runProperName pn
123+runDeclRef (TypeClassRef pn) = Just $ runProperName pn
117runDeclRef _ = Nothing
124runDeclRef _ = Nothing
119getTypeRef :: DeclarationRef -> Maybe (ProperName, Maybe [ProperName])
126getTypeRef :: DeclarationRef -> Maybe (ProperName, Maybe [ProperName])