Change infix patterns to include spaces

This commit changes infix patterns to utilize `lrdrNameToTextAnn`. This
function allows the logic to avoid introspecting on the constructor
name.

Additionally this adds spaces to all infix operator pattern matches.
Previously infix symbols did not include spaces:

```
foo (x:xs) = _
```

Now they include a space

```
foo (x : xs) = _
```
pull/107/head
Evan Rutledge Borden 2018-01-15 19:11:25 -05:00
parent 778381bbb8
commit 3b0b5d3c4f
4 changed files with 10 additions and 12 deletions

View File

@ -349,11 +349,11 @@ func reallyreallyreallyreallyreallyreallyreallyreallyreallyreallylongvariable
func (A a) = a func (A a) = a
#test list constructor #test list constructor
func (x:xr) = x func (x : xr) = x
#test some other constructor symbol #test some other constructor symbol
#pending #pending
func (x:+:xr) = x func (x :+: xr) = x
#test normal infix constructor #test normal infix constructor
func (x `Foo` xr) = x func (x `Foo` xr) = x

View File

@ -123,8 +123,8 @@ func = do
#test list comprehension comment placement #test list comprehension comment placement
func = func =
[ (thing, take 10 alts) --TODO: select best ones [ (thing, take 10 alts) --TODO: select best ones
| (thing, _got, alts@(_:_)) <- nosuchFooThing | (thing, _got, alts@(_ : _)) <- nosuchFooThing
, gast <- award , gast <- award
] ]
#test if-then-else comment placement #test if-then-else comment placement

View File

@ -366,11 +366,11 @@ func reallyreallyreallyreallyreallyreallyreallyreallyreallyreallylongvariable
func (A a) = a func (A a) = a
#test list constructor #test list constructor
func (x:xr) = x func (x : xr) = x
#test some other constructor symbol #test some other constructor symbol
#pending #pending
func (x:+:xr) = x func (x :+: xr) = x
############################################################################### ###############################################################################
@ -748,7 +748,7 @@ func = do
#test list comprehension comment placement #test list comprehension comment placement
func = func =
[ (thing, take 10 alts) --TODO: select best ones [ (thing, take 10 alts) --TODO: select best ones
| (thing, _got, alts@(_:_)) <- nosuchFooThing | (thing, _got, alts@(_ : _)) <- nosuchFooThing
, gast <- award , gast <- award
] ]

View File

@ -78,12 +78,10 @@ layoutPat lpat@(L _ pat) = docWrapNode lpat $ case pat of
return $ x1 Seq.<| xR return $ x1 Seq.<| xR
ConPatIn lname (InfixCon left right) -> do ConPatIn lname (InfixCon left right) -> do
-- a :< b -> expr -- a :< b -> expr
let nameDoc = lrdrNameToText lname let nameDoc = lrdrNameToTextAnn lname
leftDoc <- colsWrapPat =<< layoutPat left leftDoc <- appSep . colsWrapPat =<< layoutPat left
rightDoc <- colsWrapPat =<< layoutPat right rightDoc <- colsWrapPat =<< layoutPat right
middle <- docLit $ if Text.any isAlpha nameDoc middle <- appSep . docLit =<< nameDoc
then Text.pack " `" <> nameDoc <> Text.pack "` "
else nameDoc
return $ Seq.empty Seq.|> leftDoc Seq.|> middle Seq.|> rightDoc return $ Seq.empty Seq.|> leftDoc Seq.|> middle Seq.|> rightDoc
ConPatIn lname (RecCon (HsRecFields [] Nothing)) -> do ConPatIn lname (RecCon (HsRecFields [] Nothing)) -> do
-- Abc{} -> expr -- Abc{} -> expr