git.iko.soy/rowtype-yoga/purescript-native
on golang help sign in
docs: Fix display of 'where' keyword after typeclasses

A 'where' should only be displayed in documentation for a type class declaration if the type class has at least one member. This commit fixes a bug where the 'where' keyword was sometimes displayed even if a type class has no members.

commita3f5c8cf0c826635996dc302db40bcfcbfc21540 authorHarry Garrood <harry@garrood.me> dateSat 27 Jun 2015, 02:12 (11 years ago) parentaecccbf
1 file changed+6−1
src/Language/PureScript/Docs/Render.hs+6−1
src/Language/PureScript/Docs/Render.hs+6−1
@@ -45,7 +45,9 @@ renderDeclaration Declaration{..} =
4545 [ keywordClass ]
4646 ++ maybe [] (:[]) superclasses
4747 ++ [renderType (typeApp declTitle args)]
48− ++ if (not (null declChildren)) then [keywordWhere] else []
48+ ++ if any (isTypeClassMember . cdeclInfo) declChildren
49+ then [keywordWhere]
50+ else []
4951
5052 where
5153 superclasses
@@ -55,6 +57,9 @@ renderDeclaration Declaration{..} =
5557 <> mintersperse (syntax "," <> sp) (map renderConstraint implies)
5658 <> syntax ")" <> sp <> syntax "<="
5759
60+ isTypeClassMember (ChildTypeClassMember _) = True
61+ isTypeClassMember _ = False
62+
5863renderChildDeclaration :: ChildDeclaration -> RenderedCode
5964renderChildDeclaration ChildDeclaration{..} =
6065 mintersperse sp $ case cdeclInfo of