diff options
author | Alec Theriault <alec.theriault@gmail.com> | 2018-08-21 11:24:56 -0700 |
---|---|---|
committer | Alec Theriault <alec.theriault@gmail.com> | 2018-08-21 22:06:40 -0700 |
commit | bf9da9cddc3d6161367bdc8710afc4fe08c3bdfd (patch) | |
tree | abd9190eba367f7767f3d74b7aae6efa400cfe2b /haddock-api/src | |
parent | b417271702b81d7893308c3ce6df4b5babeaa55c (diff) |
Handle promoted tuples in 'synifyType'
When we have a fully applied promoted tuple, we can expand it out properly.
Diffstat (limited to 'haddock-api/src')
-rw-r--r-- | haddock-api/src/Haddock/Convert.hs | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/haddock-api/src/Haddock/Convert.hs b/haddock-api/src/Haddock/Convert.hs index 71482f22..622837fa 100644 --- a/haddock-api/src/Haddock/Convert.hs +++ b/haddock-api/src/Haddock/Convert.hs @@ -458,6 +458,10 @@ synifyType _ (TyConApp tc tys) UnboxedTuple -> HsUnboxedTuple) (map (synifyType WithinType) vis_tys) | isUnboxedSumTyCon tc = noLoc $ HsSumTy noExt (map (synifyType WithinType) vis_tys) + | Just dc <- isPromotedDataCon_maybe tc + , isTupleDataCon dc + , dataConSourceArity dc == length vis_tys + = noLoc $ HsExplicitTupleTy noExt (map (synifyType WithinType) vis_tys) -- ditto for lists | getName tc == listTyConName, [ty] <- tys = noLoc $ HsListTy noExt (synifyType WithinType ty) |