Author: sammccall Date: Thu Jan 25 09:01:39 2018 New Revision: 323443 URL: http://llvm.org/viewvc/llvm-project?rev=323443&view=rev Log: [clangd] Replace homegrown make_scope_exit with one from ADT
Modified: clang-tools-extra/trunk/clangd/ClangdServer.cpp clang-tools-extra/trunk/clangd/Function.h Modified: clang-tools-extra/trunk/clangd/ClangdServer.cpp URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clangd/ClangdServer.cpp?rev=323443&r1=323442&r2=323443&view=diff ============================================================================== --- clang-tools-extra/trunk/clangd/ClangdServer.cpp (original) +++ clang-tools-extra/trunk/clangd/ClangdServer.cpp Thu Jan 25 09:01:39 2018 @@ -19,6 +19,7 @@ #include "clang/Tooling/Refactoring/RefactoringResultConsumer.h" #include "clang/Tooling/Refactoring/Rename/RenamingAction.h" #include "llvm/ADT/ArrayRef.h" +#include "llvm/ADT/ScopeExit.h" #include "llvm/Support/Errc.h" #include "llvm/Support/FileSystem.h" #include "llvm/Support/FormatProviders.h" @@ -576,7 +577,8 @@ std::future<Context> ClangdServer::sched const Context &)> DeferredRebuild, std::promise<Context> DonePromise, Context Ctx) -> void { - auto Guard = onScopeExit([&]() { DonePromise.set_value(std::move(Ctx)); }); + auto Guard = + llvm::make_scope_exit([&]() { DonePromise.set_value(std::move(Ctx)); }); auto CurrentVersion = DraftMgr.getVersion(FileStr); if (CurrentVersion != Version) Modified: clang-tools-extra/trunk/clangd/Function.h URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clangd/Function.h?rev=323443&r1=323442&r2=323443&view=diff ============================================================================== --- clang-tools-extra/trunk/clangd/Function.h (original) +++ clang-tools-extra/trunk/clangd/Function.h Thu Jan 25 09:01:39 2018 @@ -137,40 +137,6 @@ ForwardBinder<Func, Args...> BindWithFor std::make_tuple(std::forward<Func>(F), std::forward<Args>(As)...)); } -namespace detail { -/// Runs provided callback in destructor. Use onScopeExit helper function to -/// create this object. -template <class Func> struct ScopeExitGuard { - static_assert(std::is_same<typename std::decay<Func>::type, Func>::value, - "Func must be decayed"); - - ScopeExitGuard(Func F) : F(std::move(F)) {} - ~ScopeExitGuard() { - if (!F) - return; - (*F)(); - } - - // Move-only. - ScopeExitGuard(const ScopeExitGuard &) = delete; - ScopeExitGuard &operator=(const ScopeExitGuard &) = delete; - - ScopeExitGuard(ScopeExitGuard &&Other) = default; - ScopeExitGuard &operator=(ScopeExitGuard &&Other) = default; - -private: - llvm::Optional<Func> F; -}; -} // namespace detail - -/// Creates a RAII object that will run \p F in its destructor. -template <class Func> -auto onScopeExit(Func &&F) - -> detail::ScopeExitGuard<typename std::decay<Func>::type> { - return detail::ScopeExitGuard<typename std::decay<Func>::type>( - std::forward<Func>(F)); -} - } // namespace clangd } // namespace clang _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits