on master help sign in
Don't separate pattern signature from pattern (fixes #192)
81b2919Mitchell Rosen
data/examples/declaration/value/pattern-synonyms/unidirectional-out.hs+3
@@ -6,3 +6,6 @@ pattern Head' x <-
6 x : xs
6 x : xs
7
7
8pattern Simple <- "Simple"
8pattern 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
6 <- x:xs
6 <- x:xs
7
7
8pattern Simple <- "Simple"
8pattern 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'
107separatedDecls (FunctionBody n) x | Just n' <- isPragma x = n /= n'
107separatedDecls (FunctionBody n) x | Just n' <- isPragma x = n /= n'
108separatedDecls x y | Just n <- isPragma x, Just n' <- isPragma y = n /= n'
108separatedDecls x y | Just n <- isPragma x, Just n' <- isPragma y = n /= n'
109separatedDecls x (TypeSignature n') | Just n <- isPragma x = n /= n'
109separatedDecls x (TypeSignature n') | Just n <- isPragma x = n /= n'
110+separatedDecls (PatternSignature n) (Pattern n') = n /= n'
110separatedDecls _ _ = True
111separatedDecls _ _ = True
111
112
112isPragma
113isPragma
@@ -126,7 +127,9 @@ pattern TypeSignature
126 , SpecializePragma
127 , SpecializePragma
127 , SCCPragma
128 , SCCPragma
128 , AnnTypePragma
129 , AnnTypePragma
130+ , AnnValuePragma
131+ , PatternSignature
129− , AnnValuePragma :: RdrName -> HsDecl GhcPs
132+ , Pattern :: RdrName -> HsDecl GhcPs
130pattern TypeSignature n <- (sigRdrName -> Just n)
133pattern TypeSignature n <- (sigRdrName -> Just n)
131pattern FunctionBody n <- ValD NoExt (FunBind NoExt (L _ n) _ _ _)
134pattern FunctionBody n <- ValD NoExt (FunBind NoExt (L _ n) _ _ _)
132pattern InlinePragma n <- SigD NoExt (InlineSig NoExt (L _ n) _)
135pattern InlinePragma n <- SigD NoExt (InlineSig NoExt (L _ n) _)
@@ -134,6 +137,8 @@ pattern SpecializePragma n <- SigD NoExt (SpecSig NoExt (L _ n) _ _)
134pattern SCCPragma n <- SigD NoExt (SCCFunSig NoExt _ (L _ n) _)
137pattern SCCPragma n <- SigD NoExt (SCCFunSig NoExt _ (L _ n) _)
135pattern AnnTypePragma n <- AnnD NoExt (HsAnnotation NoExt _ (TypeAnnProvenance (L _ n)) _)
138pattern AnnTypePragma n <- AnnD NoExt (HsAnnotation NoExt _ (TypeAnnProvenance (L _ n)) _)
136pattern AnnValuePragma n <- AnnD NoExt (HsAnnotation NoExt _ (ValueAnnProvenance (L _ n)) _)
139pattern 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) _ _ _))
137
142
138sigRdrName :: HsDecl GhcPs -> Maybe RdrName
143sigRdrName :: HsDecl GhcPs -> Maybe RdrName
139sigRdrName (SigD NoExt (TypeSig NoExt ((L _ n):_) _)) = Just n
144sigRdrName (SigD NoExt (TypeSig NoExt ((L _ n):_) _)) = Just n