[clangd] Make FSProvider const-correct. NFC

llvm-svn: 344118
This commit is contained in:
Sam McCall 2018-10-10 07:46:15 +00:00
parent 153b53adfa
commit 26fac469d2
5 changed files with 12 additions and 11 deletions

View File

@ -97,8 +97,8 @@ ClangdServer::Options ClangdServer::optsForTest() {
return Opts;
}
ClangdServer::ClangdServer(GlobalCompilationDatabase &CDB,
FileSystemProvider &FSProvider,
ClangdServer::ClangdServer(const GlobalCompilationDatabase &CDB,
const FileSystemProvider &FSProvider,
DiagnosticsConsumer &DiagConsumer,
const Options &Opts)
: CDB(CDB), DiagConsumer(DiagConsumer), FSProvider(FSProvider),

View File

@ -109,7 +109,8 @@ public:
/// \p DiagConsumer. Note that a callback to \p DiagConsumer happens on a
/// worker thread. Therefore, instances of \p DiagConsumer must properly
/// synchronize access to shared state.
ClangdServer(GlobalCompilationDatabase &CDB, FileSystemProvider &FSProvider,
ClangdServer(const GlobalCompilationDatabase &CDB,
const FileSystemProvider &FSProvider,
DiagnosticsConsumer &DiagConsumer, const Options &Opts);
/// Set the root path of the workspace.
@ -227,9 +228,9 @@ private:
tooling::CompileCommand getCompileCommand(PathRef File);
GlobalCompilationDatabase &CDB;
const GlobalCompilationDatabase &CDB;
DiagnosticsConsumer &DiagConsumer;
FileSystemProvider &FSProvider;
const FileSystemProvider &FSProvider;
/// Used to synchronize diagnostic responses for added and removed files.
llvm::StringMap<DocVersion> InternalVersion;

View File

@ -25,13 +25,13 @@ public:
/// Context::current() will be the context passed to the clang entrypoint,
/// such as addDocument(), and will also be propagated to result callbacks.
/// Embedders may use this to isolate filesystem accesses.
virtual IntrusiveRefCntPtr<vfs::FileSystem> getFileSystem() = 0;
virtual IntrusiveRefCntPtr<vfs::FileSystem> getFileSystem() const = 0;
};
class RealFileSystemProvider : public FileSystemProvider {
public:
// FIXME: returns the single real FS instance, which is not threadsafe.
IntrusiveRefCntPtr<vfs::FileSystem> getFileSystem() override {
IntrusiveRefCntPtr<vfs::FileSystem> getFileSystem() const override {
return vfs::getRealFileSystem();
}
};

View File

@ -264,11 +264,11 @@ int b = a;
TEST_F(ClangdVFSTest, PropagatesContexts) {
static Key<int> Secret;
struct FSProvider : public FileSystemProvider {
IntrusiveRefCntPtr<vfs::FileSystem> getFileSystem() override {
IntrusiveRefCntPtr<vfs::FileSystem> getFileSystem() const override {
Got = Context::current().getExisting(Secret);
return buildTestFS({});
}
int Got;
mutable int Got;
} FS;
struct DiagConsumer : public DiagnosticsConsumer {
void onDiagnosticsReady(PathRef File,
@ -973,7 +973,7 @@ TEST(ClangdTests, PreambleVFSStatCache) {
ListenStatsFSProvider(llvm::StringMap<unsigned> &CountStats)
: CountStats(CountStats) {}
IntrusiveRefCntPtr<vfs::FileSystem> getFileSystem() override {
IntrusiveRefCntPtr<vfs::FileSystem> getFileSystem() const override {
class ListenStatVFS : public vfs::ProxyFileSystem {
public:
ListenStatVFS(IntrusiveRefCntPtr<vfs::FileSystem> FS,

View File

@ -29,7 +29,7 @@ buildTestFS(llvm::StringMap<std::string> const &Files,
// A VFS provider that returns TestFSes containing a provided set of files.
class MockFSProvider : public FileSystemProvider {
public:
IntrusiveRefCntPtr<vfs::FileSystem> getFileSystem() override {
IntrusiveRefCntPtr<vfs::FileSystem> getFileSystem() const override {
return buildTestFS(Files);
}