From 4731f379f42dfd561afada32175031021a366e99 Mon Sep 17 00:00:00 2001 From: Eberhard Graether Date: Fri, 15 Sep 2017 12:44:22 +0200 Subject: [PATCH] logic: Fixed click on call location of implicit template specialization leads nowhere --- src/lib/data/storage/PersistentStorage.cpp | 38 ++++++++++++++-------- 1 file changed, 24 insertions(+), 14 deletions(-) diff --git a/src/lib/data/storage/PersistentStorage.cpp b/src/lib/data/storage/PersistentStorage.cpp index 26221d14..8e87e610 100644 --- a/src/lib/data/storage/PersistentStorage.cpp +++ b/src/lib/data/storage/PersistentStorage.cpp @@ -1159,6 +1159,8 @@ std::vector PersistentStorage::getNodeIdsForLocationIds(const std::vector edgeIds; std::set nodeIds; + std::set implicitEdgeIds; + std::set implicitNodeIds; for (const StorageOccurrence& occurrence: m_sqliteIndexStorage.getOccurrencesForLocationIds(locationIds)) { @@ -1170,20 +1172,24 @@ std::vector PersistentStorage::getNodeIdsForLocationIds(const std::vectorsecond == DEFINITION_IMPLICIT) { - continue; + implicitEdgeIds.insert(edge.targetNodeId); + } + else + { + edgeIds.insert(edge.targetNodeId); } - - edgeIds.insert(edge.targetNodeId); } else if (m_sqliteIndexStorage.isNode(elementId)) { auto it = m_symbolDefinitionKinds.find(elementId); if (it != m_symbolDefinitionKinds.end() && it->second == DEFINITION_IMPLICIT) { - continue; + implicitNodeIds.insert(elementId); + } + else + { + nodeIds.insert(elementId); } - - nodeIds.insert(elementId); } } @@ -1191,8 +1197,18 @@ std::vector PersistentStorage::getNodeIdsForLocationIds(const std::vector PersistentStorage::getSourceLocationsForTokenIds( @@ -1845,12 +1861,6 @@ TooltipInfo PersistentStorage::getTooltipInfoForSourceLocationIdsAndLocalSymbolI for (const StorageNode& node : m_sqliteIndexStorage.getAllByIds(tokenIds)) { - auto it = m_symbolDefinitionKinds.find(node.id); - if (it != m_symbolDefinitionKinds.end() && it->second == DEFINITION_IMPLICIT) - { - continue; - } - TooltipSnippet snippet; NameHierarchy nameHierarchy = NameHierarchy::deserialize(node.serializedName);