on master help sign in
Don't separate pattern signature from pattern (fixes #192)
commit81b291929e244fa5d66b5d01ac01eca1531d0622 authorMitchell Rosen <mitchellwrosen@gmail.com> dateSat 27 Jul 2019, 18:43 (7 years ago) parent004c8d0
3 files changed+12−1
data/examples/declaration/value/pattern-synonyms/unidirectional-out.hs+3 data/examples/declaration/value/pattern-synonyms/unidirectional.hs+3 src/Ormolu/Printer/Meat/Declaration.hs+6−1
data/examples/declaration/value/pattern-synonyms/unidirectional-out.hs+3
@@ -6,3 +6,6 @@ pattern Head' x <-
66 x : xs
77
88pattern Simple <- "Simple"
9+
10+pattern WithTypeSig :: String
11+pattern WithTypeSig <- "WithTypeSig"
data/examples/declaration/value/pattern-synonyms/unidirectional.hs+3
@@ -6,3 +6,6 @@ pattern Head' x
66 <- x:xs
77
88pattern Simple <- "Simple"
9+
10+pattern WithTypeSig :: String
11+pattern WithTypeSig <- "WithTypeSig"
src/Ormolu/Printer/Meat/Declaration.hs+6−1
@@ -107,6 +107,7 @@ separatedDecls (TypeSignature n) (FunctionBody n') = n /= n'
107107separatedDecls (FunctionBody n) x | Just n' <- isPragma x = n /= n'
108108separatedDecls x y | Just n <- isPragma x, Just n' <- isPragma y = n /= n'
109109separatedDecls x (TypeSignature n') | Just n <- isPragma x = n /= n'
110+separatedDecls (PatternSignature n) (Pattern n') = n /= n'
110111separatedDecls _ _ = True
111112
112113isPragma
@@ -126,7 +127,9 @@ pattern TypeSignature
126127 , SpecializePragma
127128 , SCCPragma
128129 , AnnTypePragma
129− , AnnValuePragma :: RdrName -> HsDecl GhcPs
130+ , AnnValuePragma
131+ , PatternSignature
132+ , Pattern :: RdrName -> HsDecl GhcPs
130133pattern TypeSignature n <- (sigRdrName -> Just n)
131134pattern FunctionBody n <- ValD NoExt (FunBind NoExt (L _ n) _ _ _)
132135pattern InlinePragma n <- SigD NoExt (InlineSig NoExt (L _ n) _)
@@ -134,6 +137,8 @@ pattern SpecializePragma n <- SigD NoExt (SpecSig NoExt (L _ n) _ _)
134137pattern SCCPragma n <- SigD NoExt (SCCFunSig NoExt _ (L _ n) _)
135138pattern AnnTypePragma n <- AnnD NoExt (HsAnnotation NoExt _ (TypeAnnProvenance (L _ n)) _)
136139pattern AnnValuePragma n <- AnnD NoExt (HsAnnotation NoExt _ (ValueAnnProvenance (L _ n)) _)
140+pattern PatternSignature n <- SigD NoExt (PatSynSig NoExt ((L _ n):_) _)
141+pattern Pattern n <- ValD NoExt (PatSynBind NoExt (PSB _ (L _ n) _ _ _))
137142
138143sigRdrName :: HsDecl GhcPs -> Maybe RdrName
139144sigRdrName (SigD NoExt (TypeSig NoExt ((L _ n):_) _)) = Just n