From fbf19338be90b0def77f6db839eeb2c7e20ffd54 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Tue, 25 Jul 2023 13:55:01 -0400 Subject: [PATCH] remove excess doubled parens in match description Sponsored-by: Dartmouth College's DANDI project --- Utility/Matcher.hs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Utility/Matcher.hs b/Utility/Matcher.hs index 3ef8397ce6..e8bb2535d7 100644 --- a/Utility/Matcher.hs +++ b/Utility/Matcher.hs @@ -237,9 +237,20 @@ describeMatchDesc descop = unwords . go . simplify True -- (not foo) => not foo simplify _ (MatchedOpen:MatchedNot:o@(MatchedOperation {}):MatchedClose:rest) = MatchedNot:o:simplify False rest + -- ((foo bar)) => (foo bar) + simplify _ (MatchedOpen:MatchedOpen:rest) = + MatchedOpen : simplify False (removeclose (0 :: Int) rest) simplify _ (v:rest) = v : simplify False rest simplify _ v = v + removeclose n (MatchedOpen:rest) = + MatchedOpen : removeclose (n+1) rest + removeclose n (MatchedClose:rest) + | n > 0 = MatchedClose : removeclose (n-1) rest + | otherwise = rest + removeclose n (v:rest) = v : removeclose n rest + removeclose _ [] = [] + prop_matcher_sane :: Bool prop_matcher_sane = and [ all (\m -> match (\b _ -> b) m ()) (map generate evaltrue) -- 2.30.2