diff --git a/src/indexer.cc b/src/indexer.cc index 9c9af9a1..188bbf97 100644 --- a/src/indexer.cc +++ b/src/indexer.cc @@ -1432,8 +1432,8 @@ void OnIndexDeclaration(CXClientData client_data, const CXIdxDeclInfo* decl) { var->def.definition_extent = decl_cursor.get_extent(); } else { var->def.declaration = decl_spell; + UniqueAdd(var->uses, decl_spell); } - UniqueAdd(var->uses, decl_spell); AddDeclInitializerUsages(db, decl_cursor); var = db->Resolve(var_id); @@ -1829,7 +1829,6 @@ void OnIndexReference(CXClientData client_data, const CXIdxEntityRefInfo* ref) { var->def.short_name = referenced.get_spelling(); SetVarDetail(var, referenced, nullptr, true, db, param); var->def.kind = ClangSymbolKind::Parameter; - UniqueAdd(var->uses, referenced.get_spelling_range()); } } UniqueAdd(var->uses, loc); diff --git a/src/query_utils.cc b/src/query_utils.cc index 112c16a0..bff75622 100644 --- a/src/query_utils.cc +++ b/src/query_utils.cc @@ -202,7 +202,10 @@ std::vector GetUsesOfSymbol(QueryDatabase* db, } case SymbolKind::Var: { QueryVar& var = db->vars[symbol.idx]; - return var.uses; + std::vector ret = var.uses; + if (include_decl && var.def && var.def->definition_spelling) + ret.push_back(*var.def->definition_spelling); + return ret; } case SymbolKind::File: case SymbolKind::Invalid: {