From ccb2598e6690a3256e7d8cc72474d9a92cf28392 Mon Sep 17 00:00:00 2001 From: Alan Zimmerman Date: Tue, 14 May 2019 23:15:49 +0200 Subject: [PATCH 01/14] Upgrade to hlint 2.1.19 Expecting GHC 8.2.2 version to fail. --- stack-8.2.2.yaml | 2 +- stack-8.4.2.yaml | 2 +- stack-8.4.3.yaml | 2 +- stack-8.4.4.yaml | 2 +- stack-8.6.1.yaml | 2 +- stack-8.6.2.yaml | 2 +- stack-8.6.3.yaml | 2 +- stack-8.6.4.yaml | 2 +- stack-8.6.5.yaml | 2 +- stack.yaml | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/stack-8.2.2.yaml b/stack-8.2.2.yaml index 5eb7eed62..4865fbd55 100644 --- a/stack-8.2.2.yaml +++ b/stack-8.2.2.yaml @@ -25,7 +25,7 @@ extra-deps: - haskell-lsp-types-0.12.1.0 - haskell-src-exts-1.21.0 - haskell-src-exts-util-0.2.5 -- hlint-2.1.17 +- hlint-2.1.19 - hoogle-5.0.17.6 - hsimport-0.8.8 - lsp-test-0.5.2.2 diff --git a/stack-8.4.2.yaml b/stack-8.4.2.yaml index 22c2be88e..69d0a3665 100644 --- a/stack-8.4.2.yaml +++ b/stack-8.4.2.yaml @@ -23,7 +23,7 @@ extra-deps: - haskell-lsp-types-0.12.1.0 - haskell-src-exts-1.21.0 - haskell-src-exts-util-0.2.5 -- hlint-2.1.17 +- hlint-2.1.19 - hoogle-5.0.17.6 - hsimport-0.8.8 - lsp-test-0.5.2.2 diff --git a/stack-8.4.3.yaml b/stack-8.4.3.yaml index 12830ad96..67fae84c8 100644 --- a/stack-8.4.3.yaml +++ b/stack-8.4.3.yaml @@ -22,7 +22,7 @@ extra-deps: - haskell-lsp-types-0.12.1.0 - haskell-src-exts-1.21.0 - haskell-src-exts-util-0.2.5 -- hlint-2.1.17 +- hlint-2.1.19 - hoogle-5.0.17.6 - hsimport-0.8.8 - lsp-test-0.5.2.2 diff --git a/stack-8.4.4.yaml b/stack-8.4.4.yaml index 09605096c..08f607f6a 100644 --- a/stack-8.4.4.yaml +++ b/stack-8.4.4.yaml @@ -22,7 +22,7 @@ extra-deps: - haskell-lsp-types-0.12.1.0 - haskell-src-exts-1.21.0 - haskell-src-exts-util-0.2.5 -- hlint-2.1.17 +- hlint-2.1.19 - hoogle-5.0.17.6 - hsimport-0.8.8 - lsp-test-0.5.2.2 diff --git a/stack-8.6.1.yaml b/stack-8.6.1.yaml index 7e5b261cf..2912b2daf 100644 --- a/stack-8.6.1.yaml +++ b/stack-8.6.1.yaml @@ -24,7 +24,7 @@ extra-deps: - haskell-lsp-types-0.12.1.0 - haskell-src-exts-1.21.0 - haskell-src-exts-util-0.2.5 -- hlint-2.1.17 +- hlint-2.1.19 - hoogle-5.0.17.6 - hsimport-0.8.8 - lsp-test-0.5.2.2 diff --git a/stack-8.6.2.yaml b/stack-8.6.2.yaml index 414af8acf..7cb023840 100644 --- a/stack-8.6.2.yaml +++ b/stack-8.6.2.yaml @@ -20,7 +20,7 @@ extra-deps: - haskell-lsp-types-0.12.1.0 - haskell-src-exts-1.21.0 - haskell-src-exts-util-0.2.5 -- hlint-2.1.17 +- hlint-2.1.19 - hoogle-5.0.17.6 - hsimport-0.8.8 - lsp-test-0.5.2.2 diff --git a/stack-8.6.3.yaml b/stack-8.6.3.yaml index f0126ce4e..c7adde956 100644 --- a/stack-8.6.3.yaml +++ b/stack-8.6.3.yaml @@ -20,7 +20,7 @@ extra-deps: - haskell-lsp-types-0.12.1.0 - haskell-src-exts-1.21.0 - haskell-src-exts-util-0.2.5 -- hlint-2.1.17 +- hlint-2.1.19 - hoogle-5.0.17.6 - hsimport-0.8.8 - lsp-test-0.5.2.2 diff --git a/stack-8.6.4.yaml b/stack-8.6.4.yaml index 9bc25f676..5626c1e14 100644 --- a/stack-8.6.4.yaml +++ b/stack-8.6.4.yaml @@ -19,7 +19,7 @@ extra-deps: - haskell-lsp-0.12.1.0 - haskell-lsp-types-0.12.1.0 - haskell-src-exts-1.21.0 -- hlint-2.1.17 +- hlint-2.1.19 - hoogle-5.0.17.6 - hsimport-0.8.8 - lsp-test-0.5.2.2 diff --git a/stack-8.6.5.yaml b/stack-8.6.5.yaml index 29017335e..467124f1e 100644 --- a/stack-8.6.5.yaml +++ b/stack-8.6.5.yaml @@ -21,7 +21,7 @@ extra-deps: - haddock-api-2.22.0 - haskell-lsp-0.12.1.0 - haskell-lsp-types-0.12.1.0 -- hlint-2.1.17 +- hlint-2.1.19 - hsimport-0.8.8 - lsp-test-0.5.2.2 - monad-dijkstra-0.1.1.2@rev:1 diff --git a/stack.yaml b/stack.yaml index 29017335e..467124f1e 100644 --- a/stack.yaml +++ b/stack.yaml @@ -21,7 +21,7 @@ extra-deps: - haddock-api-2.22.0 - haskell-lsp-0.12.1.0 - haskell-lsp-types-0.12.1.0 -- hlint-2.1.17 +- hlint-2.1.19 - hsimport-0.8.8 - lsp-test-0.5.2.2 - monad-dijkstra-0.1.1.2@rev:1 From 0d4496dfeaa3bc85efb558def03d0f22e704b483 Mon Sep 17 00:00:00 2001 From: Alan Zimmerman Date: Wed, 15 May 2019 21:33:30 +0200 Subject: [PATCH 02/14] Trying hline-2.1.20 There is a problem in the unit tests, getting feedback for a haskell file with a parse error in it. See https://github.com/ndmitchell/hlint/issues/637 --- stack-8.2.2.yaml | 3 ++- stack-8.4.2.yaml | 3 ++- stack-8.4.3.yaml | 3 ++- stack-8.4.4.yaml | 3 ++- stack-8.6.1.yaml | 3 ++- stack-8.6.2.yaml | 3 ++- stack-8.6.3.yaml | 3 ++- stack-8.6.4.yaml | 3 ++- stack-8.6.5.yaml | 2 +- stack.yaml | 2 +- test/unit/ApplyRefactPluginSpec.hs | 5 +++++ 11 files changed, 23 insertions(+), 10 deletions(-) diff --git a/stack-8.2.2.yaml b/stack-8.2.2.yaml index 4865fbd55..cf87f712e 100644 --- a/stack-8.2.2.yaml +++ b/stack-8.2.2.yaml @@ -19,13 +19,14 @@ extra-deps: - czipwith-1.0.1.0 - floskell-0.10.0 - ghc-exactprint-0.5.8.2 +- ghc-lib-parser-0.20190423 - haddock-api-2.18.1 - haddock-library-1.4.4 - haskell-lsp-0.12.1.0 - haskell-lsp-types-0.12.1.0 - haskell-src-exts-1.21.0 - haskell-src-exts-util-0.2.5 -- hlint-2.1.19 +- hlint-2.1.20 - hoogle-5.0.17.6 - hsimport-0.8.8 - lsp-test-0.5.2.2 diff --git a/stack-8.4.2.yaml b/stack-8.4.2.yaml index 69d0a3665..1705de04d 100644 --- a/stack-8.4.2.yaml +++ b/stack-8.4.2.yaml @@ -17,13 +17,14 @@ extra-deps: - constrained-dynamic-0.1.0.0 - floskell-0.10.0 - ghc-exactprint-0.5.8.2 +- ghc-lib-parser-0.20190423 - haddock-api-2.20.0 - haddock-library-1.6.0 - haskell-lsp-0.12.1.0 - haskell-lsp-types-0.12.1.0 - haskell-src-exts-1.21.0 - haskell-src-exts-util-0.2.5 -- hlint-2.1.19 +- hlint-2.1.20 - hoogle-5.0.17.6 - hsimport-0.8.8 - lsp-test-0.5.2.2 diff --git a/stack-8.4.3.yaml b/stack-8.4.3.yaml index 67fae84c8..a805c4945 100644 --- a/stack-8.4.3.yaml +++ b/stack-8.4.3.yaml @@ -16,13 +16,14 @@ extra-deps: - constrained-dynamic-0.1.0.0 - floskell-0.10.0 - ghc-exactprint-0.5.8.2 +- ghc-lib-parser-0.20190423 - haddock-api-2.20.0 - haddock-library-1.6.0 - haskell-lsp-0.12.1.0 - haskell-lsp-types-0.12.1.0 - haskell-src-exts-1.21.0 - haskell-src-exts-util-0.2.5 -- hlint-2.1.19 +- hlint-2.1.20 - hoogle-5.0.17.6 - hsimport-0.8.8 - lsp-test-0.5.2.2 diff --git a/stack-8.4.4.yaml b/stack-8.4.4.yaml index 08f607f6a..d1134f5d5 100644 --- a/stack-8.4.4.yaml +++ b/stack-8.4.4.yaml @@ -16,13 +16,14 @@ extra-deps: - constrained-dynamic-0.1.0.0 - floskell-0.10.0 - ghc-exactprint-0.5.8.2 +- ghc-lib-parser-0.20190423 - haddock-api-2.20.0 - haddock-library-1.6.0 - haskell-lsp-0.12.1.0 - haskell-lsp-types-0.12.1.0 - haskell-src-exts-1.21.0 - haskell-src-exts-util-0.2.5 -- hlint-2.1.19 +- hlint-2.1.20 - hoogle-5.0.17.6 - hsimport-0.8.8 - lsp-test-0.5.2.2 diff --git a/stack-8.6.1.yaml b/stack-8.6.1.yaml index 2912b2daf..efd439ae3 100644 --- a/stack-8.6.1.yaml +++ b/stack-8.6.1.yaml @@ -19,12 +19,13 @@ extra-deps: - czipwith-1.0.1.1 - data-tree-print-0.1.0.2 - floskell-0.10.0 +- ghc-lib-parser-0.20190423 - haddock-api-2.21.0 - haskell-lsp-0.12.1.0 - haskell-lsp-types-0.12.1.0 - haskell-src-exts-1.21.0 - haskell-src-exts-util-0.2.5 -- hlint-2.1.19 +- hlint-2.1.20 - hoogle-5.0.17.6 - hsimport-0.8.8 - lsp-test-0.5.2.2 diff --git a/stack-8.6.2.yaml b/stack-8.6.2.yaml index 7cb023840..75c022c2a 100644 --- a/stack-8.6.2.yaml +++ b/stack-8.6.2.yaml @@ -15,12 +15,13 @@ extra-deps: - cabal-plan-0.4.0.0 - constrained-dynamic-0.1.0.0 - floskell-0.10.0 +- ghc-lib-parser-0.20190423 - haddock-api-2.21.0 - haskell-lsp-0.12.1.0 - haskell-lsp-types-0.12.1.0 - haskell-src-exts-1.21.0 - haskell-src-exts-util-0.2.5 -- hlint-2.1.19 +- hlint-2.1.20 - hoogle-5.0.17.6 - hsimport-0.8.8 - lsp-test-0.5.2.2 diff --git a/stack-8.6.3.yaml b/stack-8.6.3.yaml index c7adde956..5aa242602 100644 --- a/stack-8.6.3.yaml +++ b/stack-8.6.3.yaml @@ -15,12 +15,13 @@ extra-deps: - cabal-plan-0.4.0.0 - constrained-dynamic-0.1.0.0 - floskell-0.10.0 +- ghc-lib-parser-0.20190423 - haddock-api-2.21.0 - haskell-lsp-0.12.1.0 - haskell-lsp-types-0.12.1.0 - haskell-src-exts-1.21.0 - haskell-src-exts-util-0.2.5 -- hlint-2.1.19 +- hlint-2.1.20 - hoogle-5.0.17.6 - hsimport-0.8.8 - lsp-test-0.5.2.2 diff --git a/stack-8.6.4.yaml b/stack-8.6.4.yaml index 5626c1e14..62e18d6a1 100644 --- a/stack-8.6.4.yaml +++ b/stack-8.6.4.yaml @@ -15,11 +15,12 @@ extra-deps: - cabal-plan-0.4.0.0 - constrained-dynamic-0.1.0.0 - floskell-0.10.0 +- ghc-lib-parser-0.20190423 - haddock-api-2.22.0 - haskell-lsp-0.12.1.0 - haskell-lsp-types-0.12.1.0 - haskell-src-exts-1.21.0 -- hlint-2.1.19 +- hlint-2.1.20 - hoogle-5.0.17.6 - hsimport-0.8.8 - lsp-test-0.5.2.2 diff --git a/stack-8.6.5.yaml b/stack-8.6.5.yaml index 467124f1e..ed6b8a913 100644 --- a/stack-8.6.5.yaml +++ b/stack-8.6.5.yaml @@ -21,7 +21,7 @@ extra-deps: - haddock-api-2.22.0 - haskell-lsp-0.12.1.0 - haskell-lsp-types-0.12.1.0 -- hlint-2.1.19 +- hlint-2.1.20 - hsimport-0.8.8 - lsp-test-0.5.2.2 - monad-dijkstra-0.1.1.2@rev:1 diff --git a/stack.yaml b/stack.yaml index 467124f1e..ed6b8a913 100644 --- a/stack.yaml +++ b/stack.yaml @@ -21,7 +21,7 @@ extra-deps: - haddock-api-2.22.0 - haskell-lsp-0.12.1.0 - haskell-lsp-types-0.12.1.0 -- hlint-2.1.19 +- hlint-2.1.20 - hsimport-0.8.8 - lsp-test-0.5.2.2 - monad-dijkstra-0.1.1.2@rev:1 diff --git a/test/unit/ApplyRefactPluginSpec.hs b/test/unit/ApplyRefactPluginSpec.hs index ae788a2d9..6c5c9befd 100644 --- a/test/unit/ApplyRefactPluginSpec.hs +++ b/test/unit/ApplyRefactPluginSpec.hs @@ -3,6 +3,7 @@ {-# LANGUAGE OverloadedStrings #-} module ApplyRefactPluginSpec where +import Control.Monad.IO.Class import qualified Data.HashMap.Strict as H import qualified Data.Text as T import Haskell.Ide.Engine.Plugin.ApplyRefact @@ -85,7 +86,9 @@ applyRefactSpec = do "Redundant bracket\nFound:\n (x + 1)\nWhy not:\n x + 1\n" Nothing ]} + liftIO $ putStrLn "returns hints as diagnostics:1" testCommand testPlugins act "applyrefact" "lint" arg res + liftIO $ putStrLn "returns hints as diagnostics:2" -- --------------------------------- @@ -115,7 +118,9 @@ applyRefactSpec = do , _message = "Parse error: :~:\n import Data.Type.Equality ((:~:) (..), (:~~:) (..))\n \n> data instance Sing (z :: (a :~: b)) where\n SRefl :: Sing Refl +\n\n" , _relatedInformation = Nothing }]} #endif + liftIO $ putStrLn "returns hlint parse error as DsInfo ignored diagnostic:1" testCommand testPlugins act "applyrefact" "lint" arg res + liftIO $ putStrLn "returns hlint parse error as DsInfo ignored diagnostic:2" -- --------------------------------- From 8a7a1b17338cf60e25ba32866762cb82282d6b88 Mon Sep 17 00:00:00 2001 From: Alan Zimmerman Date: Fri, 17 May 2019 21:53:10 +0200 Subject: [PATCH 03/14] Trying to bump ghc-lib-parser Still get segfault --- stack.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/stack.yaml b/stack.yaml index ed6b8a913..75b98030f 100644 --- a/stack.yaml +++ b/stack.yaml @@ -18,6 +18,7 @@ extra-deps: - deque-0.2.7 - floskell-0.10.0 - ghc-exactprint-0.5.8.2 +- ghc-lib-parser-0.20190516 - haddock-api-2.22.0 - haskell-lsp-0.12.1.0 - haskell-lsp-types-0.12.1.0 From 074db25d55f4298e248d619e0a2ebd9b6a95cb91 Mon Sep 17 00:00:00 2001 From: Alan Zimmerman Date: Mon, 20 May 2019 11:24:59 +0200 Subject: [PATCH 04/14] WIP in integrating new hlint It still fails, now hanging on the call to applyRefactorings. --- src/Haskell/Ide/Engine/Plugin/ApplyRefact.hs | 3 +++ stack.yaml | 2 +- test/functional/FunctionalCodeActionsSpec.hs | 7 +++++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/Haskell/Ide/Engine/Plugin/ApplyRefact.hs b/src/Haskell/Ide/Engine/Plugin/ApplyRefact.hs index 3b7cd5e02..1c638e391 100644 --- a/src/Haskell/Ide/Engine/Plugin/ApplyRefact.hs +++ b/src/Haskell/Ide/Engine/Plugin/ApplyRefact.hs @@ -7,6 +7,7 @@ module Haskell.Ide.Engine.Plugin.ApplyRefact where import Control.Arrow import Control.Exception ( IOException , ErrorCall + , SomeException -- AZ:temporary , Handler(..) , catches , try @@ -257,7 +258,9 @@ applyHint fp mhint fileMap = do res <- liftIO $ (Right <$> applyRefactorings Nothing commands fp) `catches` [ Handler $ \e -> return (Left (show (e :: IOException))) , Handler $ \e -> return (Left (show (e :: ErrorCall))) + , Handler $ \e -> return (Left (show (e :: SomeException))) -- AZ:temporary ] + liftIO $ logm $ "applyHint:res=" ++ show res case res of Right appliedFile -> do diff <- ExceptT $ Right <$> makeDiffResult fp (T.pack appliedFile) fileMap diff --git a/stack.yaml b/stack.yaml index 75b98030f..a22defdd9 100644 --- a/stack.yaml +++ b/stack.yaml @@ -22,7 +22,7 @@ extra-deps: - haddock-api-2.22.0 - haskell-lsp-0.12.1.0 - haskell-lsp-types-0.12.1.0 -- hlint-2.1.20 +- hlint-2.1.21 - hsimport-0.8.8 - lsp-test-0.5.2.2 - monad-dijkstra-0.1.1.2@rev:1 diff --git a/test/functional/FunctionalCodeActionsSpec.hs b/test/functional/FunctionalCodeActionsSpec.hs index c717a521b..2cf7a158c 100644 --- a/test/functional/FunctionalCodeActionsSpec.hs +++ b/test/functional/FunctionalCodeActionsSpec.hs @@ -28,6 +28,7 @@ spec = describe "code actions" $ do doc <- openDoc "ApplyRefact2.hs" "haskell" diags@(reduceDiag:_) <- waitForDiagnostics + liftIO $ putStrLn "a1" liftIO $ do length diags `shouldBe` 2 @@ -35,16 +36,22 @@ spec = describe "code actions" $ do reduceDiag ^. L.severity `shouldBe` Just DsInfo reduceDiag ^. L.code `shouldBe` Just "Eta reduce" reduceDiag ^. L.source `shouldBe` Just "hlint" + liftIO $ putStrLn "a2" (CACodeAction ca:_) <- getAllCodeActions doc + liftIO $ putStrLn "a3" -- Evaluate became redundant id in later hlint versions liftIO $ ["Apply hint:Redundant id", "Apply hint:Evaluate"] `shouldContain` [ca ^. L.title] + liftIO $ putStrLn "a4" executeCodeAction ca + liftIO $ putStrLn "a5" contents <- getDocumentEdit doc + liftIO $ putStrLn "a6" liftIO $ contents `shouldBe` "main = undefined\nfoo x = x\n" + liftIO $ putStrLn "a7" noDiagnostics From 785e77699be8f4c637908812a7c77690068950ca Mon Sep 17 00:00:00 2001 From: Alan Zimmerman Date: Mon, 20 May 2019 11:26:57 +0200 Subject: [PATCH 05/14] Add test utility script to run the failing test --- test.sh | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100755 test.sh diff --git a/test.sh b/test.sh new file mode 100755 index 000000000..f09d9c0be --- /dev/null +++ b/test.sh @@ -0,0 +1,15 @@ +#!/bin/sh + +# stack test haskell-ide-engine:func-test --test-arguments "--failure-report .hspec-failures --rerun" +# stack test haskell-ide-engine:func-test --test-arguments "--match \"completes ghc options pragma values\"" +#stack test haskell-ide-engine:func-test --test-arguments "--match \"behaviour on malformed projects\"" + +# stack --stack-yaml=stack-8.6.4.yaml test haskell-ide-engine:func-test --test-arguments "--match \"completes imports\"" +# stack --stack-yaml=stack.yaml test haskell-ide-engine:func-test --test-arguments "--match \"completes pragmas no close\"" + +# stack --stack-yaml=stack-8.6.4.yaml test haskell-ide-engine:unit-test --test-arguments "--match \"ApplyRefactPlugin\"" + +stack --stack-yaml=stack.yaml test haskell-ide-engine:func-test --test-arguments "--match \"/FunctionalCodeActions/code actions/hlint suggestions/provides 3.8 code actions/\"" + + # To rerun use: --match "/FunctionalCodeActions/code actions/hlint suggestions/falls back to pre 3.8 code actions/" + # To rerun use: --match "/FunctionalCodeActions/code actions/hlint suggestions/runs diagnostics on save/" From 277dd0150886d007f33e588d77ae95a551239fd2 Mon Sep 17 00:00:00 2001 From: Alan Zimmerman Date: Thu, 23 May 2019 20:49:50 +0200 Subject: [PATCH 06/14] Bump ghc-lib-parser, now passes tests --- stack.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stack.yaml b/stack.yaml index a22defdd9..ef6dc86b5 100644 --- a/stack.yaml +++ b/stack.yaml @@ -18,7 +18,7 @@ extra-deps: - deque-0.2.7 - floskell-0.10.0 - ghc-exactprint-0.5.8.2 -- ghc-lib-parser-0.20190516 +- ghc-lib-parser-0.20190523 - haddock-api-2.22.0 - haskell-lsp-0.12.1.0 - haskell-lsp-types-0.12.1.0 From 60ff5f12685f168bef330be6ef2db42ae2c4b381 Mon Sep 17 00:00:00 2001 From: Alan Zimmerman Date: Sat, 25 May 2019 12:45:39 +0200 Subject: [PATCH 07/14] Use hlint-2.1.22 This uses ghc-lib-parser-0.20190523, which avoids a segfault present in prior versions when used with haskell-ide-engine. --- stack-8.2.2.yaml | 4 ++-- stack-8.4.2.yaml | 4 ++-- stack-8.4.3.yaml | 4 ++-- stack-8.4.4.yaml | 4 ++-- stack-8.6.1.yaml | 4 ++-- stack-8.6.2.yaml | 4 ++-- stack-8.6.3.yaml | 4 ++-- stack-8.6.4.yaml | 4 ++-- stack-8.6.5.yaml | 3 ++- stack.yaml | 2 +- test.sh | 4 +++- test/unit/ApplyRefactPluginSpec.hs | 8 ++++---- 12 files changed, 26 insertions(+), 23 deletions(-) diff --git a/stack-8.2.2.yaml b/stack-8.2.2.yaml index cf87f712e..9ccde436b 100644 --- a/stack-8.2.2.yaml +++ b/stack-8.2.2.yaml @@ -19,14 +19,14 @@ extra-deps: - czipwith-1.0.1.0 - floskell-0.10.0 - ghc-exactprint-0.5.8.2 -- ghc-lib-parser-0.20190423 +- ghc-lib-parser-0.20190523 - haddock-api-2.18.1 - haddock-library-1.4.4 - haskell-lsp-0.12.1.0 - haskell-lsp-types-0.12.1.0 - haskell-src-exts-1.21.0 - haskell-src-exts-util-0.2.5 -- hlint-2.1.20 +- hlint-2.1.22 - hoogle-5.0.17.6 - hsimport-0.8.8 - lsp-test-0.5.2.2 diff --git a/stack-8.4.2.yaml b/stack-8.4.2.yaml index 1705de04d..b97487d58 100644 --- a/stack-8.4.2.yaml +++ b/stack-8.4.2.yaml @@ -17,14 +17,14 @@ extra-deps: - constrained-dynamic-0.1.0.0 - floskell-0.10.0 - ghc-exactprint-0.5.8.2 -- ghc-lib-parser-0.20190423 +- ghc-lib-parser-0.20190523 - haddock-api-2.20.0 - haddock-library-1.6.0 - haskell-lsp-0.12.1.0 - haskell-lsp-types-0.12.1.0 - haskell-src-exts-1.21.0 - haskell-src-exts-util-0.2.5 -- hlint-2.1.20 +- hlint-2.1.22 - hoogle-5.0.17.6 - hsimport-0.8.8 - lsp-test-0.5.2.2 diff --git a/stack-8.4.3.yaml b/stack-8.4.3.yaml index a805c4945..35ab39a37 100644 --- a/stack-8.4.3.yaml +++ b/stack-8.4.3.yaml @@ -16,14 +16,14 @@ extra-deps: - constrained-dynamic-0.1.0.0 - floskell-0.10.0 - ghc-exactprint-0.5.8.2 -- ghc-lib-parser-0.20190423 +- ghc-lib-parser-0.20190523 - haddock-api-2.20.0 - haddock-library-1.6.0 - haskell-lsp-0.12.1.0 - haskell-lsp-types-0.12.1.0 - haskell-src-exts-1.21.0 - haskell-src-exts-util-0.2.5 -- hlint-2.1.20 +- hlint-2.1.22 - hoogle-5.0.17.6 - hsimport-0.8.8 - lsp-test-0.5.2.2 diff --git a/stack-8.4.4.yaml b/stack-8.4.4.yaml index d1134f5d5..507c96b24 100644 --- a/stack-8.4.4.yaml +++ b/stack-8.4.4.yaml @@ -16,14 +16,14 @@ extra-deps: - constrained-dynamic-0.1.0.0 - floskell-0.10.0 - ghc-exactprint-0.5.8.2 -- ghc-lib-parser-0.20190423 +- ghc-lib-parser-0.20190523 - haddock-api-2.20.0 - haddock-library-1.6.0 - haskell-lsp-0.12.1.0 - haskell-lsp-types-0.12.1.0 - haskell-src-exts-1.21.0 - haskell-src-exts-util-0.2.5 -- hlint-2.1.20 +- hlint-2.1.22 - hoogle-5.0.17.6 - hsimport-0.8.8 - lsp-test-0.5.2.2 diff --git a/stack-8.6.1.yaml b/stack-8.6.1.yaml index efd439ae3..26260e713 100644 --- a/stack-8.6.1.yaml +++ b/stack-8.6.1.yaml @@ -19,13 +19,13 @@ extra-deps: - czipwith-1.0.1.1 - data-tree-print-0.1.0.2 - floskell-0.10.0 -- ghc-lib-parser-0.20190423 +- ghc-lib-parser-0.20190523 - haddock-api-2.21.0 - haskell-lsp-0.12.1.0 - haskell-lsp-types-0.12.1.0 - haskell-src-exts-1.21.0 - haskell-src-exts-util-0.2.5 -- hlint-2.1.20 +- hlint-2.1.22 - hoogle-5.0.17.6 - hsimport-0.8.8 - lsp-test-0.5.2.2 diff --git a/stack-8.6.2.yaml b/stack-8.6.2.yaml index 75c022c2a..3f8dcb937 100644 --- a/stack-8.6.2.yaml +++ b/stack-8.6.2.yaml @@ -15,13 +15,13 @@ extra-deps: - cabal-plan-0.4.0.0 - constrained-dynamic-0.1.0.0 - floskell-0.10.0 -- ghc-lib-parser-0.20190423 +- ghc-lib-parser-0.20190523 - haddock-api-2.21.0 - haskell-lsp-0.12.1.0 - haskell-lsp-types-0.12.1.0 - haskell-src-exts-1.21.0 - haskell-src-exts-util-0.2.5 -- hlint-2.1.20 +- hlint-2.1.22 - hoogle-5.0.17.6 - hsimport-0.8.8 - lsp-test-0.5.2.2 diff --git a/stack-8.6.3.yaml b/stack-8.6.3.yaml index 5aa242602..8778f2fc4 100644 --- a/stack-8.6.3.yaml +++ b/stack-8.6.3.yaml @@ -15,13 +15,13 @@ extra-deps: - cabal-plan-0.4.0.0 - constrained-dynamic-0.1.0.0 - floskell-0.10.0 -- ghc-lib-parser-0.20190423 +- ghc-lib-parser-0.20190523 - haddock-api-2.21.0 - haskell-lsp-0.12.1.0 - haskell-lsp-types-0.12.1.0 - haskell-src-exts-1.21.0 - haskell-src-exts-util-0.2.5 -- hlint-2.1.20 +- hlint-2.1.22 - hoogle-5.0.17.6 - hsimport-0.8.8 - lsp-test-0.5.2.2 diff --git a/stack-8.6.4.yaml b/stack-8.6.4.yaml index 62e18d6a1..411c019ea 100644 --- a/stack-8.6.4.yaml +++ b/stack-8.6.4.yaml @@ -15,12 +15,12 @@ extra-deps: - cabal-plan-0.4.0.0 - constrained-dynamic-0.1.0.0 - floskell-0.10.0 -- ghc-lib-parser-0.20190423 +- ghc-lib-parser-0.20190523 - haddock-api-2.22.0 - haskell-lsp-0.12.1.0 - haskell-lsp-types-0.12.1.0 - haskell-src-exts-1.21.0 -- hlint-2.1.20 +- hlint-2.1.22 - hoogle-5.0.17.6 - hsimport-0.8.8 - lsp-test-0.5.2.2 diff --git a/stack-8.6.5.yaml b/stack-8.6.5.yaml index ed6b8a913..3328e5ed2 100644 --- a/stack-8.6.5.yaml +++ b/stack-8.6.5.yaml @@ -18,10 +18,11 @@ extra-deps: - deque-0.2.7 - floskell-0.10.0 - ghc-exactprint-0.5.8.2 +- ghc-lib-parser-0.20190523 - haddock-api-2.22.0 - haskell-lsp-0.12.1.0 - haskell-lsp-types-0.12.1.0 -- hlint-2.1.20 +- hlint-2.1.22 - hsimport-0.8.8 - lsp-test-0.5.2.2 - monad-dijkstra-0.1.1.2@rev:1 diff --git a/stack.yaml b/stack.yaml index ef6dc86b5..3328e5ed2 100644 --- a/stack.yaml +++ b/stack.yaml @@ -22,7 +22,7 @@ extra-deps: - haddock-api-2.22.0 - haskell-lsp-0.12.1.0 - haskell-lsp-types-0.12.1.0 -- hlint-2.1.21 +- hlint-2.1.22 - hsimport-0.8.8 - lsp-test-0.5.2.2 - monad-dijkstra-0.1.1.2@rev:1 diff --git a/test.sh b/test.sh index f09d9c0be..bf91cbf2c 100755 --- a/test.sh +++ b/test.sh @@ -9,7 +9,9 @@ # stack --stack-yaml=stack-8.6.4.yaml test haskell-ide-engine:unit-test --test-arguments "--match \"ApplyRefactPlugin\"" -stack --stack-yaml=stack.yaml test haskell-ide-engine:func-test --test-arguments "--match \"/FunctionalCodeActions/code actions/hlint suggestions/provides 3.8 code actions/\"" +# stack --stack-yaml=stack.yaml test haskell-ide-engine:func-test --test-arguments "--match \"/FunctionalCodeActions/code actions/hlint suggestions/provides 3.8 code actions/\"" # To rerun use: --match "/FunctionalCodeActions/code actions/hlint suggestions/falls back to pre 3.8 code actions/" # To rerun use: --match "/FunctionalCodeActions/code actions/hlint suggestions/runs diagnostics on save/" + +stack --stack-yaml=stack.yaml test haskell-ide-engine:unit-test --test-arguments "--match \"/ApplyRefactPlugin/apply-refact plugin/apply-refact plugin commands/returns hlint parse error as DsInfo ignored diagnostic/\"" diff --git a/test/unit/ApplyRefactPluginSpec.hs b/test/unit/ApplyRefactPluginSpec.hs index 6c5c9befd..00435ea8b 100644 --- a/test/unit/ApplyRefactPluginSpec.hs +++ b/test/unit/ApplyRefactPluginSpec.hs @@ -93,7 +93,8 @@ applyRefactSpec = do -- --------------------------------- it "returns hlint parse error as DsInfo ignored diagnostic" $ do - filePath <- filePathToUri <$> makeAbsolute "./test/testdata/HlintParseFail.hs" + filePathNoUri <- makeAbsolute "./test/testdata/HlintParseFail.hs" + let filePath = filePathToUri filePathNoUri let act = lintCmd' arg arg = filePath @@ -107,7 +108,8 @@ applyRefactSpec = do , _severity = Just DsInfo , _code = Just "parser" , _source = Just "hlint" - , _message = "Parse error: virtual }\n data instance Sing (z :: (a :~: b)) where\n SRefl :: Sing Refl +\n> \n\n" + -- , _message = "Parse error: virtual }\n data instance Sing (z :: (a :~: b)) where\n SRefl :: Sing Refl +\n> \n\n" + , _message = T.pack filePathNoUri <> ":13:24: error:\n Operator applied to too few arguments: +\n data instance Sing (z :: (a :~: b)) where\n SRefl :: Sing Refl +\n> \n\n" , _relatedInformation = Nothing }]} #else [Diagnostic {_range = Range { _start = Position {_line = 11, _character = 28} @@ -118,9 +120,7 @@ applyRefactSpec = do , _message = "Parse error: :~:\n import Data.Type.Equality ((:~:) (..), (:~~:) (..))\n \n> data instance Sing (z :: (a :~: b)) where\n SRefl :: Sing Refl +\n\n" , _relatedInformation = Nothing }]} #endif - liftIO $ putStrLn "returns hlint parse error as DsInfo ignored diagnostic:1" testCommand testPlugins act "applyrefact" "lint" arg res - liftIO $ putStrLn "returns hlint parse error as DsInfo ignored diagnostic:2" -- --------------------------------- From 2fd1f28aaaefb003d532546692d653bd53b10361 Mon Sep 17 00:00:00 2001 From: Alan Zimmerman Date: Sat, 25 May 2019 14:59:48 +0200 Subject: [PATCH 08/14] Extend no output timeout for circleci ghc-lib-parser takes a long time to build the first time. --- .circleci/config.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 5076a0f4b..7b84d02ef 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -41,10 +41,12 @@ defaults: &defaults - run: name: Build (we need the exe for tests) command: stack -j 2 --stack-yaml=${STACK_FILE} install + no_output_timeout: 30m - run: name: Build Testsuite without running it command: stack -j 2 --stack-yaml=${STACK_FILE} build --test --no-run-tests + no_output_timeout: 30m - store_artifacts: path: ~/.local/bin From d50eabf9cc62362b84a939b03400c86ce3189602 Mon Sep 17 00:00:00 2001 From: Alan Zimmerman Date: Sat, 25 May 2019 15:35:52 +0200 Subject: [PATCH 09/14] hlint-2.1.17 is the last one to support GHC 8.2 --- stack-8.2.2.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/stack-8.2.2.yaml b/stack-8.2.2.yaml index 1c80612b4..ab1aa3884 100644 --- a/stack-8.2.2.yaml +++ b/stack-8.2.2.yaml @@ -19,14 +19,13 @@ extra-deps: - czipwith-1.0.1.0 - floskell-0.10.0 - ghc-exactprint-0.5.8.2 -- ghc-lib-parser-0.20190523 - haddock-api-2.18.1 - haddock-library-1.4.4 - haskell-lsp-0.13.0.0 - haskell-lsp-types-0.13.0.0@rev:2 - haskell-src-exts-1.21.0 - haskell-src-exts-util-0.2.5 -- hlint-2.1.22 +- hlint-2.1.17 - hoogle-5.0.17.6 - hsimport-0.8.8 - lsp-test-0.5.2.3 From ba6bf7ee3dc9b5bcfa3bc0e16ce2e56ed51e310c Mon Sep 17 00:00:00 2001 From: Alan Zimmerman Date: Sat, 25 May 2019 15:49:45 +0200 Subject: [PATCH 10/14] Try to avoid OOM on cabal ghc-lib-parser build --- .circleci/config.yml | 8 +++++++- stack-8.2.2.yaml | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 7b84d02ef..14f80c9ce 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -160,7 +160,8 @@ jobs: working_directory: ~/build docker: # - image: quay.io/haskell_works/ghc-8.4.3 - - image: quay.io/haskell_works/ghc-8.6.1 + # - image: quay.io/haskell_works/ghc-8.6.1 + - image: quay.io/haskell_works/ghc-8.6.5 steps: - checkout - run: @@ -181,9 +182,14 @@ jobs: - run: name: Configure command: cabal new-configure --enable-tests + - run: + name: Build ghc-lib-parser by itself, to not trigger OOM + command: cabal new-install -j1 ghc-lib-parser + no_output_timeout: 30m - run: name: Build command: cabal new-build -j2 + no_output_timeout: 30m - save_cache: key: cabal-{{ .Environment.HIE_CACHE }}-{{ arch }}-{{ .Environment.CIRCLE_JOB }} paths: diff --git a/stack-8.2.2.yaml b/stack-8.2.2.yaml index ab1aa3884..0bf0d54be 100644 --- a/stack-8.2.2.yaml +++ b/stack-8.2.2.yaml @@ -25,7 +25,7 @@ extra-deps: - haskell-lsp-types-0.13.0.0@rev:2 - haskell-src-exts-1.21.0 - haskell-src-exts-util-0.2.5 -- hlint-2.1.17 +- hlint-2.1.17 # last hlint supporting GHC 8.2 - hoogle-5.0.17.6 - hsimport-0.8.8 - lsp-test-0.5.2.3 From 9b8faff43697d81618a91652a6e9173a4596bac7 Mon Sep 17 00:00:00 2001 From: Alan Zimmerman Date: Sat, 25 May 2019 17:10:14 +0200 Subject: [PATCH 11/14] Fixing CI --- .circleci/config.yml | 11 +++-------- test/unit/ApplyRefactPluginSpec.hs | 11 +++++++++-- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 14f80c9ce..9f27f1370 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -40,7 +40,8 @@ defaults: &defaults - run: name: Build (we need the exe for tests) - command: stack -j 2 --stack-yaml=${STACK_FILE} install + command: stack -j 1 --stack-yaml=${STACK_FILE} install + # need j1, else ghc-lib-parser triggers OOM no_output_timeout: 30m - run: @@ -159,8 +160,6 @@ jobs: cabal: working_directory: ~/build docker: - # - image: quay.io/haskell_works/ghc-8.4.3 - # - image: quay.io/haskell_works/ghc-8.6.1 - image: quay.io/haskell_works/ghc-8.6.5 steps: - checkout @@ -182,13 +181,9 @@ jobs: - run: name: Configure command: cabal new-configure --enable-tests - - run: - name: Build ghc-lib-parser by itself, to not trigger OOM - command: cabal new-install -j1 ghc-lib-parser - no_output_timeout: 30m - run: name: Build - command: cabal new-build -j2 + command: cabal new-build -j1 # need j1, else ghc-lib-parser triggers OOM no_output_timeout: 30m - save_cache: key: cabal-{{ .Environment.HIE_CACHE }}-{{ arch }}-{{ .Environment.CIRCLE_JOB }} diff --git a/test/unit/ApplyRefactPluginSpec.hs b/test/unit/ApplyRefactPluginSpec.hs index 00435ea8b..a884aecfd 100644 --- a/test/unit/ApplyRefactPluginSpec.hs +++ b/test/unit/ApplyRefactPluginSpec.hs @@ -102,15 +102,22 @@ applyRefactSpec = do PublishDiagnosticsParams { _uri = filePath , _diagnostics = List -#if (defined(MIN_VERSION_GLASGOW_HASKELL) && (MIN_VERSION_GLASGOW_HASKELL(8,2,2,0))) +#if (defined(MIN_VERSION_GLASGOW_HASKELL) && (MIN_VERSION_GLASGOW_HASKELL(8,4,0,0))) [Diagnostic {_range = Range { _start = Position {_line = 13, _character = 0} , _end = Position {_line = 13, _character = 100000}} , _severity = Just DsInfo , _code = Just "parser" , _source = Just "hlint" - -- , _message = "Parse error: virtual }\n data instance Sing (z :: (a :~: b)) where\n SRefl :: Sing Refl +\n> \n\n" , _message = T.pack filePathNoUri <> ":13:24: error:\n Operator applied to too few arguments: +\n data instance Sing (z :: (a :~: b)) where\n SRefl :: Sing Refl +\n> \n\n" , _relatedInformation = Nothing }]} +#elif (defined(MIN_VERSION_GLASGOW_HASKELL) && (MIN_VERSION_GLASGOW_HASKELL(8,2,2,0))) + [Diagnostic {_range = Range { _start = Position {_line = 13, _character = 0} + , _end = Position {_line = 13, _character = 100000}} + , _severity = Just DsInfo + , _code = Just "parser" + , _source = Just "hlint" + , _message = "Parse error: virtual }\n data instance Sing (z :: (a :~: b)) where\n SRefl :: Sing Refl +\n> \n\n" + , _relatedInformation = Nothing }]} #else [Diagnostic {_range = Range { _start = Position {_line = 11, _character = 28} , _end = Position {_line = 11, _character = 100000}} From 2b816f875ca3e748a89425751c7c36d6b3308316 Mon Sep 17 00:00:00 2001 From: Alan Zimmerman Date: Sat, 25 May 2019 20:48:36 +0200 Subject: [PATCH 12/14] Remove leftover debug artifacts --- src/Haskell/Ide/Engine/Plugin/ApplyRefact.hs | 3 --- test/functional/FunctionalCodeActionsSpec.hs | 7 ------- test/unit/ApplyRefactPluginSpec.hs | 2 -- 3 files changed, 12 deletions(-) diff --git a/src/Haskell/Ide/Engine/Plugin/ApplyRefact.hs b/src/Haskell/Ide/Engine/Plugin/ApplyRefact.hs index 1c638e391..3b7cd5e02 100644 --- a/src/Haskell/Ide/Engine/Plugin/ApplyRefact.hs +++ b/src/Haskell/Ide/Engine/Plugin/ApplyRefact.hs @@ -7,7 +7,6 @@ module Haskell.Ide.Engine.Plugin.ApplyRefact where import Control.Arrow import Control.Exception ( IOException , ErrorCall - , SomeException -- AZ:temporary , Handler(..) , catches , try @@ -258,9 +257,7 @@ applyHint fp mhint fileMap = do res <- liftIO $ (Right <$> applyRefactorings Nothing commands fp) `catches` [ Handler $ \e -> return (Left (show (e :: IOException))) , Handler $ \e -> return (Left (show (e :: ErrorCall))) - , Handler $ \e -> return (Left (show (e :: SomeException))) -- AZ:temporary ] - liftIO $ logm $ "applyHint:res=" ++ show res case res of Right appliedFile -> do diff <- ExceptT $ Right <$> makeDiffResult fp (T.pack appliedFile) fileMap diff --git a/test/functional/FunctionalCodeActionsSpec.hs b/test/functional/FunctionalCodeActionsSpec.hs index 04d56e9a9..07ab9d6ff 100644 --- a/test/functional/FunctionalCodeActionsSpec.hs +++ b/test/functional/FunctionalCodeActionsSpec.hs @@ -29,7 +29,6 @@ spec = describe "code actions" $ do doc <- openDoc "ApplyRefact2.hs" "haskell" diags@(reduceDiag:_) <- waitForDiagnostics - liftIO $ putStrLn "a1" liftIO $ do length diags `shouldBe` 2 @@ -37,22 +36,16 @@ spec = describe "code actions" $ do reduceDiag ^. L.severity `shouldBe` Just DsInfo reduceDiag ^. L.code `shouldBe` Just "Eta reduce" reduceDiag ^. L.source `shouldBe` Just "hlint" - liftIO $ putStrLn "a2" (CACodeAction ca:_) <- getAllCodeActions doc - liftIO $ putStrLn "a3" -- Evaluate became redundant id in later hlint versions liftIO $ ["Apply hint:Redundant id", "Apply hint:Evaluate"] `shouldContain` [ca ^. L.title] - liftIO $ putStrLn "a4" executeCodeAction ca - liftIO $ putStrLn "a5" contents <- getDocumentEdit doc - liftIO $ putStrLn "a6" liftIO $ contents `shouldBe` "main = undefined\nfoo x = x\n" - liftIO $ putStrLn "a7" noDiagnostics diff --git a/test/unit/ApplyRefactPluginSpec.hs b/test/unit/ApplyRefactPluginSpec.hs index a884aecfd..518cb8f9c 100644 --- a/test/unit/ApplyRefactPluginSpec.hs +++ b/test/unit/ApplyRefactPluginSpec.hs @@ -86,9 +86,7 @@ applyRefactSpec = do "Redundant bracket\nFound:\n (x + 1)\nWhy not:\n x + 1\n" Nothing ]} - liftIO $ putStrLn "returns hints as diagnostics:1" testCommand testPlugins act "applyrefact" "lint" arg res - liftIO $ putStrLn "returns hints as diagnostics:2" -- --------------------------------- From b1bcef890f37433af57232bad696b03303451566 Mon Sep 17 00:00:00 2001 From: Alan Zimmerman Date: Sat, 25 May 2019 20:54:00 +0200 Subject: [PATCH 13/14] Remove unused import --- test/unit/ApplyRefactPluginSpec.hs | 1 - 1 file changed, 1 deletion(-) diff --git a/test/unit/ApplyRefactPluginSpec.hs b/test/unit/ApplyRefactPluginSpec.hs index 518cb8f9c..7ba72f09e 100644 --- a/test/unit/ApplyRefactPluginSpec.hs +++ b/test/unit/ApplyRefactPluginSpec.hs @@ -3,7 +3,6 @@ {-# LANGUAGE OverloadedStrings #-} module ApplyRefactPluginSpec where -import Control.Monad.IO.Class import qualified Data.HashMap.Strict as H import qualified Data.Text as T import Haskell.Ide.Engine.Plugin.ApplyRefact From 39de415ca32989a6c8eae6ddec46bc9a5444da16 Mon Sep 17 00:00:00 2001 From: Alan Zimmerman Date: Sun, 26 May 2019 09:19:34 +0200 Subject: [PATCH 14/14] Remove personal utility test.sh file [skip ci] [ci skip] --- test.sh | 17 ----------------- 1 file changed, 17 deletions(-) delete mode 100755 test.sh diff --git a/test.sh b/test.sh deleted file mode 100755 index bf91cbf2c..000000000 --- a/test.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/sh - -# stack test haskell-ide-engine:func-test --test-arguments "--failure-report .hspec-failures --rerun" -# stack test haskell-ide-engine:func-test --test-arguments "--match \"completes ghc options pragma values\"" -#stack test haskell-ide-engine:func-test --test-arguments "--match \"behaviour on malformed projects\"" - -# stack --stack-yaml=stack-8.6.4.yaml test haskell-ide-engine:func-test --test-arguments "--match \"completes imports\"" -# stack --stack-yaml=stack.yaml test haskell-ide-engine:func-test --test-arguments "--match \"completes pragmas no close\"" - -# stack --stack-yaml=stack-8.6.4.yaml test haskell-ide-engine:unit-test --test-arguments "--match \"ApplyRefactPlugin\"" - -# stack --stack-yaml=stack.yaml test haskell-ide-engine:func-test --test-arguments "--match \"/FunctionalCodeActions/code actions/hlint suggestions/provides 3.8 code actions/\"" - - # To rerun use: --match "/FunctionalCodeActions/code actions/hlint suggestions/falls back to pre 3.8 code actions/" - # To rerun use: --match "/FunctionalCodeActions/code actions/hlint suggestions/runs diagnostics on save/" - -stack --stack-yaml=stack.yaml test haskell-ide-engine:unit-test --test-arguments "--match \"/ApplyRefactPlugin/apply-refact plugin/apply-refact plugin commands/returns hlint parse error as DsInfo ignored diagnostic/\""