This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rG4a0528e4a0e3: [clangd][NFC] Small tweak to combined provider (authored by njames93).
Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D91925/new/ https://reviews.llvm.org/D91925 Files: clang-tools-extra/clangd/ConfigProvider.cpp Index: clang-tools-extra/clangd/ConfigProvider.cpp =================================================================== --- clang-tools-extra/clangd/ConfigProvider.cpp +++ clang-tools-extra/clangd/ConfigProvider.cpp @@ -144,7 +144,7 @@ std::unique_ptr<Provider> Provider::combine(std::vector<const Provider *> Providers) { - struct CombinedProvider : Provider { + class CombinedProvider : public Provider { std::vector<const Provider *> Providers; std::vector<CompiledFragment> @@ -156,14 +156,13 @@ } return Result; } + + public: + CombinedProvider(std::vector<const Provider *> Providers) + : Providers(std::move(Providers)) {} }; - auto Result = std::make_unique<CombinedProvider>(); - Result->Providers = std::move(Providers); - // FIXME: This is a workaround for a bug in older versions of clang (< 3.9) - // The constructor that is supposed to allow for Derived to Base - // conversion does not work. Remove this if we drop support for such - // configurations. - return std::unique_ptr<Provider>(Result.release()); + + return std::make_unique<CombinedProvider>(std::move(Providers)); } Config Provider::getConfig(const Params &P, DiagnosticCallback DC) const {
Index: clang-tools-extra/clangd/ConfigProvider.cpp =================================================================== --- clang-tools-extra/clangd/ConfigProvider.cpp +++ clang-tools-extra/clangd/ConfigProvider.cpp @@ -144,7 +144,7 @@ std::unique_ptr<Provider> Provider::combine(std::vector<const Provider *> Providers) { - struct CombinedProvider : Provider { + class CombinedProvider : public Provider { std::vector<const Provider *> Providers; std::vector<CompiledFragment> @@ -156,14 +156,13 @@ } return Result; } + + public: + CombinedProvider(std::vector<const Provider *> Providers) + : Providers(std::move(Providers)) {} }; - auto Result = std::make_unique<CombinedProvider>(); - Result->Providers = std::move(Providers); - // FIXME: This is a workaround for a bug in older versions of clang (< 3.9) - // The constructor that is supposed to allow for Derived to Base - // conversion does not work. Remove this if we drop support for such - // configurations. - return std::unique_ptr<Provider>(Result.release()); + + return std::make_unique<CombinedProvider>(std::move(Providers)); } Config Provider::getConfig(const Params &P, DiagnosticCallback DC) const {
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits