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
|
||||
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 "!")
|
||||
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
|
||||
|
|
Loading…
Reference in New Issue