[commit: haddock] ghc-head, wip/revert-ttg-2017-11-20, wip/ttg4-constraints-2017-11-13: Actually render infix type operators as infix (#703) (5b87430)
git at git.haskell.org
git at git.haskell.org
Mon Nov 20 21:12:29 UTC 2017
Repository : ssh://git@git.haskell.org/haddock
On branches: ghc-head,wip/revert-ttg-2017-11-20,wip/ttg4-constraints-2017-11-13
Link : http://git.haskell.org/haddock.git/commitdiff/5b87430a116235940e76c6d9302b34cf64cd8b95
>---------------------------------------------------------------
commit 5b87430a116235940e76c6d9302b34cf64cd8b95
Author: Ryan Scott <ryan.gl.scott at gmail.com>
Date: Tue Nov 14 09:27:03 2017 -0500
Actually render infix type operators as infix (#703)
* Actually render infix type operators as infix
* Account for things like `(f :*: g) p`, too
>---------------------------------------------------------------
5b87430a116235940e76c6d9302b34cf64cd8b95
haddock-api/src/Haddock/Convert.hs | 23 +++++++++++++++++------
1 file changed, 17 insertions(+), 6 deletions(-)
diff --git a/haddock-api/src/Haddock/Convert.hs b/haddock-api/src/Haddock/Convert.hs
index c9d4677..0e57ab4 100644
--- a/haddock-api/src/Haddock/Convert.hs
+++ b/haddock-api/src/Haddock/Convert.hs
@@ -440,14 +440,25 @@ synifyType _ (TyConApp tc tys)
= noLoc $ HsIParamTy noExt (noLoc $ HsIPName x) (synifyType WithinType ty)
-- and equalities
| tc `hasKey` eqTyConKey
- , [ty1, ty2] <- tys
+ , [ty1, ty2] <- vis_tys
= noLoc $ HsEqTy noExt (synifyType WithinType ty1) (synifyType WithinType ty2)
+ -- and infix type operators
+ | isSymOcc (nameOccName (getName tc))
+ , ty1:ty2:tys_rest <- vis_tys
+ = mk_app_tys (HsOpTy noExt (synifyType WithinType ty1)
+ (noLoc $ getName tc)
+ (synifyType WithinType ty2))
+ tys_rest
-- Most TyCons:
- | otherwise =
- foldl (\t1 t2 -> noLoc (HsAppTy noExt t1 t2))
- (noLoc $ HsTyVar noExt NotPromoted $ noLoc (getName tc))
- (map (synifyType WithinType) $
- filterOut isCoercionTy vis_tys)
+ | otherwise
+ = mk_app_tys (HsTyVar noExt NotPromoted $ noLoc (getName tc))
+ vis_tys
+ where
+ mk_app_tys ty_app ty_args =
+ foldl (\t1 t2 -> noLoc $ HsAppTy noExt t1 t2)
+ (noLoc ty_app)
+ (map (synifyType WithinType) $
+ filterOut isCoercionTy ty_args)
vis_tys = filterOutInvisibleTypes tc tys
binders = tyConBinders tc
More information about the ghc-commits
mailing list