|
3 | 3 |
|
4 | 4 | module Development.IDE.GHC.Warnings(withWarnings) where
|
5 | 5 |
|
| 6 | +import Data.List |
6 | 7 | import ErrUtils
|
7 | 8 | import GhcPlugins as GHC hiding (Var, (<>))
|
8 | 9 |
|
@@ -39,82 +40,8 @@ attachReason wr d = d{_code = StringValue <$> showReason wr}
|
39 | 40 | where
|
40 | 41 | showReason = \case
|
41 | 42 | NoReason -> Nothing
|
42 |
| - Reason flag -> Just $ showFlag flag |
43 |
| - ErrReason flag -> showFlag <$> flag |
| 43 | + Reason flag -> showFlag flag |
| 44 | + ErrReason flag -> showFlag =<< flag |
44 | 45 |
|
45 |
| -showFlag :: WarningFlag -> T.Text |
46 |
| -showFlag f = "-W" <> case f of |
47 |
| - Opt_WarnAllMissedSpecs -> "all-missed-specialisations" |
48 |
| - Opt_WarnAlternativeLayoutRuleTransitional -> "alternative-layout-rule-transitional" |
49 |
| - Opt_WarnAutoOrphans -> "auto-orphans" |
50 |
| - Opt_WarnCPPUndef -> "cpp-undef" |
51 |
| - Opt_WarnDeferredOutOfScopeVariables -> "deferred-out-of-scope-variables" |
52 |
| - Opt_WarnDeferredTypeErrors -> "deferred-type-errors" |
53 |
| - Opt_WarnDeprecatedFlags -> "deprecated-flags" |
54 |
| - Opt_WarnDerivingTypeable -> "deriving-typeable" |
55 |
| - Opt_WarnDodgyExports -> "dodgy-exports" |
56 |
| - Opt_WarnDodgyForeignImports -> "dodgy-foreign-imports" |
57 |
| - Opt_WarnDodgyImports -> "dodgy-imports" |
58 |
| - Opt_WarnDuplicateConstraints -> "duplicate-constraints" |
59 |
| - Opt_WarnDuplicateExports -> "duplicate-exports" |
60 |
| - Opt_WarnEmptyEnumerations -> "empty-enumerations" |
61 |
| - Opt_WarnHiShadows -> "hi-shadowing" |
62 |
| - Opt_WarnIdentities -> "identities" |
63 |
| - Opt_WarnImplicitKindVars -> "implicit-kind-vars" |
64 |
| - Opt_WarnImplicitPrelude -> "implicit-prelude" |
65 |
| - Opt_WarnInaccessibleCode -> "inaccessible-code" |
66 |
| - Opt_WarnIncompletePatterns -> "incomplete-patterns" |
67 |
| - Opt_WarnIncompletePatternsRecUpd -> "incomplete-record-updates" |
68 |
| - Opt_WarnIncompleteUniPatterns -> "incomplete-uni-patterns" |
69 |
| - Opt_WarnInlineRuleShadowing -> "inline-rule-shadowing" |
70 |
| - Opt_WarnMissedExtraSharedLib -> "missed-extra-shared-lib" |
71 |
| - Opt_WarnMissedSpecs -> "missed-specializations" |
72 |
| - Opt_WarnMissingDerivingStrategies -> "missing-deriving-strategies" |
73 |
| - Opt_WarnMissingExportedSignatures -> "missing-export-lists" |
74 |
| - Opt_WarnMissingExportList -> "missing-exported-signatures" |
75 |
| - Opt_WarnMissingFields -> "missing-fields" |
76 |
| - Opt_WarnMissingHomeModules -> "missing-home-modules" |
77 |
| - Opt_WarnMissingImportList -> "missing-import-lists" |
78 |
| - Opt_WarnMissingLocalSignatures -> "missing-local-signatures" |
79 |
| - Opt_WarnMissingMethods -> "missing-methods" |
80 |
| - Opt_WarnMissingMonadFailInstances -> "missing-monadfail-instances" |
81 |
| - Opt_WarnMissingPatternSynonymSignatures -> "missing-pattern-synonym-signatures" |
82 |
| - Opt_WarnMissingSignatures -> "missing-signatures" |
83 |
| - Opt_WarnMonomorphism -> "monomorphism-restriction" |
84 |
| - Opt_WarnNameShadowing -> "name-shadowing" |
85 |
| - Opt_WarnNonCanonicalMonadFailInstances -> "noncanonical-monadfail-instances" |
86 |
| - Opt_WarnNonCanonicalMonadInstances -> "noncanonical-monad-instances" |
87 |
| - Opt_WarnNonCanonicalMonoidInstances -> "noncanonical-monoid-instances" |
88 |
| - Opt_WarnOrphans -> "orphans" |
89 |
| - Opt_WarnOverflowedLiterals -> "overflowed-literals" |
90 |
| - Opt_WarnOverlappingPatterns -> "overlapping-patterns" |
91 |
| - Opt_WarnPartialFields -> "partial-fields" |
92 |
| - Opt_WarnPartialTypeSignatures -> "partial-type-signatures" |
93 |
| - Opt_WarnRedundantConstraints -> "redundant-constraints" |
94 |
| - Opt_WarnSafe -> "safe" |
95 |
| - Opt_WarnSemigroup -> "semigroup" |
96 |
| - Opt_WarnSimplifiableClassConstraints -> "simplifiable-class-constraints" |
97 |
| - Opt_WarnSpaceAfterBang -> "missing-space-after-bang" |
98 |
| - Opt_WarnStarBinder -> "star-binder" |
99 |
| - Opt_WarnStarIsType -> "star-is-type" |
100 |
| - Opt_WarnTabs -> "tabs" |
101 |
| - Opt_WarnTrustworthySafe -> "trustworthy-safe" |
102 |
| - Opt_WarnTypeDefaults -> "type-defaults" |
103 |
| - Opt_WarnTypedHoles -> "typed-holes" |
104 |
| - Opt_WarnUnbangedStrictPatterns -> "unbanged-strict-patterns" |
105 |
| - Opt_WarnUnrecognisedPragmas -> "unrecognised-pragmas" |
106 |
| - Opt_WarnUnrecognisedWarningFlags -> "unrecognisedarning-flags" |
107 |
| - Opt_WarnUnsafe -> "unsafe" |
108 |
| - Opt_WarnUnsupportedCallingConventions -> "unsupported-calling-conventions" |
109 |
| - Opt_WarnUnsupportedLlvmVersion -> "unsupported-llvm-version" |
110 |
| - Opt_WarnUntickedPromotedConstructors -> "unticked-promoted-constructors" |
111 |
| - Opt_WarnUnusedDoBind -> "unused-do-bind" |
112 |
| - Opt_WarnUnusedForalls -> "unused-foralls" |
113 |
| - Opt_WarnUnusedImports -> "unused-imports" |
114 |
| - Opt_WarnUnusedLocalBinds -> "unused-local-binds" |
115 |
| - Opt_WarnUnusedMatches -> "unused-matches" |
116 |
| - Opt_WarnUnusedPatternBinds -> "unused-pattern-binds" |
117 |
| - Opt_WarnUnusedTopBinds -> "unused-top-binds" |
118 |
| - Opt_WarnUnusedTypePatterns -> "unused-type-patterns" |
119 |
| - Opt_WarnWarningsDeprecations -> "deprecations" |
120 |
| - Opt_WarnWrongDoBind -> "wrong-do-bind" |
| 46 | +showFlag :: WarningFlag -> Maybe T.Text |
| 47 | +showFlag flag = ("-W" <>) . T.pack . flagSpecName <$> find ((== flag) . flagSpecFlag) wWarningFlags |
0 commit comments