Fix handling of comment before data-decl

`docWrapNodePrior` caused duplication of offset of `data` keyword
and of comments connected to it.
pull/259/head
Lennart Spitzner 2019-10-31 13:44:52 +01:00 committed by Evan Rutledge Borden
parent ea9d3bb5b3
commit 48490a7110
3 changed files with 12 additions and 2 deletions

View File

@ -385,6 +385,11 @@ data Foo = forall a b . (Show a, Eq b) => Bar
, bars :: b , bars :: b
} }
#test plain comment simple
-- before
data MyData = MyData Int
-- after
#test record comments simple #test record comments simple
data Foo = Bar -- a data Foo = Bar -- a
{ foo :: Baz -- b { foo :: Baz -- b

View File

@ -46,6 +46,7 @@ layoutDataDecl ltycl name (HsQTvs _ bndrs) defn = case defn of
#else #else
layoutDataDecl ltycl name (HsQTvs _ bndrs _) defn = case defn of layoutDataDecl ltycl name (HsQTvs _ bndrs _) defn = case defn of
#endif #endif
-- newtype MyType a b = MyType ..
#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */ #if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
HsDataDefn _ext NewType (L _ []) _ctype Nothing [cons] mDerivs -> case cons of HsDataDefn _ext NewType (L _ []) _ctype Nothing [cons] mDerivs -> case cons of
(L _ (ConDeclH98 _ext consName (L _ False) _qvars (Just (L _ [])) details _conDoc)) -> (L _ (ConDeclH98 _ext consName (L _ False) _qvars (Just (L _ [])) details _conDoc)) ->
@ -74,6 +75,9 @@ layoutDataDecl ltycl name (HsQTvs _ bndrs _) defn = case defn of
] ]
_ -> briDocByExactNoComment ltycl _ -> briDocByExactNoComment ltycl
-- data MyData a b
-- (zero constructors)
#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */ #if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
HsDataDefn _ext DataType (L _ lhsContext) _ctype Nothing [] mDerivs -> HsDataDefn _ext DataType (L _ lhsContext) _ctype Nothing [] mDerivs ->
#else #else
@ -90,6 +94,8 @@ layoutDataDecl ltycl name (HsQTvs _ bndrs _) defn = case defn of
, appSep tyVarLine , appSep tyVarLine
] ]
-- data MyData = MyData ..
-- data MyData = MyData { .. }
#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */ #if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
HsDataDefn _ext DataType (L _ lhsContext) _ctype Nothing [cons] mDerivs -> HsDataDefn _ext DataType (L _ lhsContext) _ctype Nothing [cons] mDerivs ->
#else #else

View File

@ -748,7 +748,6 @@ layoutTyCl ltycl@(L _loc tycl) = case tycl of
#else #else
DataDecl name tyVars dataDefn _ _ -> DataDecl name tyVars dataDefn _ _ ->
#endif #endif
docWrapNodePrior ltycl $
layoutDataDecl ltycl name tyVars dataDefn layoutDataDecl ltycl name tyVars dataDefn
_ -> briDocByExactNoComment ltycl _ -> briDocByExactNoComment ltycl