Skip to content

Commit 31d1cee

Browse files
jeukshifendor
authored andcommitted
Don't suggest -Wno-deferred-out-of-scope-variables (haskell#4441)
Fixes haskell#4440 Fixes test for disabling deferred-type-errors.
1 parent 164dfe5 commit 31d1cee

File tree

4 files changed

+22
-3
lines changed

4 files changed

+22
-3
lines changed

plugins/hls-pragmas-plugin/src/Ide/Plugin/Pragmas.hs

+6-2
Original file line numberDiff line numberDiff line change
@@ -128,9 +128,13 @@ suggestDisableWarning diagnostic
128128
pure ("Disable \"" <> w <> "\" warnings", OptGHC w)
129129
| otherwise = []
130130

131-
-- Don't suggest disabling type errors as a solution to all type errors
132131
warningBlacklist :: [T.Text]
133-
warningBlacklist = ["deferred-type-errors"]
132+
warningBlacklist =
133+
-- Don't suggest disabling type errors as a solution to all type errors.
134+
[ "deferred-type-errors"
135+
-- Don't suggest disabling out of scope errors as a solution to all out of scope errors.
136+
, "deferred-out-of-scope-variables"
137+
]
134138

135139
-- ---------------------------------------------------------------------
136140

plugins/hls-pragmas-plugin/test/Main.hs

+6-1
Original file line numberDiff line numberDiff line change
@@ -109,11 +109,16 @@ codeActionTests' =
109109
_ -> assertFailure $ "Expected one code action, but got: " <> show cas
110110
liftIO $ (ca ^. L.title == "Add \"NamedFieldPuns\"") @? "NamedFieldPuns code action"
111111
executeCodeAction ca
112-
, goldenWithPragmas pragmasSuggestPlugin "doesn't suggest disabling type errors" "DeferredTypeErrors" $ \doc -> do
112+
, goldenWithPragmas pragmasDisableWarningPlugin "doesn't suggest disabling type errors" "DeferredTypeErrors" $ \doc -> do
113113
_ <- waitForDiagnosticsFrom doc
114114
cas <- map fromAction <$> getAllCodeActions doc
115115
liftIO $ "Disable \"deferred-type-errors\" warnings" `notElem` map (^. L.title) cas @? "Doesn't contain deferred-type-errors code action"
116116
liftIO $ length cas == 0 @? "Expected no code actions, but got: " <> show cas
117+
, goldenWithPragmas pragmasDisableWarningPlugin "doesn't suggest disabling out of scope variables" "DeferredOutOfScopeVariables" $ \doc -> do
118+
_ <- waitForDiagnosticsFrom doc
119+
cas <- map fromAction <$> getAllCodeActions doc
120+
liftIO $ "Disable \"deferred-out-of-scope-variables\" warnings" `notElem` map (^. L.title) cas @? "Doesn't contain deferred-out-of-scope-variables code action"
121+
liftIO $ length cas == 0 @? "Expected no code actions, but got: " <> show cas
117122
]
118123

119124
completionTests :: TestTree
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
module DeferredOutOfScopeVariables where
2+
3+
f :: ()
4+
f = let x = Doesn'tExist
5+
in undefined
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
module DeferredOutOfScopeVariables where
2+
3+
f :: ()
4+
f = let x = Doesn'tExist
5+
in undefined

0 commit comments

Comments
 (0)