Index: clang-doc/Serialize.cpp =================================================================== --- clang-doc/Serialize.cpp +++ clang-doc/Serialize.cpp @@ -329,7 +329,7 @@ return nullptr; auto I = llvm::make_unique(); populateInfo(*I, D, FC); - return I; + return std::unique_ptr{std::move(I)}; } std::unique_ptr emitInfo(const RecordDecl *D, const FullComment *FC, @@ -343,7 +343,7 @@ parseFields(*I, D, PublicOnly); if (const auto *C = dyn_cast(D)) parseBases(*I, C); - return I; + return std::unique_ptr{std::move(I)}; } std::unique_ptr emitInfo(const FunctionDecl *D, const FullComment *FC, @@ -362,7 +362,7 @@ else I->USR = SymbolID(); I->ChildFunctions.push_back(std::move(Func)); - return I; + return std::unique_ptr{std::move(I)}; } std::unique_ptr emitInfo(const CXXMethodDecl *D, const FullComment *FC, @@ -383,7 +383,7 @@ auto I = llvm::make_unique(); I->USR = ParentUSR; I->ChildFunctions.push_back(std::move(Func)); - return I; + return std::unique_ptr{std::move(I)}; } std::unique_ptr emitInfo(const EnumDecl *D, const FullComment *FC, @@ -400,18 +400,16 @@ if (!Enum.Namespace.empty()) { switch (Enum.Namespace[0].RefType) { case InfoType::IT_namespace: { - std::unique_ptr IPtr = llvm::make_unique(); - NamespaceInfo *I = static_cast(IPtr.get()); + auto I = llvm::make_unique(); I->USR = Enum.Namespace[0].USR; I->ChildEnums.push_back(std::move(Enum)); - return IPtr; + return std::unique_ptr{std::move(I)}; } case InfoType::IT_record: { - std::unique_ptr IPtr = llvm::make_unique(); - RecordInfo *I = static_cast(IPtr.get()); + auto I = llvm::make_unique(); I->USR = Enum.Namespace[0].USR; I->ChildEnums.push_back(std::move(Enum)); - return IPtr; + return std::unique_ptr{std::move(I)}; } default: break; @@ -422,7 +420,7 @@ auto I = llvm::make_unique(); I->USR = SymbolID(); I->ChildEnums.push_back(std::move(Enum)); - return I; + return std::unique_ptr{std::move(I)}; } } // namespace serialize