From 455af678379d9e360a8aad95e1e7b513a222b2a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonathan=20M=C3=BCller?= Date: Wed, 19 Apr 2017 17:16:18 +0200 Subject: [PATCH] Fix issue with using declarations --- src/libclang/libclang_parser.cpp | 2 +- src/libclang/namespace_parser.cpp | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/libclang/libclang_parser.cpp b/src/libclang/libclang_parser.cpp index e149d32..a35fbbf 100644 --- a/src/libclang/libclang_parser.cpp +++ b/src/libclang/libclang_parser.cpp @@ -174,7 +174,7 @@ namespace auto loc = source_location::make_file(path); // line number won't help auto text = detail::cxstring(clang_getDiagnosticSpelling(diag)); - logger.log("libclang parser", diagnostic{text.c_str(), loc, sev.value()}); + logger.log("libclang", diagnostic{text.c_str(), loc, sev.value()}); } } } diff --git a/src/libclang/namespace_parser.cpp b/src/libclang/namespace_parser.cpp index 250dcda..d00bcea 100644 --- a/src/libclang/namespace_parser.cpp +++ b/src/libclang/namespace_parser.cpp @@ -131,12 +131,15 @@ namespace std::vector result; detail::visit_children(cur, [&](const CXCursor& child) { + if (!result.empty()) + return; switch (clang_getCursorKind(child)) { case CXCursor_TypeRef: case CXCursor_TemplateRef: case CXCursor_MemberRef: case CXCursor_VariableRef: + case CXCursor_DeclRefExpr: { auto referenced = clang_getCursorReferenced(child); result.push_back(detail::get_entity_id(referenced));