diff --git a/src/messages/text_document_code_lens.cc b/src/messages/text_document_code_lens.cc index bda5df3d..bb9b9a98 100644 --- a/src/messages/text_document_code_lens.cc +++ b/src/messages/text_document_code_lens.cc @@ -81,7 +81,7 @@ void AddCodeLens(const char* singular, const char* plural, CommonCodeLensParams* common, QueryLocation loc, - const std::vector& uses, + const std::vector& uses, optional excluded, bool force_display) { TCodeLens code_lens; @@ -96,8 +96,8 @@ void AddCodeLens(const char* singular, // Add unique uses. std::unordered_set unique_uses; - for (const QueryLocation& use : uses) { - if (excluded == use) + for (const Reference& use : uses) { + if (excluded && Reference(*excluded) == use) continue; optional location = GetLsLocation(common->db, common->working_files, use); @@ -155,20 +155,15 @@ struct TextDocumentCodeLensHandler continue; if (type.def->kind == ClangSymbolKind::Namespace) continue; - // FIXME QueryRef - std::vector uses; - uses.reserve(type.uses.size()); - for (auto& x : type.uses) - uses.push_back(ToQueryLocation(db, x)); AddCodeLens("ref", "refs", &common, ref.loc.OffsetStartColumn(0), - uses, type.def->definition_spelling, + type.uses, type.def->definition_spelling, true /*force_display*/); AddCodeLens("derived", "derived", &common, ref.loc.OffsetStartColumn(1), - ToQueryLocation(db, type.derived), nullopt, + ToReference(db, type.derived), nullopt, false /*force_display*/); AddCodeLens("var", "vars", &common, ref.loc.OffsetStartColumn(2), - ToQueryLocation(db, type.instances), nullopt, + ToReference(db, type.instances), nullopt, false /*force_display*/); break; } @@ -200,29 +195,29 @@ struct TextDocumentCodeLensHandler QueryLocation loc = try_ensure_spelling(ref); AddCodeLens("call", "calls", &common, loc.OffsetStartColumn(offset++), - ToQueryLocation(db, func.callers), nullopt, + ToReference(db, func.callers), nullopt, true /*force_display*/); } else { QueryLocation loc = try_ensure_spelling(ref); AddCodeLens("direct call", "direct calls", &common, loc.OffsetStartColumn(offset++), - ToQueryLocation(db, func.callers), nullopt, + ToReference(db, func.callers), nullopt, false /*force_display*/); if (!base_callers.empty()) AddCodeLens("base call", "base calls", &common, loc.OffsetStartColumn(offset++), - ToQueryLocation(db, base_callers), nullopt, + ToReference(db, base_callers), nullopt, false /*force_display*/); if (!derived_callers.empty()) AddCodeLens("derived call", "derived calls", &common, loc.OffsetStartColumn(offset++), - ToQueryLocation(db, derived_callers), nullopt, + ToReference(db, derived_callers), nullopt, false /*force_display*/); } AddCodeLens("derived", "derived", &common, ref.loc.OffsetStartColumn(offset++), - ToQueryLocation(db, func.derived), nullopt, + ToReference(db, func.derived), nullopt, false /*force_display*/); // "Base" @@ -251,7 +246,7 @@ struct TextDocumentCodeLensHandler } } else { AddCodeLens("base", "base", &common, ref.loc.OffsetStartColumn(1), - ToQueryLocation(db, func.def->base), nullopt, + ToReference(db, func.def->base), nullopt, false /*force_display*/); } @@ -271,13 +266,8 @@ struct TextDocumentCodeLensHandler if (var.def->is_macro()) force_display = false; - // FIXME Reference - std::vector uses; - for (auto x: var.uses) - uses.push_back(QueryLocation{x.range, GetFileId(db, x), x.role}); - AddCodeLens("ref", "refs", &common, ref.loc.OffsetStartColumn(0), - uses, var.def->definition_spelling, force_display); + var.uses, var.def->definition_spelling, force_display); break; } case SymbolKind::File: diff --git a/src/query_utils.cc b/src/query_utils.cc index cfdc5ab5..262d59d2 100644 --- a/src/query_utils.cc +++ b/src/query_utils.cc @@ -14,20 +14,6 @@ int ComputeRangeSize(const Range& range) { return range.end.column - range.start.column; } -template -std::vector ToQueryLocationHelper( - QueryDatabase* db, - const std::vector>& ids) { - std::vector locs; - locs.reserve(ids.size()); - for (auto id : ids) { - optional loc = GetDefinitionSpellingOfSymbol(db, id); - if (loc) - locs.push_back(*loc); - } - return locs; -} - } // namespace QueryFileId GetFileId(QueryDatabase* db, Reference ref) { @@ -179,10 +165,6 @@ optional GetDeclarationFileForSymbol(QueryDatabase* db, return nullopt; } -QueryLocation ToQueryLocation(QueryDatabase* db, Reference ref) { - return QueryLocation{ref.range, GetFileId(db, ref), ref.role}; -} - std::vector ToReference(QueryDatabase* db, const std::vector& refs) { std::vector ret; @@ -192,31 +174,6 @@ std::vector ToReference(QueryDatabase* db, return ret; } -std::vector ToQueryLocation( - QueryDatabase* db, - const std::vector& refs) { - std::vector locs; - locs.reserve(refs.size()); - for (const QueryFuncRef& ref : refs) - locs.push_back(QueryLocation{ref.range, GetFileId(db, ref), ref.role}); - return locs; -} -std::vector ToQueryLocation( - QueryDatabase* db, - const std::vector& ids) { - return ToQueryLocationHelper(db, ids); -} -std::vector ToQueryLocation( - QueryDatabase* db, - const std::vector& ids) { - return ToQueryLocationHelper(db, ids); -} -std::vector ToQueryLocation( - QueryDatabase* db, - const std::vector& ids) { - return ToQueryLocationHelper(db, ids); -} - std::vector GetUsesOfSymbol(QueryDatabase* db, const SymbolIdx& symbol, bool include_decl) { diff --git a/src/query_utils.h b/src/query_utils.h index 41f58fcf..8ddf9571 100644 --- a/src/query_utils.h +++ b/src/query_utils.h @@ -20,7 +20,6 @@ optional GetDefinitionExtentOfSymbol(QueryDatabase* db, optional GetDeclarationFileForSymbol(QueryDatabase* db, const SymbolIdx& symbol); -QueryLocation ToQueryLocation(QueryDatabase* db, Reference ref); QueryFileId GetFileId(QueryDatabase* db, Reference ref); std::vector ToReference(QueryDatabase* db, @@ -39,17 +38,6 @@ std::vector ToReference(QueryDatabase* db, return ret; } -std::vector ToQueryLocation( - QueryDatabase* db, - const std::vector& refs); -std::vector ToQueryLocation( - QueryDatabase* db, - const std::vector& refs); -std::vector ToQueryLocation( - QueryDatabase* db, - const std::vector& refs); -std::vector ToQueryLocation(QueryDatabase* db, - const std::vector& ids); std::vector GetUsesOfSymbol(QueryDatabase* db, const SymbolIdx& symbol, bool include_decl); diff --git a/wscript b/wscript index b3235a94..8f819213 100644 --- a/wscript +++ b/wscript @@ -166,7 +166,7 @@ def configure(ctx): cxxflags = ctx.env.CXXFLAGS else: cxxflags = ['-g', '-Wall', '-Wno-sign-compare', '-Werror'] - if 'g++' in ctx.env.CXX_NAME: + if ctx.env.CXX_NAME == 'gcc': cxxflags.append('-Wno-return-type') if all(not x.startswith('-std=') for x in ctx.env.CXXFLAGS):