hokein updated this revision to Diff 504069.
hokein marked an inline comment as done.
hokein added a comment.
Add diagnostic for Experiment flag usage.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D145773/new/
https://reviews.llvm.org/D145773
Files:
clang-tools-extra/clangd/Config.h
clang-tools-extra/clangd/ConfigCompile.cpp
clang-tools-extra/clangd/ConfigFragment.h
clang-tools-extra/clangd/IncludeCleaner.cpp
clang-tools-extra/clangd/Preamble.cpp
clang-tools-extra/clangd/unittests/IncludeCleanerTests.cpp
Index: clang-tools-extra/clangd/unittests/IncludeCleanerTests.cpp
===================================================================
--- clang-tools-extra/clangd/unittests/IncludeCleanerTests.cpp
+++ clang-tools-extra/clangd/unittests/IncludeCleanerTests.cpp
@@ -697,7 +697,7 @@
void foo() {}
)cpp");
Config Cfg;
- Cfg.Diagnostics.UnusedIncludes = Config::IncludesPolicy::Experiment;
+ Cfg.Diagnostics.UnusedIncludes = Config::IncludesPolicy::Strict;
WithContextValue Ctx(Config::Key, std::move(Cfg));
ParsedAST AST = TU.build();
Index: clang-tools-extra/clangd/Preamble.cpp
===================================================================
--- clang-tools-extra/clangd/Preamble.cpp
+++ clang-tools-extra/clangd/Preamble.cpp
@@ -128,7 +128,7 @@
SourceMgr = &CI.getSourceManager();
Includes.collect(CI);
if (Config::current().Diagnostics.UnusedIncludes ==
- Config::IncludesPolicy::Experiment ||
+ Config::IncludesPolicy::Strict ||
Config::current().Diagnostics.MissingIncludes ==
Config::IncludesPolicy::Strict)
Pragmas.record(CI);
Index: clang-tools-extra/clangd/IncludeCleaner.cpp
===================================================================
--- clang-tools-extra/clangd/IncludeCleaner.cpp
+++ clang-tools-extra/clangd/IncludeCleaner.cpp
@@ -758,17 +758,13 @@
const Config &Cfg = Config::current();
IncludeCleanerFindings Findings;
if (Cfg.Diagnostics.MissingIncludes == Config::IncludesPolicy::Strict ||
- Cfg.Diagnostics.UnusedIncludes == Config::IncludesPolicy::Experiment) {
+ Cfg.Diagnostics.UnusedIncludes == Config::IncludesPolicy::Strict) {
// will need include-cleaner results, call it once
Findings = computeIncludeCleanerFindings(AST);
}
std::vector<Diag> Result = generateUnusedIncludeDiagnostics(
- AST.tuPath(),
- Cfg.Diagnostics.UnusedIncludes == Config::IncludesPolicy::Strict
- ? computeUnusedIncludes(AST)
- : Findings.UnusedIncludes,
- Code);
+ AST.tuPath(), Findings.UnusedIncludes, Code);
llvm::move(
generateMissingIncludeDiagnostics(AST, Findings.MissingIncludes, Code),
std::back_inserter(Result));
Index: clang-tools-extra/clangd/ConfigFragment.h
===================================================================
--- clang-tools-extra/clangd/ConfigFragment.h
+++ clang-tools-extra/clangd/ConfigFragment.h
@@ -232,7 +232,6 @@
///
/// Valid values are:
/// - Strict
- /// - Experiment
/// - None
std::optional<Located<std::string>> UnusedIncludes;
Index: clang-tools-extra/clangd/ConfigCompile.cpp
===================================================================
--- clang-tools-extra/clangd/ConfigCompile.cpp
+++ clang-tools-extra/clangd/ConfigCompile.cpp
@@ -430,16 +430,24 @@
C.Diagnostics.Suppress.insert(N);
});
- if (F.UnusedIncludes)
- if (auto Val = compileEnum<Config::IncludesPolicy>("UnusedIncludes",
- **F.UnusedIncludes)
- .map("Strict", Config::IncludesPolicy::Strict)
- .map("Experiment", Config::IncludesPolicy::Experiment)
- .map("None", Config::IncludesPolicy::None)
- .value())
+ if (F.UnusedIncludes) {
+ auto Val = compileEnum<Config::IncludesPolicy>("UnusedIncludes",
+ **F.UnusedIncludes)
+ .map("Strict", Config::IncludesPolicy::Strict)
+ .map("None", Config::IncludesPolicy::None)
+ .value();
+ if (!Val && **F.UnusedIncludes == "Experiment") {
+ diag(Warning,
+ "Experiment is deprecated for UnusedIncludes, use Strict instead.",
+ F.UnusedIncludes->Range);
+ Val = Config::IncludesPolicy::Strict;
+ }
+ if (Val) {
Out.Apply.push_back([Val](const Params &, Config &C) {
C.Diagnostics.UnusedIncludes = *Val;
});
+ }
+ }
if (F.AllowStalePreamble) {
if (auto Val = F.AllowStalePreamble)
Index: clang-tools-extra/clangd/Config.h
===================================================================
--- clang-tools-extra/clangd/Config.h
+++ clang-tools-extra/clangd/Config.h
@@ -92,9 +92,6 @@
/// Diagnose missing and unused includes.
Strict,
None,
- /// The same as Strict, but using the include-cleaner library for
- /// unused includes.
- Experiment,
};
/// Controls warnings and errors when parsing code.
struct {
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits