diff --git a/src/source_clang.cpp b/src/source_clang.cpp index 78d46c9..a96b4a4 100644 --- a/src/source_clang.cpp +++ b/src/source_clang.cpp @@ -682,6 +682,8 @@ void Source::ClangViewParse::show_type_tooltips(const Gdk::Rectangle &rectangle) auto start_cursor = cursor; for(auto parent = cursor.get_semantic_parent(); parent.get_kind() != clangmm::Cursor::Kind::TranslationUnit && + // TODO: update clangmm::Cursor::Kind::TranslationUnit (changed from 300 to 350 in llvm 15) + static_cast(parent.get_kind()) != 350 && parent.get_kind() != clangmm::Cursor::Kind::ClassDecl; parent = parent.get_semantic_parent()) start_cursor = parent; @@ -1559,7 +1561,8 @@ Source::ClangViewRefactor::ClangViewRefactor(const boost::filesystem::path &file // If no implementation was found, try using Ctags auto name = identifier.cursor.get_spelling(); auto parent = identifier.cursor.get_semantic_parent(); - while(parent && parent.get_kind() != clangmm::Cursor::Kind::TranslationUnit) { + // TODO: update clangmm::Cursor::Kind::TranslationUnit (changed from 300 to 350 in llvm 15) + while(parent && parent.get_kind() != clangmm::Cursor::Kind::TranslationUnit && static_cast(parent.get_kind()) != 350) { auto spelling = parent.get_spelling() + "::"; name.insert(0, spelling); parent = parent.get_semantic_parent(); @@ -1789,7 +1792,8 @@ Source::ClangViewRefactor::ClangViewRefactor(const boost::filesystem::path &file if(c == 0 || (*clang_tokens)[c - 1].get_spelling() != "::") { auto name = token_spelling; auto parent = token.get_cursor().get_type().get_cursor().get_semantic_parent(); - while(parent && parent.get_kind() != clangmm::Cursor::Kind::TranslationUnit) { + // TODO: update clangmm::Cursor::Kind::TranslationUnit (changed from 300 to 350 in llvm 15) + while(parent && parent.get_kind() != clangmm::Cursor::Kind::TranslationUnit && static_cast(parent.get_kind()) != 350) { auto spelling = parent.get_token_spelling(); name.insert(0, spelling + "::"); parent = parent.get_semantic_parent(); @@ -1831,7 +1835,8 @@ Source::ClangViewRefactor::ClangViewRefactor(const boost::filesystem::path &file auto name = cursor.get_spelling(); auto parent = cursor.get_semantic_parent(); std::vector semantic_parents; - while(parent && parent.get_kind() != clangmm::Cursor::Kind::TranslationUnit) { + // TODO: update clangmm::Cursor::Kind::TranslationUnit (changed from 300 to 350 in llvm 15) + while(parent && parent.get_kind() != clangmm::Cursor::Kind::TranslationUnit && static_cast(parent.get_kind()) != 350) { auto spelling = parent.get_spelling() + "::"; if(spelling != "::") { semantic_parents.emplace_back(spelling); @@ -1908,7 +1913,8 @@ Source::ClangViewRefactor::ClangViewRefactor(const boost::filesystem::path &file } last_cursor = cursor; cursor = cursor.get_semantic_parent(); - } while(cursor && cursor.get_kind() != clangmm::Cursor::Kind::TranslationUnit); + // TODO: update clangmm::Cursor::Kind::TranslationUnit (changed from 300 to 350 in llvm 15) + } while(cursor && cursor.get_kind() != clangmm::Cursor::Kind::TranslationUnit && static_cast(cursor.get_kind()) != 350); if(last_cursor.get_kind() != clangmm::Cursor::Kind::Namespace) data.emplace(++data.begin(), "");