summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorMatthew Kennerly <mtkennerly@gmail.com>2017-11-28 06:44:43 -0500
committerJasper Van der Jeugt <jaspervdj@gmail.com>2017-11-28 12:44:43 +0100
commit3a5ec324a426f0207ae895471b5c52d21f893859 (patch)
tree3bdf5bef8a415912cc636441e6dab11d2828bea1
parent3bfd8be6e1c6a5e90b1cdf9ee5723e93de26d409 (diff)
downloadstylish-haskell-3a5ec324a426f0207ae895471b5c52d21f893859.tar.gz
Avoid unpaired parenthesis when import doesn't specify any items
Fix #185
-rw-r--r--lib/Language/Haskell/Stylish/Step/Imports.hs6
-rw-r--r--tests/Language/Haskell/Stylish/Step/Imports/Tests.hs15
2 files changed, 20 insertions, 1 deletions
diff --git a/lib/Language/Haskell/Stylish/Step/Imports.hs b/lib/Language/Haskell/Stylish/Step/Imports.hs
index 2284f3d..927719c 100644
--- a/lib/Language/Haskell/Stylish/Step/Imports.hs
+++ b/lib/Language/Haskell/Stylish/Step/Imports.hs
@@ -311,7 +311,11 @@ prettyImport columns Options{..} padQualified padName longest imp
( mapSpecs
( withHead ("( " ++)
. withTail (", " ++))
- ++ [")"])
+ ++ closer)
+ where
+ closer = if null importSpecs
+ then []
+ else [")"]
paddedBase = base $ padImport $ compoundImportName imp
diff --git a/tests/Language/Haskell/Stylish/Step/Imports/Tests.hs b/tests/Language/Haskell/Stylish/Step/Imports/Tests.hs
index bc6772c..67c7c5a 100644
--- a/tests/Language/Haskell/Stylish/Step/Imports/Tests.hs
+++ b/tests/Language/Haskell/Stylish/Step/Imports/Tests.hs
@@ -52,6 +52,7 @@ tests = testGroup "Language.Haskell.Stylish.Step.Imports.Tests"
, testCase "case 23" case23
, testCase "case 24" case24
, testCase "case 25" case25
+ , testCase "case 26 (issue 185)" case26
]
@@ -663,3 +664,17 @@ case25 = expected
, ""
, "import Data.Foo (Foo (Foo,Bar), Goo(Goo))"
]
+
+
+--------------------------------------------------------------------------------
+case26 :: Assertion
+case26 = expected
+ @=? testStep (step 80 options ) input'
+ where
+ options = defaultOptions { listAlign = NewLine, longListAlign = Multiline }
+ input' = unlines
+ [ "import Data.List"
+ ]
+ expected = unlines
+ [ "import Data.List"
+ ]