diff --git a/src-literatetests/tests.blt b/src-literatetests/tests.blt index 1f2ab6e..2566e06 100644 --- a/src-literatetests/tests.blt +++ b/src-literatetests/tests.blt @@ -1017,6 +1017,15 @@ func = do | otherwise -> max (defLen - 0.05) (defLen * 0.95) -- TODO return True +#test issue 49 + +foo n = case n of + 1 -> True + -1 -> False + +bar n = case n of + (-2, -2) -> (-2, -2) + ############################################################################### ############################################################################### diff --git a/src/Language/Haskell/Brittany/Internal/Layouters/Pattern.hs b/src/Language/Haskell/Brittany/Internal/Layouters/Pattern.hs index 40624c2..b36fcaa 100644 --- a/src/Language/Haskell/Brittany/Internal/Layouters/Pattern.hs +++ b/src/Language/Haskell/Brittany/Internal/Layouters/Pattern.hs @@ -131,8 +131,12 @@ layoutPat lpat@(L _ pat) = docWrapNode lpat $ case pat of wrapPatPrepend pat1 (docLit $ Text.pack "!") LazyPat pat1 -> do wrapPatPrepend pat1 (docLit $ Text.pack "~") - NPat llit@(L _ (OverLit olit _ _ _)) _ _ _ -> do - fmap Seq.singleton $ docWrapNode llit $ allocateNode $ overLitValBriDoc olit + NPat llit@(L _ (OverLit olit _ _ _)) mNegative _ _ -> do + litDoc <- docWrapNode llit $ allocateNode $ overLitValBriDoc olit + negDoc <- docLit $ Text.pack "-" + pure $ case mNegative of + Just{} -> Seq.fromList [negDoc, litDoc] + Nothing -> Seq.singleton litDoc -- if MIN_VERSION_ghc(8,0,0) -- VarPat n -> return $ stringLayouter lpat $ lrdrNameToText n