git.iko.soy/rowtype-yoga/purescript-native
on 2f17513 help sign in
30 lines 1.1 kB history raw
1module TestPrimDocs where
3import Control.Monad
4import Data.List ((\\))
5import qualified Data.Map as Map
6import qualified Data.Set as Set
7import qualified Language.PureScript as P
8import qualified Language.PureScript.Docs as D
9import qualified Language.PureScript.Docs.AsMarkdown as D
11main :: IO ()
12main = do
13 putStrLn "Test that there are no bottoms hiding in primDocsModule"
14 seq (D.runDocs (D.modulesAsMarkdown [D.primDocsModule])) (return ())
16 putStrLn "Test that Prim is fully documented"
17 let actualPrimNames =
18 -- note that prim type classes are listed in P.primTypes
19 (map (P.runProperName . P.disqualify . fst) $ Map.toList P.primTypes) ++
20 (map (P.runProperName . P.disqualify) $ Set.toList P.primKinds)
21 let documentedPrimNames = map D.declTitle (D.modDeclarations D.primDocsModule)
23 let undocumentedNames = actualPrimNames \\ documentedPrimNames
24 let extraNames = documentedPrimNames \\ actualPrimNames
26 when (not (null undocumentedNames)) $
27 error $ "Undocumented Prim names: " ++ show undocumentedNames
29 when (not (null extraNames)) $
30 error $ "Extra Prim names: " ++ show undocumentedNames