sammccall created this revision. sammccall added a reviewer: hokein. Herald added subscribers: usaxena95, kadircet, arphaman. sammccall requested review of this revision. Herald added subscribers: cfe-commits, MaskRay, ilya-biryukov. Herald added a project: clang.
And mark a couple to be retired afther the next release branch. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D94727 Files: clang-tools-extra/clangd/ClangdServer.cpp clang-tools-extra/clangd/ClangdServer.h clang-tools-extra/clangd/Compiler.h clang-tools-extra/clangd/ParsedAST.cpp clang-tools-extra/clangd/tool/ClangdMain.cpp clang-tools-extra/clangd/unittests/TestTU.cpp
Index: clang-tools-extra/clangd/unittests/TestTU.cpp =================================================================== --- clang-tools-extra/clangd/unittests/TestTU.cpp +++ clang-tools-extra/clangd/unittests/TestTU.cpp @@ -62,8 +62,6 @@ if (ClangTidyProvider) Inputs.ClangTidyProvider = ClangTidyProvider; Inputs.Index = ExternalIndex; - if (Inputs.Index) - Inputs.Opts.SuggestMissingIncludes = true; return Inputs; } Index: clang-tools-extra/clangd/tool/ClangdMain.cpp =================================================================== --- clang-tools-extra/clangd/tool/ClangdMain.cpp +++ clang-tools-extra/clangd/tool/ClangdMain.cpp @@ -80,8 +80,21 @@ OptionCategory Features("clangd feature options"); OptionCategory Misc("clangd miscellaneous options"); OptionCategory Protocol("clangd protocol and logging options"); +OptionCategory Retired("clangd flags no longer in use"); const OptionCategory *ClangdCategories[] = {&Features, &Protocol, - &CompileCommands, &Misc}; + &CompileCommands, &Misc, &Retired}; + +template <typename T> class RetiredFlag { + opt<T> Option; + +public: + RetiredFlag(llvm::StringRef Name) + : Option(Name, cat(Retired), desc("Obsolete flag, ignored"), Hidden, + llvm::cl::callback([Name](const T &) { + llvm::errs() + << "The flag `-" << Name << "` is obsolete and ignored.\n"; + })) {} +}; enum CompileArgsFrom { LSPCompileArgs, FilesystemCompileArgs }; opt<CompileArgsFrom> CompileArgsFrom{ @@ -267,15 +280,7 @@ Hidden, }; -opt<bool> EnableIndex{ - "index", - cat(Features), - desc("Enable index-based features. By default, clangd maintains an index " - "built from symbols in opened files. Global index support needs to " - "enabled separatedly"), - init(true), - Hidden, -}; +RetiredFlag<bool> EnableIndex("index"); opt<int> LimitResults{ "limit-results", @@ -285,13 +290,7 @@ init(100), }; -opt<bool> SuggestMissingIncludes{ - "suggest-missing-includes", - cat(Features), - desc("Attempts to fix diagnostic errors caused by missing " - "includes using index"), - init(true), -}; +RetiredFlag<bool> SuggestMissingIncludes("suggest-missing-includes"); list<std::string> TweakList{ "tweaks", @@ -308,20 +307,8 @@ init(true), }; -opt<bool> RecoveryAST{ - "recovery-ast", - cat(Features), - desc("Preserve expressions in AST for broken code."), - init(ClangdServer::Options().BuildRecoveryAST), -}; - -opt<bool> RecoveryASTType{ - "recovery-ast-type", - cat(Features), - desc("Preserve the type for recovery AST."), - init(ClangdServer::Options().PreserveRecoveryASTType), - Hidden, -}; +RetiredFlag<bool> RecoveryAST("recovery-ast"); +RetiredFlag<bool> RecoveryASTType("recovery-ast-type"); opt<bool> FoldingRanges{ "folding-ranges", @@ -463,6 +450,7 @@ init(false), }; +// FIXME: retire this flag in llvm 13 release cycle. opt<bool> AsyncPreamble{ "async-preamble", cat(Misc), @@ -486,11 +474,13 @@ init(true), }; +// FIXME: retire this flag in llvm 13 release cycle. opt<bool> CollectMainFileRefs{ "collect-main-file-refs", cat(Misc), desc("Store references to main-file-only symbols in the index"), init(ClangdServer::Options().CollectMainFileRefs), + Hidden, }; #if defined(__GLIBC__) && CLANGD_MALLOC_TRIM @@ -769,12 +759,12 @@ } if (!ResourceDir.empty()) Opts.ResourceDir = ResourceDir; - Opts.BuildDynamicSymbolIndex = EnableIndex; + Opts.BuildDynamicSymbolIndex = true; Opts.CollectMainFileRefs = CollectMainFileRefs; std::vector<std::unique_ptr<SymbolIndex>> IdxStack; std::unique_ptr<SymbolIndex> StaticIdx; std::future<void> AsyncIndexLoad; // Block exit while loading the index. - if (EnableIndex && !IndexFile.empty()) { + if (!IndexFile.empty()) { // Load the index asynchronously. Meanwhile SwapIndex returns no results. SwapIndex *Placeholder; StaticIdx.reset(Placeholder = new SwapIndex(std::make_unique<MemIndex>())); @@ -813,8 +803,6 @@ Opts.StaticIndex = PAI.get(); } Opts.AsyncThreadsCount = WorkerThreadsCount; - Opts.BuildRecoveryAST = RecoveryAST; - Opts.PreserveRecoveryASTType = RecoveryASTType; Opts.FoldingRanges = FoldingRanges; Opts.MemoryCleanup = getMemoryCleanupFunction(); @@ -873,7 +861,6 @@ Opts.ClangTidyProvider = ClangTidyOptProvider; } Opts.AsyncPreambleBuilds = AsyncPreamble; - Opts.SuggestMissingIncludes = SuggestMissingIncludes; Opts.QueryDriverGlobs = std::move(QueryDriverGlobs); Opts.TweakFilter = [&](const Tweak &T) { if (T.hidden() && !HiddenFeatures) Index: clang-tools-extra/clangd/ParsedAST.cpp =================================================================== --- clang-tools-extra/clangd/ParsedAST.cpp +++ clang-tools-extra/clangd/ParsedAST.cpp @@ -351,8 +351,7 @@ // (e.g. incomplete type) and attach include insertion fixes to diagnostics. llvm::Optional<IncludeFixer> FixIncludes; auto BuildDir = VFS->getCurrentWorkingDirectory(); - if (Inputs.Opts.SuggestMissingIncludes && Inputs.Index && - !BuildDir.getError()) { + if (Inputs.Index && !BuildDir.getError()) { auto Style = getFormatStyleForFile(Filename, Inputs.Contents, *Inputs.TFS); auto Inserter = std::make_shared<IncludeInserter>( Filename, Inputs.Contents, Style, BuildDir.get(), Index: clang-tools-extra/clangd/Compiler.h =================================================================== --- clang-tools-extra/clangd/Compiler.h +++ clang-tools-extra/clangd/Compiler.h @@ -37,7 +37,6 @@ // Options to run clang e.g. when parsing AST. struct ParseOptions { - bool SuggestMissingIncludes = false; bool BuildRecoveryAST = false; bool PreserveRecoveryASTType = false; }; Index: clang-tools-extra/clangd/ClangdServer.h =================================================================== --- clang-tools-extra/clangd/ClangdServer.h +++ clang-tools-extra/clangd/ClangdServer.h @@ -144,8 +144,6 @@ /*RebuildRatio=*/1, }; - bool SuggestMissingIncludes = false; - /// Clangd will execute compiler drivers matching one of these globs to /// fetch system include path. std::vector<std::string> QueryDriverGlobs; @@ -383,10 +381,6 @@ // When set, provides clang-tidy options for a specific file. TidyProviderRef ClangTidyProvider; - // If this is true, suggest include insertion fixes for diagnostic errors that - // can be caused by missing includes (e.g. member access in incomplete type). - bool SuggestMissingIncludes = false; - // If true, preserve expressions in AST for broken code. bool BuildRecoveryAST = true; // If true, preserve the type for recovery AST. Index: clang-tools-extra/clangd/ClangdServer.cpp =================================================================== --- clang-tools-extra/clangd/ClangdServer.cpp +++ clang-tools-extra/clangd/ClangdServer.cpp @@ -145,7 +145,6 @@ Opts.CollectMainFileRefs) : nullptr), ClangTidyProvider(Opts.ClangTidyProvider), - SuggestMissingIncludes(Opts.SuggestMissingIncludes), BuildRecoveryAST(Opts.BuildRecoveryAST), PreserveRecoveryASTType(Opts.PreserveRecoveryASTType), WorkspaceRoot(Opts.WorkspaceRoot), @@ -202,7 +201,6 @@ llvm::StringRef Version, WantDiagnostics WantDiags, bool ForceRebuild) { ParseOptions Opts; - Opts.SuggestMissingIncludes = SuggestMissingIncludes; // Compile command is set asynchronously during update, as it can be slow. ParseInputs Inputs;
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits