Fix negative literals in patterns (fixes #49)
parent
baac0a6a7e
commit
fba8ad1a99
|
@ -1017,6 +1017,15 @@ func = do
|
||||||
| otherwise -> max (defLen - 0.05) (defLen * 0.95) -- TODO
|
| otherwise -> max (defLen - 0.05) (defLen * 0.95) -- TODO
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
#test issue 49
|
||||||
|
|
||||||
|
foo n = case n of
|
||||||
|
1 -> True
|
||||||
|
-1 -> False
|
||||||
|
|
||||||
|
bar n = case n of
|
||||||
|
(-2, -2) -> (-2, -2)
|
||||||
|
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
|
@ -131,8 +131,12 @@ layoutPat lpat@(L _ pat) = docWrapNode lpat $ case pat of
|
||||||
wrapPatPrepend pat1 (docLit $ Text.pack "!")
|
wrapPatPrepend pat1 (docLit $ Text.pack "!")
|
||||||
LazyPat pat1 -> do
|
LazyPat pat1 -> do
|
||||||
wrapPatPrepend pat1 (docLit $ Text.pack "~")
|
wrapPatPrepend pat1 (docLit $ Text.pack "~")
|
||||||
NPat llit@(L _ (OverLit olit _ _ _)) _ _ _ -> do
|
NPat llit@(L _ (OverLit olit _ _ _)) mNegative _ _ -> do
|
||||||
fmap Seq.singleton $ docWrapNode llit $ allocateNode $ overLitValBriDoc olit
|
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)
|
-- if MIN_VERSION_ghc(8,0,0)
|
||||||
-- VarPat n -> return $ stringLayouter lpat $ lrdrNameToText n
|
-- VarPat n -> return $ stringLayouter lpat $ lrdrNameToText n
|
||||||
|
|
Loading…
Reference in New Issue