Fix a comment bug in tuple-type layouting
parent
208a1ceadb
commit
d21ecf89e6
|
@ -1163,6 +1163,14 @@ type (a :+: b) = (a, b)
|
||||||
|
|
||||||
type ((a :+: b) c) = (a, c)
|
type ((a :+: b) c) = (a, c)
|
||||||
|
|
||||||
|
#test synonym-tuple-type-many-comments
|
||||||
|
|
||||||
|
type Foo
|
||||||
|
= ( -- t1
|
||||||
|
A -- t2
|
||||||
|
, -- t3
|
||||||
|
B -- t4
|
||||||
|
) -- t5
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
|
@ -642,18 +642,18 @@ docNodeMoveToKWDP ast kw shouldRestoreIndent bdm =
|
||||||
class DocWrapable a where
|
class DocWrapable a where
|
||||||
docWrapNode :: ( Data.Data.Data ast)
|
docWrapNode :: ( Data.Data.Data ast)
|
||||||
=> Located ast
|
=> Located ast
|
||||||
-> ToBriDocM a
|
-> a
|
||||||
-> ToBriDocM a
|
-> a
|
||||||
docWrapNodePrior :: ( Data.Data.Data ast)
|
docWrapNodePrior :: ( Data.Data.Data ast)
|
||||||
=> Located ast
|
=> Located ast
|
||||||
-> ToBriDocM a
|
-> a
|
||||||
-> ToBriDocM a
|
-> a
|
||||||
docWrapNodeRest :: ( Data.Data.Data ast)
|
docWrapNodeRest :: ( Data.Data.Data ast)
|
||||||
=> Located ast
|
=> Located ast
|
||||||
-> ToBriDocM a
|
-> a
|
||||||
-> ToBriDocM a
|
-> a
|
||||||
|
|
||||||
instance DocWrapable BriDocNumbered where
|
instance DocWrapable (ToBriDocM BriDocNumbered) where
|
||||||
docWrapNode ast bdm = do
|
docWrapNode ast bdm = do
|
||||||
bd <- bdm
|
bd <- bdm
|
||||||
i1 <- allocNodeIndex
|
i1 <- allocNodeIndex
|
||||||
|
@ -679,7 +679,22 @@ instance DocWrapable BriDocNumbered where
|
||||||
$ BDFAnnotationRest (ExactPrint.Types.mkAnnKey ast)
|
$ BDFAnnotationRest (ExactPrint.Types.mkAnnKey ast)
|
||||||
$ bd
|
$ bd
|
||||||
|
|
||||||
instance DocWrapable a => DocWrapable [a] where
|
instance DocWrapable (ToBriDocM a) => DocWrapable [ToBriDocM a] where
|
||||||
|
docWrapNode ast bdms = case bdms of
|
||||||
|
[] -> []
|
||||||
|
[bd] -> [docWrapNode ast bd]
|
||||||
|
(bd1:bdR) | (bdN:bdM) <- reverse bdR ->
|
||||||
|
[docWrapNodePrior ast bd1] ++ reverse bdM ++ [docWrapNodeRest ast bdN]
|
||||||
|
_ -> error "cannot happen (TM)"
|
||||||
|
docWrapNodePrior ast bdms = case bdms of
|
||||||
|
[] -> []
|
||||||
|
[bd] -> [docWrapNodePrior ast bd]
|
||||||
|
(bd1:bdR) -> docWrapNodePrior ast bd1 : bdR
|
||||||
|
docWrapNodeRest ast bdms = case reverse bdms of
|
||||||
|
[] -> []
|
||||||
|
(bdN:bdR) -> reverse $ docWrapNodeRest ast bdN : bdR
|
||||||
|
|
||||||
|
instance DocWrapable (ToBriDocM a) => DocWrapable (ToBriDocM [a]) where
|
||||||
docWrapNode ast bdsm = do
|
docWrapNode ast bdsm = do
|
||||||
bds <- bdsm
|
bds <- bdsm
|
||||||
case bds of
|
case bds of
|
||||||
|
@ -707,7 +722,7 @@ instance DocWrapable a => DocWrapable [a] where
|
||||||
bdN' <- docWrapNodeRest ast (return bdN)
|
bdN' <- docWrapNodeRest ast (return bdN)
|
||||||
return $ reverse (bdN':bdR)
|
return $ reverse (bdN':bdR)
|
||||||
|
|
||||||
instance DocWrapable a => DocWrapable (Seq a) where
|
instance DocWrapable (ToBriDocM a) => DocWrapable (ToBriDocM (Seq a)) where
|
||||||
docWrapNode ast bdsm = do
|
docWrapNode ast bdsm = do
|
||||||
bds <- bdsm
|
bds <- bdsm
|
||||||
case Seq.viewl bds of
|
case Seq.viewl bds of
|
||||||
|
@ -735,7 +750,7 @@ instance DocWrapable a => DocWrapable (Seq a) where
|
||||||
bdN' <- docWrapNodeRest ast (return bdN)
|
bdN' <- docWrapNodeRest ast (return bdN)
|
||||||
return $ bdR Seq.|> bdN'
|
return $ bdR Seq.|> bdN'
|
||||||
|
|
||||||
instance DocWrapable ([BriDocNumbered], BriDocNumbered, a) where
|
instance DocWrapable (ToBriDocM ([BriDocNumbered], BriDocNumbered, a)) where
|
||||||
docWrapNode ast stuffM = do
|
docWrapNode ast stuffM = do
|
||||||
(bds, bd, x) <- stuffM
|
(bds, bd, x) <- stuffM
|
||||||
if null bds
|
if null bds
|
||||||
|
|
|
@ -444,15 +444,17 @@ layoutType ltype@(L _ typ) = docWrapNode ltype $ case typ of
|
||||||
docs <- docSharedWrapper layoutType `mapM` typs
|
docs <- docSharedWrapper layoutType `mapM` typs
|
||||||
let end = docLit $ Text.pack ")"
|
let end = docLit $ Text.pack ")"
|
||||||
lines = List.tail docs <&> \d ->
|
lines = List.tail docs <&> \d ->
|
||||||
docCols ColTyOpPrefix [docCommaSep, d]
|
docAddBaseY (BrIndentSpecial 2)
|
||||||
|
$ docCols ColTyOpPrefix [docCommaSep, d]
|
||||||
|
commaDocs = List.intersperse docCommaSep (docForceSingleline <$> docs)
|
||||||
docAlt
|
docAlt
|
||||||
[ docSeq $ [docLit $ Text.pack "("]
|
[ docSeq $ [docLit $ Text.pack "("]
|
||||||
++ List.intersperse docCommaSep (docForceSingleline <$> docs)
|
++ docWrapNodeRest ltype commaDocs
|
||||||
++ [end]
|
++ [end]
|
||||||
, let line1 = docCols ColTyOpPrefix [docParenLSep, head docs]
|
, let line1 = docCols ColTyOpPrefix [docParenLSep, head docs]
|
||||||
in docPar
|
in docPar
|
||||||
(docAddBaseY (BrIndentSpecial 2) $ line1)
|
(docAddBaseY (BrIndentSpecial 2) $ line1)
|
||||||
(docLines $ (docAddBaseY (BrIndentSpecial 2) <$> lines) ++ [end])
|
(docLines $ docWrapNodeRest ltype lines ++ [end])
|
||||||
]
|
]
|
||||||
unboxedL = do
|
unboxedL = do
|
||||||
docs <- docSharedWrapper layoutType `mapM` typs
|
docs <- docSharedWrapper layoutType `mapM` typs
|
||||||
|
@ -460,15 +462,16 @@ layoutType ltype@(L _ typ) = docWrapNode ltype $ case typ of
|
||||||
end = docParenHashRSep
|
end = docParenHashRSep
|
||||||
docAlt
|
docAlt
|
||||||
[ docSeq $ [start]
|
[ docSeq $ [start]
|
||||||
++ List.intersperse docCommaSep docs
|
++ docWrapNodeRest ltype (List.intersperse docCommaSep docs)
|
||||||
++ [end]
|
++ [end]
|
||||||
, let
|
, let
|
||||||
line1 = docCols ColTyOpPrefix [start, head docs]
|
line1 = docCols ColTyOpPrefix [start, head docs]
|
||||||
lines = List.tail docs <&> \d ->
|
lines = List.tail docs <&> \d ->
|
||||||
docCols ColTyOpPrefix [docCommaSep, d]
|
docAddBaseY (BrIndentSpecial 2)
|
||||||
|
$ docCols ColTyOpPrefix [docCommaSep, d]
|
||||||
in docPar
|
in docPar
|
||||||
(docAddBaseY (BrIndentSpecial 2) line1)
|
(docAddBaseY (BrIndentSpecial 2) line1)
|
||||||
(docLines $ (docAddBaseY (BrIndentSpecial 2) <$> lines) ++ [end])
|
(docLines $ lines ++ [end])
|
||||||
]
|
]
|
||||||
HsOpTy{} -> -- TODO
|
HsOpTy{} -> -- TODO
|
||||||
briDocByExactInlineOnly "HsOpTy{}" ltype
|
briDocByExactInlineOnly "HsOpTy{}" ltype
|
||||||
|
|
Loading…
Reference in New Issue