[clang-tools-extra] r323859 - [clangd] Attempt to fix compilation breakage with MSVC.
Ilya Biryukov via cfe-commits
cfe-commits at lists.llvm.org
Wed Jan 31 01:50:21 PST 2018
Author: ibiryukov
Date: Wed Jan 31 01:50:21 2018
New Revision: 323859
URL: http://llvm.org/viewvc/llvm-project?rev=323859&view=rev
Log:
[clangd] Attempt to fix compilation breakage with MSVC.
Modified:
clang-tools-extra/trunk/clangd/ClangdServer.cpp
Modified: clang-tools-extra/trunk/clangd/ClangdServer.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clangd/ClangdServer.cpp?rev=323859&r1=323858&r2=323859&view=diff
==============================================================================
--- clang-tools-extra/trunk/clangd/ClangdServer.cpp (original)
+++ clang-tools-extra/trunk/clangd/ClangdServer.cpp Wed Jan 31 01:50:21 2018
@@ -34,21 +34,25 @@ namespace {
// Issues an async read of AST and waits for results.
template <class Ret, class Func>
Ret blockingRunWithAST(TUScheduler &S, PathRef File, Func &&F) {
- std::packaged_task<Ret(llvm::Expected<InputsAndAST>)> Task(
+ // Using Optional to workaround MSVC bug. It requires future<> arguments to
+ // have default ctor.
+ std::packaged_task<llvm::Optional<Ret>(llvm::Expected<InputsAndAST>)> Task(
std::forward<Func>(F));
auto Future = Task.get_future();
S.runWithAST(File, std::move(Task));
- return Future.get();
+ return *Future.get();
}
// Issues an async read of preamble and waits for results.
template <class Ret, class Func>
Ret blockingRunWithPreamble(TUScheduler &S, PathRef File, Func &&F) {
- std::packaged_task<Ret(llvm::Expected<InputsAndPreamble>)> Task(
- std::forward<Func>(F));
+ // Using Optional to workaround MSVC bug. It requires future<> arguments to
+ // have default ctor.
+ std::packaged_task<llvm::Optional<Ret>(llvm::Expected<InputsAndPreamble>)>
+ Task(std::forward<Func>(F));
auto Future = Task.get_future();
S.runWithPreamble(File, std::move(Task));
- return Future.get();
+ return *Future.get();
}
void ignoreError(llvm::Error Err) {
More information about the cfe-commits
mailing list