Skip to content

Commit 8d654df

Browse files
committed
[clangd] Rename FSProvider to TFS in case of ThreadsafeFS
Summary: Depends on D81998 Reviewers: sammccall Subscribers: ilya-biryukov, javed.absar, MaskRay, jkorous, arphaman, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D82024
1 parent 0628705 commit 8d654df

23 files changed

+106
-111
lines changed

Diff for: clang-tools-extra/clangd/ClangdLSPServer.cpp

+4-5
Original file line numberDiff line numberDiff line change
@@ -524,7 +524,7 @@ void ClangdLSPServer::onInitialize(const InitializeParams &Params,
524524
if (NegotiatedOffsetEncoding)
525525
WithOffsetEncoding.emplace(kCurrentOffsetEncoding,
526526
*NegotiatedOffsetEncoding);
527-
Server.emplace(*CDB, FSProvider, ClangdServerOpts,
527+
Server.emplace(*CDB, TFS, ClangdServerOpts,
528528
static_cast<ClangdServer::Callbacks *>(this));
529529
}
530530
applyConfiguration(Params.initializationOptions.ConfigSettings);
@@ -1340,16 +1340,15 @@ void ClangdLSPServer::onSemanticTokensEdits(
13401340
}
13411341

13421342
ClangdLSPServer::ClangdLSPServer(
1343-
class Transport &Transp, const ThreadsafeFS &FSProvider,
1343+
class Transport &Transp, const ThreadsafeFS &TFS,
13441344
const clangd::CodeCompleteOptions &CCOpts,
13451345
const clangd::RenameOptions &RenameOpts,
13461346
llvm::Optional<Path> CompileCommandsDir, bool UseDirBasedCDB,
13471347
llvm::Optional<OffsetEncoding> ForcedOffsetEncoding,
13481348
const ClangdServer::Options &Opts)
13491349
: BackgroundContext(Context::current().clone()), Transp(Transp),
1350-
MsgHandler(new MessageHandler(*this)), FSProvider(FSProvider),
1351-
CCOpts(CCOpts), RenameOpts(RenameOpts),
1352-
SupportedSymbolKinds(defaultSymbolKinds()),
1350+
MsgHandler(new MessageHandler(*this)), TFS(TFS), CCOpts(CCOpts),
1351+
RenameOpts(RenameOpts), SupportedSymbolKinds(defaultSymbolKinds()),
13531352
SupportedCompletionItemKinds(defaultCompletionItemKinds()),
13541353
UseDirBasedCDB(UseDirBasedCDB),
13551354
CompileCommandsDir(std::move(CompileCommandsDir)), ClangdServerOpts(Opts),

Diff for: clang-tools-extra/clangd/ClangdLSPServer.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ class ClangdLSPServer : private ClangdServer::Callbacks {
4141
/// for compile_commands.json in all parent directories of each file.
4242
/// If UseDirBasedCDB is false, compile commands are not read from disk.
4343
// FIXME: Clean up signature around CDBs.
44-
ClangdLSPServer(Transport &Transp, const ThreadsafeFS &FSProvider,
44+
ClangdLSPServer(Transport &Transp, const ThreadsafeFS &TFS,
4545
const clangd::CodeCompleteOptions &CCOpts,
4646
const clangd::RenameOptions &RenameOpts,
4747
llvm::Optional<Path> CompileCommandsDir, bool UseDirBasedCDB,
@@ -207,7 +207,7 @@ class ClangdLSPServer : private ClangdServer::Callbacks {
207207
notify("$/progress", Params);
208208
}
209209

210-
const ThreadsafeFS &FSProvider;
210+
const ThreadsafeFS &TFS;
211211
/// Options used for code completion
212212
clangd::CodeCompleteOptions CCOpts;
213213
/// Options used for rename.

Diff for: clang-tools-extra/clangd/ClangdServer.cpp

+13-13
Original file line numberDiff line numberDiff line change
@@ -130,9 +130,9 @@ ClangdServer::Options::operator TUScheduler::Options() const {
130130
}
131131

132132
ClangdServer::ClangdServer(const GlobalCompilationDatabase &CDB,
133-
const ThreadsafeFS &FSProvider, const Options &Opts,
133+
const ThreadsafeFS &TFS, const Options &Opts,
134134
Callbacks *Callbacks)
135-
: FSProvider(FSProvider),
135+
: TFS(TFS),
136136
DynamicIdx(Opts.BuildDynamicSymbolIndex
137137
? new FileIndex(Opts.HeavyweightDynamicSymbolIndex)
138138
: nullptr),
@@ -163,7 +163,7 @@ ClangdServer::ClangdServer(const GlobalCompilationDatabase &CDB,
163163
AddIndex(Opts.StaticIndex);
164164
if (Opts.BackgroundIndex) {
165165
BackgroundIdx = std::make_unique<BackgroundIndex>(
166-
Context::current().clone(), FSProvider, CDB,
166+
Context::current().clone(), TFS, CDB,
167167
BackgroundIndexStorage::createDiskBackedStorageFactory(
168168
[&CDB](llvm::StringRef File) { return CDB.getProjectInfo(File); }),
169169
std::max(Opts.AsyncThreadsCount, 1u),
@@ -185,12 +185,12 @@ void ClangdServer::addDocument(PathRef File, llvm::StringRef Contents,
185185
// FIXME: call tidy options builder on the worker thread, it can do IO.
186186
if (GetClangTidyOptions)
187187
Opts.ClangTidyOpts =
188-
GetClangTidyOptions(*FSProvider.view(/*CWD=*/llvm::None), File);
188+
GetClangTidyOptions(*TFS.view(/*CWD=*/llvm::None), File);
189189
Opts.SuggestMissingIncludes = SuggestMissingIncludes;
190190

191191
// Compile command is set asynchronously during update, as it can be slow.
192192
ParseInputs Inputs;
193-
Inputs.FSProvider = &FSProvider;
193+
Inputs.TFS = &TFS;
194194
Inputs.Contents = std::string(Contents);
195195
Inputs.Version = Version.str();
196196
Inputs.ForceRebuild = ForceRebuild;
@@ -237,7 +237,7 @@ void ClangdServer::codeComplete(PathRef File, Position Pos,
237237
}
238238
}
239239
}
240-
ParseInputs ParseInput{IP->Command, &FSProvider, IP->Contents.str()};
240+
ParseInputs ParseInput{IP->Command, &TFS, IP->Contents.str()};
241241
ParseInput.Index = Index;
242242
ParseInput.Opts.BuildRecoveryAST = BuildRecoveryAST;
243243
ParseInput.Opts.PreserveRecoveryASTType = PreserveRecoveryASTType;
@@ -284,7 +284,7 @@ void ClangdServer::signatureHelp(PathRef File, Position Pos,
284284
return CB(llvm::createStringError(llvm::inconvertibleErrorCode(),
285285
"Failed to parse includes"));
286286

287-
ParseInputs ParseInput{IP->Command, &FSProvider, IP->Contents.str()};
287+
ParseInputs ParseInput{IP->Command, &TFS, IP->Contents.str()};
288288
ParseInput.Index = Index;
289289
ParseInput.Opts.BuildRecoveryAST = BuildRecoveryAST;
290290
ParseInput.Opts.PreserveRecoveryASTType = PreserveRecoveryASTType;
@@ -321,7 +321,7 @@ ClangdServer::formatOnType(llvm::StringRef Code, PathRef File, Position Pos,
321321
return CursorPos.takeError();
322322
auto Style = format::getStyle(format::DefaultFormatStyle, File,
323323
format::DefaultFallbackStyle, Code,
324-
FSProvider.view(/*CWD=*/llvm::None).get());
324+
TFS.view(/*CWD=*/llvm::None).get());
325325
if (!Style)
326326
return Style.takeError();
327327

@@ -398,7 +398,7 @@ void ClangdServer::rename(PathRef File, Position Pos, llvm::StringRef NewName,
398398

399399
if (Opts.WantFormat) {
400400
auto Style = getFormatStyleForFile(File, InpAST->Inputs.Contents,
401-
*InpAST->Inputs.FSProvider);
401+
*InpAST->Inputs.TFS);
402402
llvm::Error Err = llvm::Error::success();
403403
for (auto &E : *Edits)
404404
Err =
@@ -499,7 +499,7 @@ void ClangdServer::applyTweak(PathRef File, Range Sel, StringRef TweakID,
499499
for (auto &It : (*Effect)->ApplyEdits) {
500500
Edit &E = It.second;
501501
format::FormatStyle Style =
502-
getFormatStyleForFile(File, E.InitialCode, FSProvider);
502+
getFormatStyleForFile(File, E.InitialCode, TFS);
503503
if (llvm::Error Err = reformatEdit(E, Style))
504504
elog("Failed to format {0}: {1}", It.first(), std::move(Err));
505505
}
@@ -550,7 +550,7 @@ void ClangdServer::switchSourceHeader(
550550
// 2) if 1) fails, we use the AST&Index approach, it is slower but supports
551551
// different code layout.
552552
if (auto CorrespondingFile = getCorrespondingHeaderOrSource(
553-
std::string(Path), FSProvider.view(llvm::None)))
553+
std::string(Path), TFS.view(llvm::None)))
554554
return CB(std::move(CorrespondingFile));
555555
auto Action = [Path = Path.str(), CB = std::move(CB),
556556
this](llvm::Expected<InputsAndAST> InpAST) mutable {
@@ -565,7 +565,7 @@ llvm::Expected<tooling::Replacements>
565565
ClangdServer::formatCode(llvm::StringRef Code, PathRef File,
566566
llvm::ArrayRef<tooling::Range> Ranges) {
567567
// Call clang-format.
568-
format::FormatStyle Style = getFormatStyleForFile(File, Code, FSProvider);
568+
format::FormatStyle Style = getFormatStyleForFile(File, Code, TFS);
569569
tooling::Replacements IncludeReplaces =
570570
format::sortIncludes(Style, Code, Ranges, File);
571571
auto Changed = tooling::applyAllReplacements(Code, IncludeReplaces);
@@ -598,7 +598,7 @@ void ClangdServer::findHover(PathRef File, Position Pos,
598598
if (!InpAST)
599599
return CB(InpAST.takeError());
600600
format::FormatStyle Style = getFormatStyleForFile(
601-
File, InpAST->Inputs.Contents, *InpAST->Inputs.FSProvider);
601+
File, InpAST->Inputs.Contents, *InpAST->Inputs.TFS);
602602
CB(clangd::getHover(InpAST->AST, Pos, std::move(Style), Index));
603603
};
604604

Diff for: clang-tools-extra/clangd/ClangdServer.h

+3-4
Original file line numberDiff line numberDiff line change
@@ -171,9 +171,8 @@ class ClangdServer {
171171
/// added file (i.e., when processing a first call to addDocument) and reuses
172172
/// those arguments for subsequent reparses. However, ClangdServer will check
173173
/// if compilation arguments changed on calls to forceReparse().
174-
ClangdServer(const GlobalCompilationDatabase &CDB,
175-
const ThreadsafeFS &FSProvider, const Options &Opts,
176-
Callbacks *Callbacks = nullptr);
174+
ClangdServer(const GlobalCompilationDatabase &CDB, const ThreadsafeFS &TFS,
175+
const Options &Opts, Callbacks *Callbacks = nullptr);
177176

178177
/// Add a \p File to the list of tracked C++ files or update the contents if
179178
/// \p File is already tracked. Also schedules parsing of the AST for it on a
@@ -330,7 +329,7 @@ class ClangdServer {
330329
formatCode(llvm::StringRef Code, PathRef File,
331330
ArrayRef<tooling::Range> Ranges);
332331

333-
const ThreadsafeFS &FSProvider;
332+
const ThreadsafeFS &TFS;
334333

335334
Path ResourceDir;
336335
// The index used to look up symbols. This could be:

Diff for: clang-tools-extra/clangd/CodeComplete.cpp

+5-6
Original file line numberDiff line numberDiff line change
@@ -1113,8 +1113,7 @@ bool semaCodeComplete(std::unique_ptr<CodeCompleteConsumer> Consumer,
11131113
// NOTE: we must call BeginSourceFile after prepareCompilerInstance. Otherwise
11141114
// the remapped buffers do not get freed.
11151115
llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem> VFS =
1116-
Input.ParseInput.FSProvider->view(
1117-
Input.ParseInput.CompileCommand.Directory);
1116+
Input.ParseInput.TFS->view(Input.ParseInput.CompileCommand.Directory);
11181117
if (Input.Preamble.StatCache)
11191118
VFS = Input.Preamble.StatCache->getConsumingFS(std::move(VFS));
11201119
auto Clang = prepareCompilerInstance(
@@ -1292,7 +1291,7 @@ class CodeCompleteFlow {
12921291
IsUsingDeclaration = Recorder->CCContext.isUsingDeclaration();
12931292
auto Style = getFormatStyleForFile(SemaCCInput.FileName,
12941293
SemaCCInput.ParseInput.Contents,
1295-
*SemaCCInput.ParseInput.FSProvider);
1294+
*SemaCCInput.ParseInput.TFS);
12961295
const auto NextToken = Lexer::findNextToken(
12971296
Recorder->CCSema->getPreprocessor().getCodeCompletionLoc(),
12981297
Recorder->CCSema->getSourceManager(), Recorder->CCSema->LangOpts);
@@ -1364,7 +1363,7 @@ class CodeCompleteFlow {
13641363
}
13651364

13661365
CodeCompleteResult runWithoutSema(llvm::StringRef Content, size_t Offset,
1367-
const ThreadsafeFS &FSProvider) && {
1366+
const ThreadsafeFS &TFS) && {
13681367
trace::Span Tracer("CodeCompleteWithoutSema");
13691368
// Fill in fields normally set by runWithSema()
13701369
HeuristicPrefix = guessCompletionPrefix(Content, Offset);
@@ -1380,7 +1379,7 @@ class CodeCompleteFlow {
13801379
ProxSources[FileName].Cost = 0;
13811380
FileProximity.emplace(ProxSources);
13821381

1383-
auto Style = getFormatStyleForFile(FileName, Content, FSProvider);
1382+
auto Style = getFormatStyleForFile(FileName, Content, TFS);
13841383
// This will only insert verbatim headers.
13851384
Inserter.emplace(FileName, Content, Style,
13861385
/*BuildDir=*/"", /*HeaderSearchInfo=*/nullptr);
@@ -1781,7 +1780,7 @@ CodeCompleteResult codeComplete(PathRef FileName, Position Pos,
17811780
SpecFuzzyFind, Opts);
17821781
return (!Preamble || Opts.RunParser == CodeCompleteOptions::NeverParse)
17831782
? std::move(Flow).runWithoutSema(ParseInput.Contents, *Offset,
1784-
*ParseInput.FSProvider)
1783+
*ParseInput.TFS)
17851784
: std::move(Flow).run({FileName, *Offset, *Preamble,
17861785
// We want to serve code completions with
17871786
// low latency, so don't bother patching.

Diff for: clang-tools-extra/clangd/Compiler.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ buildCompilerInvocation(const ParseInputs &Inputs, clang::DiagnosticConsumer &D,
4848
for (const auto &S : Inputs.CompileCommand.CommandLine)
4949
ArgStrs.push_back(S.c_str());
5050

51-
auto VFS = Inputs.FSProvider->view(Inputs.CompileCommand.Directory);
51+
auto VFS = Inputs.TFS->view(Inputs.CompileCommand.Directory);
5252
llvm::IntrusiveRefCntPtr<DiagnosticsEngine> CommandLineDiagsEngine =
5353
CompilerInstance::createDiagnostics(new DiagnosticOptions, &D, false);
5454
std::unique_ptr<CompilerInvocation> CI = createInvocationFromCommandLine(

Diff for: clang-tools-extra/clangd/Compiler.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ struct ParseOptions {
4646
/// Information required to run clang, e.g. to parse AST or do code completion.
4747
struct ParseInputs {
4848
tooling::CompileCommand CompileCommand;
49-
const ThreadsafeFS *FSProvider;
49+
const ThreadsafeFS *TFS;
5050
std::string Contents;
5151
// Version identifier for Contents, provided by the client and opaque to us.
5252
std::string Version = "null";

Diff for: clang-tools-extra/clangd/ParsedAST.cpp

+2-3
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,7 @@ ParsedAST::build(llvm::StringRef Filename, const ParseInputs &Inputs,
249249
trace::Span Tracer("BuildAST");
250250
SPAN_ATTACH(Tracer, "File", Filename);
251251

252-
auto VFS = Inputs.FSProvider->view(Inputs.CompileCommand.Directory);
252+
auto VFS = Inputs.TFS->view(Inputs.CompileCommand.Directory);
253253
if (Preamble && Preamble->StatCache)
254254
VFS = Preamble->StatCache->getConsumingFS(std::move(VFS));
255255

@@ -355,8 +355,7 @@ ParsedAST::build(llvm::StringRef Filename, const ParseInputs &Inputs,
355355
auto BuildDir = VFS->getCurrentWorkingDirectory();
356356
if (Inputs.Opts.SuggestMissingIncludes && Inputs.Index &&
357357
!BuildDir.getError()) {
358-
auto Style =
359-
getFormatStyleForFile(Filename, Inputs.Contents, *Inputs.FSProvider);
358+
auto Style = getFormatStyleForFile(Filename, Inputs.Contents, *Inputs.TFS);
360359
auto Inserter = std::make_shared<IncludeInserter>(
361360
Filename, Inputs.Contents, Style, BuildDir.get(),
362361
&Clang->getPreprocessor().getHeaderSearchInfo());

Diff for: clang-tools-extra/clangd/Preamble.cpp

+4-4
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,7 @@ scanPreamble(llvm::StringRef Contents,
252252
// Build and run Preprocessor over the preamble.
253253
ParseInputs PI;
254254
PI.Contents = Contents.str();
255-
PI.FSProvider = FSProvider.get();
255+
PI.TFS = FSProvider.get();
256256
PI.CompileCommand = Cmd;
257257
IgnoringDiagConsumer IgnoreDiags;
258258
auto CI = buildCompilerInvocation(PI, IgnoreDiags);
@@ -358,7 +358,7 @@ buildPreamble(PathRef FileName, CompilerInvocation CI,
358358
CI.getPreprocessorOpts().WriteCommentListToPCH = false;
359359

360360
CppFilePreambleCallbacks SerializedDeclsCollector(FileName, PreambleCallback);
361-
auto VFS = Inputs.FSProvider->view(Inputs.CompileCommand.Directory);
361+
auto VFS = Inputs.TFS->view(Inputs.CompileCommand.Directory);
362362
llvm::SmallString<32> AbsFileName(FileName);
363363
VFS->makeAbsolute(AbsFileName);
364364
auto StatCache = std::make_unique<PreambleFileStatusCache>(AbsFileName);
@@ -395,7 +395,7 @@ bool isPreambleCompatible(const PreambleData &Preamble,
395395
llvm::MemoryBuffer::getMemBuffer(Inputs.Contents, FileName);
396396
auto Bounds =
397397
ComputePreambleBounds(*CI.getLangOpts(), ContentsBuffer.get(), 0);
398-
auto VFS = Inputs.FSProvider->view(Inputs.CompileCommand.Directory);
398+
auto VFS = Inputs.TFS->view(Inputs.CompileCommand.Directory);
399399
return compileCommandsAreEqual(Inputs.CompileCommand,
400400
Preamble.CompileCommand) &&
401401
Preamble.Preamble.CanReuse(CI, ContentsBuffer.get(), Bounds,
@@ -423,7 +423,7 @@ PreamblePatch PreamblePatch::create(llvm::StringRef FileName,
423423
SPAN_ATTACH(Tracer, "File", FileName);
424424
assert(llvm::sys::path::is_absolute(FileName) && "relative FileName!");
425425
auto VFS = Baseline.StatCache->getConsumingFS(
426-
Modified.FSProvider->view(/*CWD=*/llvm::None));
426+
Modified.TFS->view(/*CWD=*/llvm::None));
427427
// First scan preprocessor directives in Baseline and Modified. These will be
428428
// used to figure out newly added directives in Modified. Scanning can fail,
429429
// the code just bails out and creates an empty patch in such cases, as:

Diff for: clang-tools-extra/clangd/SourceCode.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -577,10 +577,10 @@ llvm::Optional<FileDigest> digestFile(const SourceManager &SM, FileID FID) {
577577

578578
format::FormatStyle getFormatStyleForFile(llvm::StringRef File,
579579
llvm::StringRef Content,
580-
const ThreadsafeFS &FSProvider) {
580+
const ThreadsafeFS &TFS) {
581581
auto Style = format::getStyle(format::DefaultFormatStyle, File,
582582
format::DefaultFallbackStyle, Content,
583-
FSProvider.view(/*CWD=*/llvm::None).get());
583+
TFS.view(/*CWD=*/llvm::None).get());
584584
if (!Style) {
585585
log("getStyle() failed for file {0}: {1}. Fallback is LLVM style.", File,
586586
Style.takeError());

Diff for: clang-tools-extra/clangd/SourceCode.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ llvm::Optional<std::string> getCanonicalPath(const FileEntry *F,
168168
/// though the latter may have been overridden in main()!
169169
format::FormatStyle getFormatStyleForFile(llvm::StringRef File,
170170
llvm::StringRef Content,
171-
const ThreadsafeFS &FSProvider);
171+
const ThreadsafeFS &TFS);
172172

173173
/// Cleanup and format the given replacements.
174174
llvm::Expected<tooling::Replacements>

Diff for: clang-tools-extra/clangd/index/Background.cpp

+5-5
Original file line numberDiff line numberDiff line change
@@ -90,11 +90,11 @@ bool shardIsStale(const LoadedShard &LS, llvm::vfs::FileSystem *FS) {
9090
} // namespace
9191

9292
BackgroundIndex::BackgroundIndex(
93-
Context BackgroundContext, const ThreadsafeFS &FSProvider,
93+
Context BackgroundContext, const ThreadsafeFS &TFS,
9494
const GlobalCompilationDatabase &CDB,
9595
BackgroundIndexStorage::Factory IndexStorageFactory, size_t ThreadPoolSize,
9696
std::function<void(BackgroundQueue::Stats)> OnProgress)
97-
: SwapIndex(std::make_unique<MemIndex>()), FSProvider(FSProvider), CDB(CDB),
97+
: SwapIndex(std::make_unique<MemIndex>()), TFS(TFS), CDB(CDB),
9898
BackgroundContext(std::move(BackgroundContext)),
9999
Rebuilder(this, &IndexedSymbols, ThreadPoolSize),
100100
IndexStorageFactory(std::move(IndexStorageFactory)),
@@ -244,7 +244,7 @@ llvm::Error BackgroundIndex::index(tooling::CompileCommand Cmd) {
244244
SPAN_ATTACH(Tracer, "file", Cmd.Filename);
245245
auto AbsolutePath = getAbsolutePath(Cmd);
246246

247-
auto FS = FSProvider.view(Cmd.Directory);
247+
auto FS = TFS.view(Cmd.Directory);
248248
auto Buf = FS->getBufferForFile(AbsolutePath);
249249
if (!Buf)
250250
return llvm::errorCodeToError(Buf.getError());
@@ -259,7 +259,7 @@ llvm::Error BackgroundIndex::index(tooling::CompileCommand Cmd) {
259259

260260
vlog("Indexing {0} (digest:={1})", Cmd.Filename, llvm::toHex(Hash));
261261
ParseInputs Inputs;
262-
Inputs.FSProvider = &FSProvider;
262+
Inputs.TFS = &TFS;
263263
Inputs.CompileCommand = std::move(Cmd);
264264
IgnoreDiagnostics IgnoreDiags;
265265
auto CI = buildCompilerInvocation(Inputs, IgnoreDiags);
@@ -381,7 +381,7 @@ BackgroundIndex::loadProject(std::vector<std::string> MainFiles) {
381381
Rebuilder.loadedShard(LoadedShards);
382382
Rebuilder.doneLoading();
383383

384-
auto FS = FSProvider.view(/*CWD=*/llvm::None);
384+
auto FS = TFS.view(/*CWD=*/llvm::None);
385385
llvm::DenseSet<PathRef> TUsToIndex;
386386
// We'll accept data from stale shards, but ensure the files get reindexed
387387
// soon.

Diff for: clang-tools-extra/clangd/index/Background.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ class BackgroundIndex : public SwapIndex {
178178
bool HadErrors);
179179

180180
// configuration
181-
const ThreadsafeFS &FSProvider;
181+
const ThreadsafeFS &TFS;
182182
const GlobalCompilationDatabase &CDB;
183183
Context BackgroundContext;
184184

0 commit comments

Comments
 (0)