aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam McCall <sam.mccall@gmail.com>2018-10-10 07:46:15 +0000
committerSam McCall <sam.mccall@gmail.com>2018-10-10 07:46:15 +0000
commit26fac469d2c27f65c17ff3d0d89b6e7eef18f212 (patch)
tree105899641c8855f1f9f79a242270e34e84484024
parent153b53adfa54f985bb5180fc758f651e18e71ea1 (diff)
downloadllvm-26fac469d2c27f65c17ff3d0d89b6e7eef18f212.zip
llvm-26fac469d2c27f65c17ff3d0d89b6e7eef18f212.tar.gz
llvm-26fac469d2c27f65c17ff3d0d89b6e7eef18f212.tar.bz2
[clangd] Make FSProvider const-correct. NFC
llvm-svn: 344118
-rw-r--r--clang-tools-extra/clangd/ClangdServer.cpp4
-rw-r--r--clang-tools-extra/clangd/ClangdServer.h7
-rw-r--r--clang-tools-extra/clangd/FSProvider.h4
-rw-r--r--clang-tools-extra/unittests/clangd/ClangdTests.cpp6
-rw-r--r--clang-tools-extra/unittests/clangd/TestFS.h2
5 files changed, 12 insertions, 11 deletions
diff --git a/clang-tools-extra/clangd/ClangdServer.cpp b/clang-tools-extra/clangd/ClangdServer.cpp
index f0b94cb..bdba66e0a 100644
--- a/clang-tools-extra/clangd/ClangdServer.cpp
+++ b/clang-tools-extra/clangd/ClangdServer.cpp
@@ -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),
diff --git a/clang-tools-extra/clangd/ClangdServer.h b/clang-tools-extra/clangd/ClangdServer.h
index c66ed86..9f17e73 100644
--- a/clang-tools-extra/clangd/ClangdServer.h
+++ b/clang-tools-extra/clangd/ClangdServer.h
@@ -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;
diff --git a/clang-tools-extra/clangd/FSProvider.h b/clang-tools-extra/clangd/FSProvider.h
index 70dfb44..a11d3810 100644
--- a/clang-tools-extra/clangd/FSProvider.h
+++ b/clang-tools-extra/clangd/FSProvider.h
@@ -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();
}
};
diff --git a/clang-tools-extra/unittests/clangd/ClangdTests.cpp b/clang-tools-extra/unittests/clangd/ClangdTests.cpp
index b9003a8..87741df 100644
--- a/clang-tools-extra/unittests/clangd/ClangdTests.cpp
+++ b/clang-tools-extra/unittests/clangd/ClangdTests.cpp
@@ -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,
diff --git a/clang-tools-extra/unittests/clangd/TestFS.h b/clang-tools-extra/unittests/clangd/TestFS.h
index a0efb75..39c0bb2 100644
--- a/clang-tools-extra/unittests/clangd/TestFS.h
+++ b/clang-tools-extra/unittests/clangd/TestFS.h
@@ -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);
}