Skip to content

Commit 409bf3b

Browse files
authored
Fix -Wall in qualified imported names plugin (#4070)
1 parent 0ccb178 commit 409bf3b

File tree

2 files changed

+13
-17
lines changed

2 files changed

+13
-17
lines changed

haskell-language-server.cabal

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -921,7 +921,7 @@ common qualifyImportedNames
921921
cpp-options: -Dhls_qualifyImportedNames
922922

923923
library hls-qualify-imported-names-plugin
924-
import: defaults, warnings
924+
import: defaults, pedantic, warnings
925925
exposed-modules: Ide.Plugin.QualifyImportedNames
926926
hs-source-dirs: plugins/hls-qualify-imported-names-plugin/src
927927
build-depends:
@@ -939,7 +939,7 @@ library hls-qualify-imported-names-plugin
939939
DataKinds
940940

941941
test-suite hls-qualify-imported-names-plugin-tests
942-
import: defaults, test-defaults, warnings
942+
import: defaults, pedantic, test-defaults, warnings
943943
type: exitcode-stdio-1.0
944944
hs-source-dirs: plugins/hls-qualify-imported-names-plugin/test
945945
main-is: Main.hs

plugins/hls-qualify-imported-names-plugin/src/Ide/Plugin/QualifyImportedNames.hs

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,8 @@ import Development.IDE.GHC.Compat (ContextInfo (Use),
3636
ImpDeclSpec (ImpDeclSpec, is_as, is_dloc, is_qual),
3737
ImportSpec (ImpSpec),
3838
LImportDecl, ModuleName,
39-
Name, NameEnv, OccName,
40-
ParsedModule, RefMap, Span,
41-
SrcSpan,
39+
Name, NameEnv, ParsedModule,
40+
RefMap, Span, SrcSpan,
4241
TcGblEnv (tcg_rdr_env),
4342
emptyUFM, globalRdrEnvElts,
4443
gre_imp, gre_name, locA,
@@ -111,7 +110,7 @@ data ImportedBy = ImportedBy {
111110
}
112111

113112
isRangeWithinImportedBy :: Range -> ImportedBy -> Bool
114-
isRangeWithinImportedBy range (ImportedBy _ srcSpan) = fromMaybe False $ spanContainsRange srcSpan range
113+
isRangeWithinImportedBy range ImportedBy{importedBySrcSpan} = fromMaybe False $ spanContainsRange importedBySrcSpan range
115114

116115
globalRdrEnvToNameToImportedByMap :: GlobalRdrEnv -> NameEnv [ImportedBy]
117116
globalRdrEnvToNameToImportedByMap =
@@ -168,9 +167,6 @@ refMapToUsedIdentifiers = DList.toList . Map.foldlWithKey' folder DList.empty
168167
, Use `elem` identInfo = Just $ UsedIdentifier name identifierSpan
169168
| otherwise = Nothing
170169

171-
occNameToText :: OccName -> Text
172-
occNameToText = Text.pack . occNameString
173-
174170
updateColOffset :: Int -> Int -> Int -> Int
175171
updateColOffset row lineOffset colOffset
176172
| row == lineOffset = colOffset
@@ -182,13 +178,13 @@ usedIdentifiersToTextEdits range nameToImportedByMap sourceText usedIdentifiers
182178
State.evalState (makeStateComputation sortedUsedIdentifiers) (Text.lines sourceText, 0, 0)
183179
where
184180
folder :: [TextEdit] -> UsedIdentifier -> State ([Text], Int, Int) [TextEdit]
185-
folder prevTextEdits (UsedIdentifier identifierName identifierSpan)
186-
| Just importedBys <- lookupNameEnv nameToImportedByMap identifierName
187-
, Just (ImportedBy alias _) <- find (isRangeWithinImportedBy range) importedBys
188-
, let IdentifierSpan row startCol endCol = identifierSpan
189-
, let identifierRange = identifierSpanToRange identifierSpan
190-
, let aliasText = Text.pack $ moduleNameString alias
191-
, let identifierText = Text.pack $ occNameString $ nameOccName identifierName
181+
folder prevTextEdits UsedIdentifier{usedIdentifierName, usedIdentifierSpan}
182+
| Just importedBys <- lookupNameEnv nameToImportedByMap usedIdentifierName
183+
, Just ImportedBy{importedByAlias} <- find (isRangeWithinImportedBy range) importedBys
184+
, let IdentifierSpan row startCol _ = usedIdentifierSpan
185+
, let identifierRange = identifierSpanToRange usedIdentifierSpan
186+
, let aliasText = Text.pack $ moduleNameString importedByAlias
187+
, let identifierText = Text.pack $ occNameString $ nameOccName usedIdentifierName
192188
, let qualifiedIdentifierText = aliasText <> "." <> identifierText = do
193189
(sourceTextLines, lineOffset, updateColOffset row lineOffset -> colOffset) <- State.get
194190
let lines = List.drop (row - lineOffset) sourceTextLines
@@ -219,7 +215,7 @@ usedIdentifiersToTextEdits range nameToImportedByMap sourceText usedIdentifiers
219215
-- 3. For each used name in refMap check whether the name comes from an import
220216
-- at the origin of the code action.
221217
codeActionProvider :: PluginMethodHandler IdeState Method_TextDocumentCodeAction
222-
codeActionProvider ideState pluginId (CodeActionParams _ _ documentId range context) = do
218+
codeActionProvider ideState _pluginId (CodeActionParams _ _ documentId range _) = do
223219
normalizedFilePath <- getNormalizedFilePathE (documentId ^. L.uri)
224220
TcModuleResult { tmrParsed, tmrTypechecked } <- runActionE "QualifyImportedNames.TypeCheck" ideState $ useE TypeCheck normalizedFilePath
225221
if isJust (findLImportDeclAt range tmrParsed)

0 commit comments

Comments
 (0)