mirror of
https://github.com/MaskRay/ccls.git
synced 2024-11-22 07:35:08 +00:00
Store range information in index
This commit is contained in:
parent
ed8fc33cbe
commit
e3058da622
1
.gitignore
vendored
1
.gitignore
vendored
@ -3,6 +3,7 @@ Debug
|
|||||||
x64
|
x64
|
||||||
build
|
build
|
||||||
libcxx
|
libcxx
|
||||||
|
CACHE
|
||||||
waf-*
|
waf-*
|
||||||
.lock-waf*
|
.lock-waf*
|
||||||
.waf*
|
.waf*
|
||||||
|
@ -103,6 +103,55 @@ std::string Join(const std::vector<std::string>& elements, std::string sep) {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
optional<QueryableRange> GetDefinitionSpellingOfUsr(QueryableDatabase* db, const Usr& usr) {
|
||||||
|
SymbolIdx symbol = db->usr_to_symbol[usr];
|
||||||
|
switch (symbol.kind) {
|
||||||
|
case SymbolKind::Type: {
|
||||||
|
QueryableTypeDef* def = &db->types[symbol.idx];
|
||||||
|
return def->def.definition_spelling;
|
||||||
|
}
|
||||||
|
case SymbolKind::Func: {
|
||||||
|
QueryableFuncDef* def = &db->funcs[symbol.idx];
|
||||||
|
return def->def.definition_spelling;
|
||||||
|
}
|
||||||
|
case SymbolKind::Var: {
|
||||||
|
QueryableVarDef* def = &db->vars[symbol.idx];
|
||||||
|
return def->def.definition_spelling;
|
||||||
|
}
|
||||||
|
case SymbolKind::File:
|
||||||
|
case SymbolKind::Invalid: {
|
||||||
|
assert(false && "unexpected");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nullopt;
|
||||||
|
}
|
||||||
|
|
||||||
|
optional<QueryableRange> GetDefinitionExtentOfUsr(QueryableDatabase* db, const Usr& usr) {
|
||||||
|
SymbolIdx symbol = db->usr_to_symbol[usr];
|
||||||
|
switch (symbol.kind) {
|
||||||
|
case SymbolKind::Type: {
|
||||||
|
QueryableTypeDef* def = &db->types[symbol.idx];
|
||||||
|
return def->def.definition_extent;
|
||||||
|
}
|
||||||
|
case SymbolKind::Func: {
|
||||||
|
QueryableFuncDef* def = &db->funcs[symbol.idx];
|
||||||
|
return def->def.definition_extent;
|
||||||
|
}
|
||||||
|
case SymbolKind::Var: {
|
||||||
|
QueryableVarDef* def = &db->vars[symbol.idx];
|
||||||
|
return def->def.definition_extent;
|
||||||
|
}
|
||||||
|
case SymbolKind::File:
|
||||||
|
case SymbolKind::Invalid: {
|
||||||
|
assert(false && "unexpected");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nullopt;
|
||||||
|
}
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
void SendOutMessageToClient(IpcMessageQueue* queue, T& response) {
|
void SendOutMessageToClient(IpcMessageQueue* queue, T& response) {
|
||||||
std::ostringstream sstream;
|
std::ostringstream sstream;
|
||||||
@ -283,37 +332,38 @@ QueryableFile* FindFile(QueryableDatabase* db, const std::string& filename) {
|
|||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
lsLocation GetLsLocation(const QueryableLocation& location) {
|
lsRange GetLsRange(const QueryableRange& location) {
|
||||||
|
return lsRange(
|
||||||
|
lsPosition(location.start.line - 1, location.start.column - 1),
|
||||||
|
lsPosition(location.end.line - 1, location.end.column - 1));
|
||||||
|
}
|
||||||
|
|
||||||
|
lsLocation GetLsLocation(const QueryableRange& location) {
|
||||||
return lsLocation(
|
return lsLocation(
|
||||||
lsDocumentUri::FromPath(location.path),
|
lsDocumentUri::FromPath(location.start.path),
|
||||||
lsRange(lsPosition(location.line - 1, location.column - 1)));
|
GetLsRange(location));
|
||||||
}
|
}
|
||||||
|
|
||||||
void AddCodeLens(std::vector<TCodeLens>* result,
|
void AddCodeLens(std::vector<TCodeLens>* result,
|
||||||
QueryableLocation loc,
|
QueryableRange loc,
|
||||||
const std::vector<QueryableLocation>& uses,
|
const std::vector<QueryableRange>& uses,
|
||||||
bool exclude_loc,
|
bool exclude_loc,
|
||||||
bool only_interesting,
|
bool only_interesting,
|
||||||
const char* singular,
|
const char* singular,
|
||||||
const char* plural) {
|
const char* plural) {
|
||||||
TCodeLens code_lens;
|
TCodeLens code_lens;
|
||||||
code_lens.range.start.line = loc.line - 1;
|
code_lens.range = GetLsRange(loc);
|
||||||
code_lens.range.start.character = loc.column - 1;
|
|
||||||
// TODO: store range information.
|
|
||||||
code_lens.range.end.line = code_lens.range.start.line;
|
|
||||||
code_lens.range.end.character = code_lens.range.start.character;
|
|
||||||
|
|
||||||
code_lens.command = lsCommand<lsCodeLensCommandArguments>();
|
code_lens.command = lsCommand<lsCodeLensCommandArguments>();
|
||||||
code_lens.command->command = "superindex.showReferences";
|
code_lens.command->command = "superindex.showReferences";
|
||||||
code_lens.command->arguments.uri = lsDocumentUri::FromPath(loc.path);
|
code_lens.command->arguments.uri = lsDocumentUri::FromPath(loc.start.path);
|
||||||
code_lens.command->arguments.position = code_lens.range.start;
|
code_lens.command->arguments.position = code_lens.range.start;
|
||||||
|
|
||||||
// Add unique uses.
|
// Add unique uses.
|
||||||
std::unordered_set<lsLocation> unique_uses;
|
std::unordered_set<lsLocation> unique_uses;
|
||||||
for (const QueryableLocation& use : uses) {
|
for (const QueryableRange& use : uses) {
|
||||||
if (exclude_loc && use == loc)
|
if (exclude_loc && use == loc)
|
||||||
continue;
|
continue;
|
||||||
if (only_interesting && !use.interesting)
|
if (only_interesting && !use.start.interesting)
|
||||||
continue;
|
continue;
|
||||||
unique_uses.insert(GetLsLocation(use));
|
unique_uses.insert(GetLsLocation(use));
|
||||||
}
|
}
|
||||||
@ -321,7 +371,7 @@ void AddCodeLens(std::vector<TCodeLens>* result,
|
|||||||
unique_uses.end());
|
unique_uses.end());
|
||||||
|
|
||||||
// User visible label
|
// User visible label
|
||||||
int num_usages = unique_uses.size();
|
size_t num_usages = unique_uses.size();
|
||||||
code_lens.command->title = std::to_string(num_usages) + " ";
|
code_lens.command->title = std::to_string(num_usages) + " ";
|
||||||
if (num_usages == 1)
|
if (num_usages == 1)
|
||||||
code_lens.command->title += singular;
|
code_lens.command->title += singular;
|
||||||
@ -333,61 +383,31 @@ void AddCodeLens(std::vector<TCodeLens>* result,
|
|||||||
}
|
}
|
||||||
|
|
||||||
void AddCodeLens(std::vector<TCodeLens>* result,
|
void AddCodeLens(std::vector<TCodeLens>* result,
|
||||||
QueryableLocation loc,
|
QueryableRange loc,
|
||||||
const std::vector<UsrRef>& uses,
|
const std::vector<UsrRef>& uses,
|
||||||
bool exclude_loc,
|
bool exclude_loc,
|
||||||
bool only_interesting,
|
bool only_interesting,
|
||||||
const char* singular,
|
const char* singular,
|
||||||
const char* plural) {
|
const char* plural) {
|
||||||
std::vector<QueryableLocation> uses0;
|
std::vector<QueryableRange> uses0;
|
||||||
uses0.reserve(uses.size());
|
uses0.reserve(uses.size());
|
||||||
for (const UsrRef& use : uses)
|
for (const UsrRef& use : uses)
|
||||||
uses0.push_back(use.loc);
|
uses0.push_back(use.loc);
|
||||||
AddCodeLens(result, loc, uses0, exclude_loc, only_interesting, singular, plural);
|
AddCodeLens(result, loc, uses0, exclude_loc, only_interesting, singular, plural);
|
||||||
}
|
}
|
||||||
|
|
||||||
optional<QueryableLocation> GetDefinitionOfUsr(QueryableDatabase* db, const Usr& usr) {
|
|
||||||
SymbolIdx symbol = db->usr_to_symbol[usr];
|
|
||||||
switch (symbol.kind) {
|
|
||||||
case SymbolKind::Type: {
|
|
||||||
QueryableTypeDef* def = &db->types[symbol.idx];
|
|
||||||
if (def->def.definition)
|
|
||||||
return def->def.definition.value();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case SymbolKind::Func: {
|
|
||||||
QueryableFuncDef* def = &db->funcs[symbol.idx];
|
|
||||||
if (def->def.definition)
|
|
||||||
return def->def.definition.value();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case SymbolKind::Var: {
|
|
||||||
QueryableVarDef* def = &db->vars[symbol.idx];
|
|
||||||
if (def->def.definition)
|
|
||||||
return def->def.definition.value();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case SymbolKind::File:
|
|
||||||
case SymbolKind::Invalid: {
|
|
||||||
assert(false && "unexpected");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nullopt;
|
|
||||||
}
|
|
||||||
|
|
||||||
void AddCodeLens(std::vector<TCodeLens>* result,
|
void AddCodeLens(std::vector<TCodeLens>* result,
|
||||||
QueryableDatabase* db,
|
QueryableDatabase* db,
|
||||||
QueryableLocation loc,
|
QueryableRange loc,
|
||||||
const std::vector<Usr>& usrs,
|
const std::vector<Usr>& usrs,
|
||||||
bool exclude_loc,
|
bool exclude_loc,
|
||||||
bool only_interesting,
|
bool only_interesting,
|
||||||
const char* singular,
|
const char* singular,
|
||||||
const char* plural) {
|
const char* plural) {
|
||||||
std::vector<QueryableLocation> uses0;
|
std::vector<QueryableRange> uses0;
|
||||||
uses0.reserve(usrs.size());
|
uses0.reserve(usrs.size());
|
||||||
for (const Usr& usr : usrs) {
|
for (const Usr& usr : usrs) {
|
||||||
optional<QueryableLocation> loc = GetDefinitionOfUsr(db, usr);
|
optional<QueryableRange> loc = GetDefinitionSpellingOfUsr(db, usr);
|
||||||
if (loc)
|
if (loc)
|
||||||
uses0.push_back(loc.value());
|
uses0.push_back(loc.value());
|
||||||
}
|
}
|
||||||
@ -495,27 +515,16 @@ void QueryDbMainLoop(
|
|||||||
// if we store range information instead of hacking it.
|
// if we store range information instead of hacking it.
|
||||||
int target_line = msg->params.position.line + 1;
|
int target_line = msg->params.position.line + 1;
|
||||||
int target_column = msg->params.position.character + 1;
|
int target_column = msg->params.position.character + 1;
|
||||||
int best_dist = INT_MAX;
|
|
||||||
for (const UsrRef& ref : file->all_symbols) {
|
for (const UsrRef& ref : file->all_symbols) {
|
||||||
if (ref.loc.line == target_line) {
|
if (ref.loc.start.line >= target_line && ref.loc.end.line <= target_line &&
|
||||||
if (ref.loc.column > target_column)
|
ref.loc.start.column <= target_column && ref.loc.end.column >= target_column) {
|
||||||
continue;
|
optional<QueryableRange> location = GetDefinitionSpellingOfUsr(db, ref.usr);
|
||||||
|
if (location)
|
||||||
int dist = target_column - ref.loc.column;
|
|
||||||
if (dist < best_dist) {
|
|
||||||
optional<QueryableLocation> location = GetDefinitionOfUsr(db, ref.usr);
|
|
||||||
|
|
||||||
if (location) {
|
|
||||||
best_dist = dist;
|
|
||||||
response.result.clear();
|
|
||||||
response.result.push_back(GetLsLocation(location.value()));
|
response.result.push_back(GetLsLocation(location.value()));
|
||||||
}
|
|
||||||
|
|
||||||
if (dist == 0)
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
SendOutMessageToClient(language_client, response);
|
SendOutMessageToClient(language_client, response);
|
||||||
break;
|
break;
|
||||||
@ -538,14 +547,7 @@ void QueryDbMainLoop(
|
|||||||
SymbolIdx symbol = db->usr_to_symbol[ref.usr];
|
SymbolIdx symbol = db->usr_to_symbol[ref.usr];
|
||||||
|
|
||||||
lsSymbolInformation info;
|
lsSymbolInformation info;
|
||||||
info.location.range.start.line =
|
info.location = GetLsLocation(ref.loc);
|
||||||
ref.loc.line - 1; // TODO: cleanup indexer to negate by 1.
|
|
||||||
info.location.range.start.character =
|
|
||||||
ref.loc.column - 1; // TODO: cleanup indexer to negate by 1.
|
|
||||||
// TODO: store range information.
|
|
||||||
info.location.range.end.line = info.location.range.start.line;
|
|
||||||
info.location.range.end.character =
|
|
||||||
info.location.range.start.character;
|
|
||||||
|
|
||||||
// TODO: cleanup namespace/naming so there is only one SymbolKind.
|
// TODO: cleanup namespace/naming so there is only one SymbolKind.
|
||||||
switch (symbol.kind) {
|
switch (symbol.kind) {
|
||||||
@ -612,31 +614,34 @@ void QueryDbMainLoop(
|
|||||||
switch (symbol.kind) {
|
switch (symbol.kind) {
|
||||||
case SymbolKind::Type: {
|
case SymbolKind::Type: {
|
||||||
QueryableTypeDef& def = db->types[symbol.idx];
|
QueryableTypeDef& def = db->types[symbol.idx];
|
||||||
AddCodeLens(&response.result, ref.loc.OffsetColumn(0), def.uses,
|
AddCodeLens(&response.result, ref.loc.OffsetStartColumn(0), def.uses,
|
||||||
false /*exclude_loc*/, true /*only_interesting*/, "reference",
|
false /*exclude_loc*/, false /*only_interesting*/, "ref",
|
||||||
"references");
|
"refs");
|
||||||
AddCodeLens(&response.result, db, ref.loc.OffsetColumn(1), def.derived,
|
AddCodeLens(&response.result, ref.loc.OffsetStartColumn(1), def.uses,
|
||||||
|
false /*exclude_loc*/, true /*only_interesting*/, "iref",
|
||||||
|
"irefs");
|
||||||
|
AddCodeLens(&response.result, db, ref.loc.OffsetStartColumn(2), def.derived,
|
||||||
false /*exclude_loc*/, false /*only_interesting*/, "derived", "derived");
|
false /*exclude_loc*/, false /*only_interesting*/, "derived", "derived");
|
||||||
AddCodeLens(&response.result, db, ref.loc.OffsetColumn(2), def.instantiations,
|
AddCodeLens(&response.result, db, ref.loc.OffsetStartColumn(3), def.instantiations,
|
||||||
false /*exclude_loc*/, false /*only_interesting*/, "instantiation", "instantiations");
|
false /*exclude_loc*/, false /*only_interesting*/, "instantiation", "instantiations");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case SymbolKind::Func: {
|
case SymbolKind::Func: {
|
||||||
QueryableFuncDef& def = db->funcs[symbol.idx];
|
QueryableFuncDef& def = db->funcs[symbol.idx];
|
||||||
//AddCodeLens(&response.result, ref.loc.OffsetColumn(0), def.uses,
|
//AddCodeLens(&response.result, ref.loc.OffsetStartColumn(0), def.uses,
|
||||||
// false /*exclude_loc*/, false /*only_interesting*/, "reference",
|
// false /*exclude_loc*/, false /*only_interesting*/, "reference",
|
||||||
// "references");
|
// "references");
|
||||||
AddCodeLens(&response.result, ref.loc.OffsetColumn(1), def.callers,
|
AddCodeLens(&response.result, ref.loc.OffsetStartColumn(1), def.callers,
|
||||||
true /*exclude_loc*/, false /*only_interesting*/, "caller", "callers");
|
true /*exclude_loc*/, false /*only_interesting*/, "caller", "callers");
|
||||||
//AddCodeLens(&response.result, ref.loc.OffsetColumn(2), def.def.callees,
|
//AddCodeLens(&response.result, ref.loc.OffsetColumn(2), def.def.callees,
|
||||||
// false /*exclude_loc*/, false /*only_interesting*/, "callee", "callees");
|
// false /*exclude_loc*/, false /*only_interesting*/, "callee", "callees");
|
||||||
AddCodeLens(&response.result, db, ref.loc.OffsetColumn(3), def.derived,
|
AddCodeLens(&response.result, db, ref.loc.OffsetStartColumn(3), def.derived,
|
||||||
false /*exclude_loc*/, false /*only_interesting*/, "derived", "derived");
|
false /*exclude_loc*/, false /*only_interesting*/, "derived", "derived");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case SymbolKind::Var: {
|
case SymbolKind::Var: {
|
||||||
QueryableVarDef& def = db->vars[symbol.idx];
|
QueryableVarDef& def = db->vars[symbol.idx];
|
||||||
AddCodeLens(&response.result, ref.loc.OffsetColumn(0), def.uses,
|
AddCodeLens(&response.result, ref.loc.OffsetStartColumn(0), def.uses,
|
||||||
true /*exclude_loc*/, false /*only_interesting*/, "reference",
|
true /*exclude_loc*/, false /*only_interesting*/, "reference",
|
||||||
"references");
|
"references");
|
||||||
break;
|
break;
|
||||||
@ -683,11 +688,9 @@ void QueryDbMainLoop(
|
|||||||
info.name = def.def.qualified_name;
|
info.name = def.def.qualified_name;
|
||||||
info.kind = lsSymbolKind::Class;
|
info.kind = lsSymbolKind::Class;
|
||||||
|
|
||||||
if (def.def.definition.has_value()) {
|
if (def.def.definition_extent.has_value()) {
|
||||||
info.location.uri.SetPath(def.def.definition->path);
|
info.location.uri.SetPath(def.def.definition_extent->start.path);
|
||||||
info.location.range.start.line = def.def.definition->line - 1;
|
info.location.range = GetLsRange(def.def.definition_extent.value());
|
||||||
info.location.range.start.character =
|
|
||||||
def.def.definition->column - 1;
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -705,11 +708,8 @@ void QueryDbMainLoop(
|
|||||||
info.kind = lsSymbolKind::Function;
|
info.kind = lsSymbolKind::Function;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (def.def.definition.has_value()) {
|
if (def.def.definition_extent.has_value()) {
|
||||||
info.location.uri.SetPath(def.def.definition->path);
|
info.location = GetLsLocation(def.def.definition_extent.value());
|
||||||
info.location.range.start.line = def.def.definition->line - 1;
|
|
||||||
info.location.range.start.character =
|
|
||||||
def.def.definition->column - 1;
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -718,11 +718,8 @@ void QueryDbMainLoop(
|
|||||||
info.name = def.def.qualified_name;
|
info.name = def.def.qualified_name;
|
||||||
info.kind = lsSymbolKind::Variable;
|
info.kind = lsSymbolKind::Variable;
|
||||||
|
|
||||||
if (def.def.definition.has_value()) {
|
if (def.def.definition_extent.has_value()) {
|
||||||
info.location.uri.SetPath(def.def.definition->path);
|
info.location = GetLsLocation(def.def.definition_extent.value());
|
||||||
info.location.range.start.line = def.def.definition->line - 1;
|
|
||||||
info.location.range.start.character =
|
|
||||||
def.def.definition->column - 1;
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -732,11 +729,6 @@ void QueryDbMainLoop(
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// TODO: store range information.
|
|
||||||
info.location.range.end.line = info.location.range.start.line;
|
|
||||||
info.location.range.end.character =
|
|
||||||
info.location.range.start.character;
|
|
||||||
|
|
||||||
response.result.push_back(info);
|
response.result.push_back(info);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
263
src/indexer.cpp
263
src/indexer.cpp
@ -83,13 +83,18 @@ IndexedTypeDef::IndexedTypeDef(TypeId id, const std::string& usr)
|
|||||||
// std::cerr << "Creating type with usr " << usr << std::endl;
|
// std::cerr << "Creating type with usr " << usr << std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
void AddUsage(std::vector<Location>& uses,
|
void AddUsage(std::vector<Range>& uses,
|
||||||
Location loc,
|
Range loc,
|
||||||
bool insert_if_not_present = true) {
|
bool insert_if_not_present = true) {
|
||||||
|
if (loc.start.column == 7 && loc.start.line == 7)
|
||||||
|
std::cerr << "break;";
|
||||||
|
|
||||||
|
// TODO: think about if we need to also consider |uses[i].end|
|
||||||
|
// First thought makes me think no, we don't.
|
||||||
for (int i = uses.size() - 1; i >= 0; --i) {
|
for (int i = uses.size() - 1; i >= 0; --i) {
|
||||||
if (uses[i].IsEqualTo(loc)) {
|
if (uses[i].start == loc.start) {
|
||||||
if (loc.interesting)
|
if (loc.start.interesting)
|
||||||
uses[i].interesting = true;
|
uses[i].start.interesting = true;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -98,83 +103,53 @@ void AddUsage(std::vector<Location>& uses,
|
|||||||
uses.push_back(loc);
|
uses.push_back(loc);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string Location::ToPrettyString(IdCache* id_cache) {
|
IdCache::IdCache(const std::string& primary_file)
|
||||||
// Output looks like this:
|
: primary_file(primary_file) {}
|
||||||
//
|
|
||||||
// *1:2:3
|
|
||||||
//
|
|
||||||
// * => interesting
|
|
||||||
// 1 => file id
|
|
||||||
// 2 => line
|
|
||||||
// 3 => column
|
|
||||||
|
|
||||||
std::string result;
|
Range IdCache::ForceResolve(const CXSourceRange& range, bool interesting) {
|
||||||
if (interesting)
|
CXSourceLocation start = clang_getRangeStart(range);
|
||||||
result += '*';
|
CXSourceLocation end = clang_getRangeEnd(range);
|
||||||
result += id_cache->file_id_to_file_path[raw_file_id];
|
|
||||||
result += ':';
|
unsigned int start_line, start_column;
|
||||||
result += std::to_string(line);
|
clang_getSpellingLocation(start, nullptr, &start_line, &start_column, nullptr);
|
||||||
result += ':';
|
unsigned int end_line, end_column;
|
||||||
result += std::to_string(column);
|
clang_getSpellingLocation(end, nullptr, &end_line, &end_column, nullptr);
|
||||||
return result;
|
|
||||||
|
return Range(
|
||||||
|
Position(interesting, start_line, start_column) /*start*/,
|
||||||
|
Position(interesting, end_line, end_column) /*end*/);
|
||||||
}
|
}
|
||||||
|
|
||||||
IdCache::IdCache(const std::string& primary_file) : primary_file(primary_file) {
|
Range IdCache::ForceResolveSpelling(const CXCursor& cx_cursor, bool interesting) {
|
||||||
// Reserve id 0 for unfound.
|
CXSourceRange cx_range = clang_Cursor_getSpellingNameRange(cx_cursor, 0, 0);
|
||||||
file_path_to_file_id[""] = FileId(0);
|
return ForceResolve(cx_range, interesting);
|
||||||
file_id_to_file_path[FileId(0)] = "";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Location IdCache::ForceResolve(const CXSourceLocation& cx_loc, bool interesting) {
|
optional<Range> IdCache::ResolveSpelling(const CXCursor& cx_cursor, bool interesting) {
|
||||||
CXFile file;
|
CXSourceLocation cx_loc = clang_getCursorLocation(cx_cursor);
|
||||||
unsigned int line, column, offset;
|
|
||||||
clang_getSpellingLocation(cx_loc, &file, &line, &column, &offset);
|
|
||||||
|
|
||||||
FileId file_id(-1);
|
|
||||||
if (file != nullptr) {
|
|
||||||
std::string path = clang::ToString(clang_getFileName(file));
|
|
||||||
|
|
||||||
auto it = file_path_to_file_id.find(path);
|
|
||||||
if (it != file_path_to_file_id.end()) {
|
|
||||||
file_id = it->second;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
file_id = FileId(file_path_to_file_id.size());
|
|
||||||
file_path_to_file_id[path] = file_id;
|
|
||||||
file_id_to_file_path[file_id] = path;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return Location(interesting, file_id, line, column);
|
|
||||||
}
|
|
||||||
|
|
||||||
Location IdCache::ForceResolve(const CXIdxLoc& cx_idx_loc, bool interesting) {
|
|
||||||
CXSourceLocation cx_loc = clang_indexLoc_getCXSourceLocation(cx_idx_loc);
|
|
||||||
return ForceResolve(cx_loc, interesting);
|
|
||||||
}
|
|
||||||
|
|
||||||
Location IdCache::ForceResolve(const CXCursor& cx_cursor, bool interesting) {
|
|
||||||
return ForceResolve(clang_getCursorLocation(cx_cursor), interesting);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
optional<Location> IdCache::Resolve(const CXSourceLocation& cx_loc, bool interesting) {
|
|
||||||
if (!clang_Location_isFromMainFile(cx_loc))
|
if (!clang_Location_isFromMainFile(cx_loc))
|
||||||
return nullopt;
|
return nullopt;
|
||||||
return ForceResolve(cx_loc, interesting);
|
return ForceResolveSpelling(cx_cursor, interesting);
|
||||||
}
|
}
|
||||||
|
|
||||||
optional<Location> IdCache::Resolve(const CXIdxLoc& cx_idx_loc, bool interesting) {
|
optional<Range> IdCache::ResolveSpelling(const clang::Cursor& cursor, bool interesting) {
|
||||||
CXSourceLocation cx_loc = clang_indexLoc_getCXSourceLocation(cx_idx_loc);
|
return ResolveSpelling(cursor.cx_cursor, interesting);
|
||||||
return Resolve(cx_loc, interesting);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
optional<Location> IdCache::Resolve(const CXCursor& cx_cursor, bool interesting) {
|
Range IdCache::ForceResolveExtent(const CXCursor& cx_cursor, bool interesting) {
|
||||||
return Resolve(clang_getCursorLocation(cx_cursor), interesting);
|
CXSourceRange cx_range = clang_getCursorExtent(cx_cursor);
|
||||||
|
return ForceResolve(cx_range, interesting);
|
||||||
}
|
}
|
||||||
|
|
||||||
optional<Location> IdCache::Resolve(const clang::Cursor& cursor, bool interesting) {
|
optional<Range> IdCache::ResolveExtent(const CXCursor& cx_cursor, bool interesting) {
|
||||||
return Resolve(cursor.cx_cursor, interesting);
|
CXSourceLocation cx_loc = clang_getCursorLocation(cx_cursor);
|
||||||
|
if (!clang_Location_isFromMainFile(cx_loc))
|
||||||
|
return nullopt;
|
||||||
|
return ForceResolveExtent(cx_cursor, interesting);
|
||||||
|
}
|
||||||
|
|
||||||
|
optional<Range> IdCache::ResolveExtent(const clang::Cursor& cursor, bool interesting) {
|
||||||
|
return ResolveExtent(cursor.cx_cursor, interesting);
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
@ -229,11 +204,9 @@ struct IndexParam {
|
|||||||
IndexedFile* db;
|
IndexedFile* db;
|
||||||
NamespaceHelper* ns;
|
NamespaceHelper* ns;
|
||||||
|
|
||||||
// Record the last type usage location we recorded. Clang will sometimes
|
// Record last func usage we reported, as clang will record the reference
|
||||||
// visit the same expression twice so we wan't to avoid double-reporting
|
// twice. We don't want to double report.
|
||||||
// usage information for those locations.
|
Range last_func_usage_location;
|
||||||
Location last_type_usage_location;
|
|
||||||
Location last_func_usage_location;
|
|
||||||
|
|
||||||
IndexParam(IndexedFile* db, NamespaceHelper* ns) : db(db), ns(ns) {}
|
IndexParam(IndexedFile* db, NamespaceHelper* ns) : db(db), ns(ns) {}
|
||||||
};
|
};
|
||||||
@ -253,11 +226,19 @@ void diagnostic(CXClientData client_data,
|
|||||||
|
|
||||||
std::string spelling =
|
std::string spelling =
|
||||||
clang::ToString(clang_getDiagnosticSpelling(diagnostic));
|
clang::ToString(clang_getDiagnosticSpelling(diagnostic));
|
||||||
Location location = param->db->id_cache.ForceResolve(
|
|
||||||
clang_getDiagnosticLocation(diagnostic), false /*interesting*/);
|
|
||||||
|
|
||||||
std::cerr << location.ToPrettyString(¶m->db->id_cache) << ": "
|
// Fetch location
|
||||||
<< spelling << std::endl;
|
CXFile file;
|
||||||
|
unsigned int line, column;
|
||||||
|
CXSourceLocation location = clang_getDiagnosticLocation(diagnostic);
|
||||||
|
clang_getSpellingLocation(location, &file, &line, &column, nullptr);
|
||||||
|
|
||||||
|
// Fetch path, print.
|
||||||
|
if (file != nullptr) {
|
||||||
|
std::string path = clang::ToString(clang_getFileName(file));
|
||||||
|
std::cerr << path << ':';
|
||||||
|
}
|
||||||
|
std::cerr << line << ':' << column << ": " << spelling << std::endl;
|
||||||
|
|
||||||
clang_disposeDiagnostic(diagnostic);
|
clang_disposeDiagnostic(diagnostic);
|
||||||
}
|
}
|
||||||
@ -405,7 +386,7 @@ void VisitDeclForTypeUsageVisitorHandler(clang::Cursor cursor,
|
|||||||
IndexedTypeDef* ref_type_def = db->Resolve(ref_type_id);
|
IndexedTypeDef* ref_type_def = db->Resolve(ref_type_id);
|
||||||
// TODO: Should we even be visiting this if the file is not from the main
|
// TODO: Should we even be visiting this if the file is not from the main
|
||||||
// def? Try adding assert on |loc| later.
|
// def? Try adding assert on |loc| later.
|
||||||
optional<Location> loc = db->id_cache.Resolve(cursor, true /*interesting*/);
|
optional<Range> loc = db->id_cache.ResolveSpelling(cursor, true /*interesting*/);
|
||||||
if (loc)
|
if (loc)
|
||||||
AddUsage(ref_type_def->uses, loc.value());
|
AddUsage(ref_type_def->uses, loc.value());
|
||||||
}
|
}
|
||||||
@ -655,7 +636,7 @@ clang::VisiterResult AddDeclInitializerUsagesVisitor(clang::Cursor cursor,
|
|||||||
if (ref_usr == "")
|
if (ref_usr == "")
|
||||||
break;
|
break;
|
||||||
|
|
||||||
optional<Location> loc = db->id_cache.Resolve(cursor, false /*interesting*/);
|
optional<Range> loc = db->id_cache.ResolveSpelling(cursor, false /*interesting*/);
|
||||||
// std::cerr << "Adding usage to id=" << ref_id.id << " usr=" << ref_usr
|
// std::cerr << "Adding usage to id=" << ref_id.id << " usr=" << ref_usr
|
||||||
// << " at " << loc.ToString() << std::endl;
|
// << " at " << loc.ToString() << std::endl;
|
||||||
if (loc) {
|
if (loc) {
|
||||||
@ -673,6 +654,19 @@ void AddDeclInitializerUsages(IndexedFile* db, clang::Cursor decl_cursor) {
|
|||||||
decl_cursor.VisitChildren(&AddDeclInitializerUsagesVisitor, db);
|
decl_cursor.VisitChildren(&AddDeclInitializerUsagesVisitor, db);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool AreEqualLocations(CXIdxLoc loc, CXCursor cursor) {
|
||||||
|
// clang_getCursorExtent
|
||||||
|
// clang_Cursor_getSpellingNameRange
|
||||||
|
|
||||||
|
return clang_equalLocations(
|
||||||
|
clang_indexLoc_getCXSourceLocation(loc),
|
||||||
|
//clang_getRangeStart(clang_getCursorExtent(cursor)));
|
||||||
|
clang_getRangeStart(clang_Cursor_getSpellingNameRange(cursor, 0, 0)));
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO TODO TODO TODO
|
||||||
|
// INDEX SPELLING
|
||||||
|
|
||||||
void indexDeclaration(CXClientData client_data, const CXIdxDeclInfo* decl) {
|
void indexDeclaration(CXClientData client_data, const CXIdxDeclInfo* decl) {
|
||||||
// TODO: we can minimize processing for cursors which return false for
|
// TODO: we can minimize processing for cursors which return false for
|
||||||
// clang_Location_isFromMainFile (ie, only add usages)
|
// clang_Location_isFromMainFile (ie, only add usages)
|
||||||
@ -681,6 +675,8 @@ void indexDeclaration(CXClientData client_data, const CXIdxDeclInfo* decl) {
|
|||||||
if (is_system_def)
|
if (is_system_def)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
assert(AreEqualLocations(decl->loc, decl->cursor));
|
||||||
|
|
||||||
IndexParam* param = static_cast<IndexParam*>(client_data);
|
IndexParam* param = static_cast<IndexParam*>(client_data);
|
||||||
IndexedFile* db = param->db;
|
IndexedFile* db = param->db;
|
||||||
NamespaceHelper* ns = param->ns;
|
NamespaceHelper* ns = param->ns;
|
||||||
@ -699,9 +695,8 @@ void indexDeclaration(CXClientData client_data, const CXIdxDeclInfo* decl) {
|
|||||||
case CXIdxEntity_Field:
|
case CXIdxEntity_Field:
|
||||||
case CXIdxEntity_Variable:
|
case CXIdxEntity_Variable:
|
||||||
case CXIdxEntity_CXXStaticVariable: {
|
case CXIdxEntity_CXXStaticVariable: {
|
||||||
optional<Location> decl_loc =
|
optional<Range> decl_loc_spelling = db->id_cache.ResolveSpelling(decl->cursor, false /*interesting*/);
|
||||||
db->id_cache.Resolve(decl->loc, false /*interesting*/);
|
if (!decl_loc_spelling)
|
||||||
if (!decl_loc)
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
clang::Cursor decl_cursor = decl->cursor;
|
clang::Cursor decl_cursor = decl->cursor;
|
||||||
@ -725,11 +720,14 @@ void indexDeclaration(CXClientData client_data, const CXIdxDeclInfo* decl) {
|
|||||||
ns->QualifiedName(decl->semanticContainer, var_def->def.short_name);
|
ns->QualifiedName(decl->semanticContainer, var_def->def.short_name);
|
||||||
//}
|
//}
|
||||||
|
|
||||||
if (decl->isDefinition)
|
if (decl->isDefinition) {
|
||||||
var_def->def.definition = decl_loc.value();
|
var_def->def.definition_spelling = db->id_cache.ForceResolveSpelling(decl->cursor, false /*interesting*/);
|
||||||
else
|
var_def->def.definition_extent = db->id_cache.ForceResolveExtent(decl->cursor, false /*interesting*/);;
|
||||||
var_def->def.declaration = decl_loc.value();
|
}
|
||||||
AddUsage(var_def->uses, decl_loc.value());
|
else {
|
||||||
|
var_def->def.declaration = db->id_cache.ForceResolveSpelling(decl->cursor, false /*interesting*/);
|
||||||
|
}
|
||||||
|
AddUsage(var_def->uses, decl_loc_spelling.value());
|
||||||
|
|
||||||
// std::cerr << std::endl << "Visiting declaration" << std::endl;
|
// std::cerr << std::endl << "Visiting declaration" << std::endl;
|
||||||
// Dump(decl_cursor);
|
// Dump(decl_cursor);
|
||||||
@ -778,9 +776,8 @@ void indexDeclaration(CXClientData client_data, const CXIdxDeclInfo* decl) {
|
|||||||
case CXIdxEntity_CXXInstanceMethod:
|
case CXIdxEntity_CXXInstanceMethod:
|
||||||
case CXIdxEntity_CXXStaticMethod:
|
case CXIdxEntity_CXXStaticMethod:
|
||||||
case CXIdxEntity_CXXConversionFunction: {
|
case CXIdxEntity_CXXConversionFunction: {
|
||||||
optional<Location> decl_loc =
|
optional<Range> decl_loc_spelling = db->id_cache.ResolveSpelling(decl->cursor, false /*interesting*/);
|
||||||
db->id_cache.Resolve(decl->loc, false /*interesting*/);
|
if (!decl_loc_spelling)
|
||||||
if (!decl_loc)
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
clang::Cursor decl_cursor = decl->cursor;
|
clang::Cursor decl_cursor = decl->cursor;
|
||||||
@ -790,7 +787,7 @@ void indexDeclaration(CXClientData client_data, const CXIdxDeclInfo* decl) {
|
|||||||
FuncId func_id = db->ToFuncId(resolved.cx_cursor);
|
FuncId func_id = db->ToFuncId(resolved.cx_cursor);
|
||||||
IndexedFuncDef* func_def = db->Resolve(func_id);
|
IndexedFuncDef* func_def = db->Resolve(func_id);
|
||||||
|
|
||||||
AddUsage(func_def->uses, decl_loc.value());
|
AddUsage(func_def->uses, decl_loc_spelling.value());
|
||||||
// We don't actually need to know the return type, but we need to mark it
|
// We don't actually need to know the return type, but we need to mark it
|
||||||
// as an interesting usage.
|
// as an interesting usage.
|
||||||
AddDeclTypeUsages(db, decl_cursor, true /*is_interesting*/,
|
AddDeclTypeUsages(db, decl_cursor, true /*is_interesting*/,
|
||||||
@ -799,10 +796,13 @@ void indexDeclaration(CXClientData client_data, const CXIdxDeclInfo* decl) {
|
|||||||
// TODO: support multiple definitions per function; right now we are
|
// TODO: support multiple definitions per function; right now we are
|
||||||
// hacking the 'declarations' field by
|
// hacking the 'declarations' field by
|
||||||
// adding a definition when we really don't have one.
|
// adding a definition when we really don't have one.
|
||||||
if (decl->isDefinition && !func_def->def.definition.has_value())
|
if (decl->isDefinition && !func_def->def.definition_extent.has_value()) {
|
||||||
func_def->def.definition = decl_loc.value();
|
func_def->def.definition_spelling = db->id_cache.ForceResolveSpelling(decl->cursor, false /*interesting*/);
|
||||||
else
|
func_def->def.definition_extent = db->id_cache.ForceResolveExtent(decl->cursor, false /*interesting*/);
|
||||||
func_def->declarations.push_back(decl_loc.value());
|
}
|
||||||
|
else {
|
||||||
|
func_def->declarations.push_back(db->id_cache.ForceResolveSpelling(decl->cursor, false /*interesting*/));
|
||||||
|
}
|
||||||
|
|
||||||
// If decl_cursor != resolved, then decl_cursor is a template
|
// If decl_cursor != resolved, then decl_cursor is a template
|
||||||
// specialization. We
|
// specialization. We
|
||||||
@ -837,7 +837,7 @@ void indexDeclaration(CXClientData client_data, const CXIdxDeclInfo* decl) {
|
|||||||
// Mark a type reference at the ctor/dtor location.
|
// Mark a type reference at the ctor/dtor location.
|
||||||
// TODO: Should it be interesting?
|
// TODO: Should it be interesting?
|
||||||
if (is_ctor_or_dtor) {
|
if (is_ctor_or_dtor) {
|
||||||
Location type_usage_loc = decl_loc.value();
|
Range type_usage_loc = decl_loc_spelling.value();
|
||||||
AddUsage(declaring_type_def->uses, type_usage_loc);
|
AddUsage(declaring_type_def->uses, type_usage_loc);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -927,8 +927,8 @@ void indexDeclaration(CXClientData client_data, const CXIdxDeclInfo* decl) {
|
|||||||
|
|
||||||
case CXIdxEntity_Typedef:
|
case CXIdxEntity_Typedef:
|
||||||
case CXIdxEntity_CXXTypeAlias: {
|
case CXIdxEntity_CXXTypeAlias: {
|
||||||
optional<Location> decl_loc = db->id_cache.Resolve(decl->loc, true /*interesting*/);
|
optional<Range> decl_loc_spelling = db->id_cache.ResolveSpelling(decl->cursor, true /*interesting*/);
|
||||||
if (!decl_loc)
|
if (!decl_loc_spelling)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// Note we want to fetch the first TypeRef. Running
|
// Note we want to fetch the first TypeRef. Running
|
||||||
@ -948,8 +948,9 @@ void indexDeclaration(CXClientData client_data, const CXIdxDeclInfo* decl) {
|
|||||||
type_def->def.qualified_name =
|
type_def->def.qualified_name =
|
||||||
ns->QualifiedName(decl->semanticContainer, type_def->def.short_name);
|
ns->QualifiedName(decl->semanticContainer, type_def->def.short_name);
|
||||||
|
|
||||||
type_def->def.definition = decl_loc.value().WithInteresting(false);
|
type_def->def.definition_spelling = db->id_cache.ResolveSpelling(decl->cursor, false /*interesting*/);
|
||||||
AddUsage(type_def->uses, decl_loc.value());
|
type_def->def.definition_extent = db->id_cache.ResolveExtent(decl->cursor, false /*interesting*/);
|
||||||
|
AddUsage(type_def->uses, decl_loc_spelling.value());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -957,8 +958,8 @@ void indexDeclaration(CXClientData client_data, const CXIdxDeclInfo* decl) {
|
|||||||
case CXIdxEntity_Union:
|
case CXIdxEntity_Union:
|
||||||
case CXIdxEntity_Struct:
|
case CXIdxEntity_Struct:
|
||||||
case CXIdxEntity_CXXClass: {
|
case CXIdxEntity_CXXClass: {
|
||||||
optional<Location> decl_loc = db->id_cache.Resolve(decl->loc, true /*interesting*/);
|
optional<Range> decl_loc_spelling = db->id_cache.ResolveSpelling(decl->cursor, true /*interesting*/);
|
||||||
if (!decl_loc)
|
if (!decl_loc_spelling)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
TypeId type_id = db->ToTypeId(decl->entityInfo->USR);
|
TypeId type_id = db->ToTypeId(decl->entityInfo->USR);
|
||||||
@ -986,8 +987,9 @@ void indexDeclaration(CXClientData client_data, const CXIdxDeclInfo* decl) {
|
|||||||
// }
|
// }
|
||||||
|
|
||||||
assert(decl->isDefinition);
|
assert(decl->isDefinition);
|
||||||
type_def->def.definition = decl_loc.value().WithInteresting(false);
|
type_def->def.definition_spelling = db->id_cache.ResolveSpelling(decl->cursor, false /*interesting*/);
|
||||||
AddUsage(type_def->uses, decl_loc.value());
|
type_def->def.definition_extent = db->id_cache.ResolveExtent(decl->cursor, false /*interesting*/);
|
||||||
|
AddUsage(type_def->uses, decl_loc_spelling.value());
|
||||||
|
|
||||||
// type_def->alias_of
|
// type_def->alias_of
|
||||||
// type_def->funcs
|
// type_def->funcs
|
||||||
@ -1023,7 +1025,7 @@ void indexDeclaration(CXClientData client_data, const CXIdxDeclInfo* decl) {
|
|||||||
std::cerr
|
std::cerr
|
||||||
<< "!! Unhandled indexDeclaration: "
|
<< "!! Unhandled indexDeclaration: "
|
||||||
<< clang::Cursor(decl->cursor).ToString() << " at "
|
<< clang::Cursor(decl->cursor).ToString() << " at "
|
||||||
<< db->id_cache.ForceResolve(decl->loc, false /*interesting*/).ToString()
|
<< db->id_cache.ForceResolveSpelling(decl->cursor, false /*interesting*/).start.ToString()
|
||||||
<< std::endl;
|
<< std::endl;
|
||||||
std::cerr << " entityInfo->kind = " << decl->entityInfo->kind
|
std::cerr << " entityInfo->kind = " << decl->entityInfo->kind
|
||||||
<< std::endl;
|
<< std::endl;
|
||||||
@ -1057,6 +1059,8 @@ bool IsFunction(CXCursorKind kind) {
|
|||||||
|
|
||||||
void indexEntityReference(CXClientData client_data,
|
void indexEntityReference(CXClientData client_data,
|
||||||
const CXIdxEntityRefInfo* ref) {
|
const CXIdxEntityRefInfo* ref) {
|
||||||
|
//assert(AreEqualLocations(ref->loc, ref->cursor));
|
||||||
|
|
||||||
// if (clang_Location_isInSystemHeader(clang_getCursorLocation(ref->cursor)) ||
|
// if (clang_Location_isInSystemHeader(clang_getCursorLocation(ref->cursor)) ||
|
||||||
// clang_Location_isInSystemHeader(
|
// clang_Location_isInSystemHeader(
|
||||||
// clang_getCursorLocation(ref->referencedEntity->cursor)))
|
// clang_getCursorLocation(ref->referencedEntity->cursor)))
|
||||||
@ -1087,8 +1091,8 @@ void indexEntityReference(CXClientData client_data,
|
|||||||
case CXIdxEntity_CXXStaticVariable:
|
case CXIdxEntity_CXXStaticVariable:
|
||||||
case CXIdxEntity_Variable:
|
case CXIdxEntity_Variable:
|
||||||
case CXIdxEntity_Field: {
|
case CXIdxEntity_Field: {
|
||||||
optional<Location> loc = db->id_cache.Resolve(ref->loc, false /*interesting*/);
|
optional<Range> loc_spelling = db->id_cache.ResolveSpelling(ref->cursor, false /*interesting*/);
|
||||||
if (!loc)
|
if (!loc_spelling)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
clang::Cursor referenced = ref->referencedEntity->cursor;
|
clang::Cursor referenced = ref->referencedEntity->cursor;
|
||||||
@ -1096,7 +1100,7 @@ void indexEntityReference(CXClientData client_data,
|
|||||||
|
|
||||||
VarId var_id = db->ToVarId(referenced.get_usr());
|
VarId var_id = db->ToVarId(referenced.get_usr());
|
||||||
IndexedVarDef* var_def = db->Resolve(var_id);
|
IndexedVarDef* var_def = db->Resolve(var_id);
|
||||||
AddUsage(var_def->uses, loc.value());
|
AddUsage(var_def->uses, loc_spelling.value());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1115,16 +1119,15 @@ void indexEntityReference(CXClientData client_data,
|
|||||||
// int x = Gen();
|
// int x = Gen();
|
||||||
// }
|
// }
|
||||||
|
|
||||||
// Don't report duplicate usages.
|
|
||||||
// TODO: search full history?
|
// TODO: search full history?
|
||||||
optional<Location> loc = db->id_cache.Resolve(ref->loc, false /*interesting*/);
|
optional<Range> loc_spelling = db->id_cache.ResolveSpelling(ref->cursor, false /*interesting*/);
|
||||||
if (!loc)
|
if (!loc_spelling)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// TODO: cleanup/remove this
|
// Don't report duplicate usages.
|
||||||
if (param->last_func_usage_location == loc.value())
|
if (param->last_func_usage_location == loc_spelling.value())
|
||||||
break;
|
break;
|
||||||
param->last_func_usage_location = loc.value();
|
param->last_func_usage_location = loc_spelling.value();
|
||||||
|
|
||||||
// Note: be careful, calling db->ToFuncId invalidates the FuncDef* ptrs.
|
// Note: be careful, calling db->ToFuncId invalidates the FuncDef* ptrs.
|
||||||
FuncId called_id = db->ToFuncId(ref->referencedEntity->USR);
|
FuncId called_id = db->ToFuncId(ref->referencedEntity->USR);
|
||||||
@ -1133,12 +1136,12 @@ void indexEntityReference(CXClientData client_data,
|
|||||||
IndexedFuncDef* caller_def = db->Resolve(caller_id);
|
IndexedFuncDef* caller_def = db->Resolve(caller_id);
|
||||||
IndexedFuncDef* called_def = db->Resolve(called_id);
|
IndexedFuncDef* called_def = db->Resolve(called_id);
|
||||||
|
|
||||||
caller_def->def.callees.push_back(FuncRef(called_id, loc.value()));
|
caller_def->def.callees.push_back(FuncRef(called_id, loc_spelling.value()));
|
||||||
called_def->callers.push_back(FuncRef(caller_id, loc.value()));
|
called_def->callers.push_back(FuncRef(caller_id, loc_spelling.value()));
|
||||||
AddUsage(called_def->uses, loc.value());
|
AddUsage(called_def->uses, loc_spelling.value());
|
||||||
} else {
|
} else {
|
||||||
IndexedFuncDef* called_def = db->Resolve(called_id);
|
IndexedFuncDef* called_def = db->Resolve(called_id);
|
||||||
AddUsage(called_def->uses, loc.value());
|
AddUsage(called_def->uses, loc_spelling.value());
|
||||||
}
|
}
|
||||||
|
|
||||||
// For constructor/destructor, also add a usage against the type. Clang
|
// For constructor/destructor, also add a usage against the type. Clang
|
||||||
@ -1148,9 +1151,15 @@ void indexEntityReference(CXClientData client_data,
|
|||||||
clang::Cursor ref_cursor = ref->cursor;
|
clang::Cursor ref_cursor = ref->cursor;
|
||||||
if (ref->referencedEntity->kind == CXIdxEntity_CXXConstructor ||
|
if (ref->referencedEntity->kind == CXIdxEntity_CXXConstructor ||
|
||||||
ref->referencedEntity->kind == CXIdxEntity_CXXDestructor) {
|
ref->referencedEntity->kind == CXIdxEntity_CXXDestructor) {
|
||||||
Location parent_loc = db->id_cache.ForceResolve(ref->parentEntity->cursor,
|
|
||||||
|
|
||||||
|
//CXFile file;
|
||||||
|
//unsigned int line, column, offset;
|
||||||
|
//clang_getSpellingLocation(clang_indexLoc_getCXSourceLocation(ref->loc), &file, &line, &column, &offset);
|
||||||
|
|
||||||
|
Range parent_loc = db->id_cache.ForceResolveSpelling(ref->parentEntity->cursor,
|
||||||
true /*interesting*/);
|
true /*interesting*/);
|
||||||
if (!parent_loc.IsEqualTo(loc.value())) {
|
if (parent_loc.start != loc_spelling->start) {
|
||||||
IndexedFuncDef* called_def = db->Resolve(called_id);
|
IndexedFuncDef* called_def = db->Resolve(called_id);
|
||||||
// I suspect it is possible for the declaring type to be null
|
// I suspect it is possible for the declaring type to be null
|
||||||
// when the class is invalid.
|
// when the class is invalid.
|
||||||
@ -1158,7 +1167,7 @@ void indexEntityReference(CXClientData client_data,
|
|||||||
// assert(called_def->def.declaring_type.has_value());
|
// assert(called_def->def.declaring_type.has_value());
|
||||||
IndexedTypeDef* type_def =
|
IndexedTypeDef* type_def =
|
||||||
db->Resolve(called_def->def.declaring_type.value());
|
db->Resolve(called_def->def.declaring_type.value());
|
||||||
AddUsage(type_def->uses, loc.value().WithInteresting(true));
|
AddUsage(type_def->uses, loc_spelling.value().WithInteresting(true), false /*insert_if_not_present*/);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1171,8 +1180,8 @@ void indexEntityReference(CXClientData client_data,
|
|||||||
case CXIdxEntity_Union:
|
case CXIdxEntity_Union:
|
||||||
case CXIdxEntity_Struct:
|
case CXIdxEntity_Struct:
|
||||||
case CXIdxEntity_CXXClass: {
|
case CXIdxEntity_CXXClass: {
|
||||||
optional<Location> loc = db->id_cache.Resolve(ref->loc, false /*interesting*/);
|
optional<Range> loc_spelling = db->id_cache.ResolveSpelling(ref->cursor, false /*interesting*/);
|
||||||
if (!loc)
|
if (!loc_spelling)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
clang::Cursor referenced = ref->referencedEntity->cursor;
|
clang::Cursor referenced = ref->referencedEntity->cursor;
|
||||||
@ -1197,7 +1206,7 @@ void indexEntityReference(CXClientData client_data,
|
|||||||
// Foo f;
|
// Foo f;
|
||||||
// }
|
// }
|
||||||
//
|
//
|
||||||
AddUsage(referenced_def->uses, loc.value());
|
AddUsage(referenced_def->uses, loc_spelling.value());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1205,7 +1214,7 @@ void indexEntityReference(CXClientData client_data,
|
|||||||
std::cerr
|
std::cerr
|
||||||
<< "!! Unhandled indexEntityReference: " << cursor.ToString()
|
<< "!! Unhandled indexEntityReference: " << cursor.ToString()
|
||||||
<< " at "
|
<< " at "
|
||||||
<< db->id_cache.ForceResolve(ref->loc, false /*interesting*/).ToString()
|
<< db->id_cache.ForceResolveSpelling(ref->cursor, false /*interesting*/).start.ToString()
|
||||||
<< std::endl;
|
<< std::endl;
|
||||||
std::cerr << " ref->referencedEntity->kind = "
|
std::cerr << " ref->referencedEntity->kind = "
|
||||||
<< ref->referencedEntity->kind << std::endl;
|
<< ref->referencedEntity->kind << std::endl;
|
||||||
@ -1214,7 +1223,7 @@ void indexEntityReference(CXClientData client_data,
|
|||||||
<< ref->parentEntity->kind << std::endl;
|
<< ref->parentEntity->kind << std::endl;
|
||||||
std::cerr
|
std::cerr
|
||||||
<< " ref->loc = "
|
<< " ref->loc = "
|
||||||
<< db->id_cache.ForceResolve(ref->loc, false /*interesting*/).ToString()
|
<< db->id_cache.ForceResolveSpelling(ref->cursor, false /*interesting*/).start.ToString()
|
||||||
<< std::endl;
|
<< std::endl;
|
||||||
std::cerr << " ref->kind = " << ref->kind << std::endl;
|
std::cerr << " ref->kind = " << ref->kind << std::endl;
|
||||||
if (ref->parentEntity)
|
if (ref->parentEntity)
|
||||||
|
299
src/indexer.h
299
src/indexer.h
@ -1,7 +1,8 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "utils.h"
|
#include "position.h"
|
||||||
#include "serializer.h"
|
#include "serializer.h"
|
||||||
|
#include "utils.h"
|
||||||
#include "libclangmm/clangmm.h"
|
#include "libclangmm/clangmm.h"
|
||||||
#include "libclangmm/Utility.h"
|
#include "libclangmm/Utility.h"
|
||||||
|
|
||||||
@ -50,173 +51,20 @@ bool operator==(const Id<T>& a, const Id<T>& b) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
struct _FakeFileType {};
|
struct _FakeFileType {};
|
||||||
using FileId = Id<_FakeFileType>;
|
|
||||||
using TypeId = Id<IndexedTypeDef>;
|
using TypeId = Id<IndexedTypeDef>;
|
||||||
using FuncId = Id<IndexedFuncDef>;
|
using FuncId = Id<IndexedFuncDef>;
|
||||||
using VarId = Id<IndexedVarDef>;
|
using VarId = Id<IndexedVarDef>;
|
||||||
|
|
||||||
struct IdCache;
|
struct IdCache;
|
||||||
|
|
||||||
struct Location {
|
|
||||||
// TODO: cleanup types (make this type smaller).
|
|
||||||
bool interesting;
|
|
||||||
int64_t raw_file_id;
|
|
||||||
int32_t line;
|
|
||||||
int32_t column;
|
|
||||||
|
|
||||||
Location() {
|
|
||||||
interesting = false;
|
|
||||||
raw_file_id = -1;
|
|
||||||
line = -1;
|
|
||||||
column = -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
Location(bool interesting, FileId file, int32_t line, int32_t column) {
|
|
||||||
this->interesting = interesting;
|
|
||||||
this->raw_file_id = file.id;
|
|
||||||
this->line = line;
|
|
||||||
this->column = column;
|
|
||||||
}
|
|
||||||
|
|
||||||
FileId file_id() const { return FileId(raw_file_id); }
|
|
||||||
|
|
||||||
explicit Location(const char* encoded) : Location() {
|
|
||||||
if (*encoded == '*') {
|
|
||||||
interesting = true;
|
|
||||||
++encoded;
|
|
||||||
}
|
|
||||||
|
|
||||||
assert(encoded);
|
|
||||||
raw_file_id = strtol(encoded, nullptr, 10);
|
|
||||||
while (*encoded && *encoded != ':')
|
|
||||||
++encoded;
|
|
||||||
if (*encoded == ':')
|
|
||||||
++encoded;
|
|
||||||
|
|
||||||
assert(encoded);
|
|
||||||
line = atoi(encoded);
|
|
||||||
while (*encoded && *encoded != ':')
|
|
||||||
++encoded;
|
|
||||||
if (*encoded == ':')
|
|
||||||
++encoded;
|
|
||||||
|
|
||||||
assert(encoded);
|
|
||||||
column = atoi(encoded);
|
|
||||||
}
|
|
||||||
|
|
||||||
std::string ToPrettyString(IdCache* id_cache);
|
|
||||||
|
|
||||||
std::string ToString() {
|
|
||||||
// Output looks like this:
|
|
||||||
//
|
|
||||||
// *1:2:3
|
|
||||||
//
|
|
||||||
// * => interesting
|
|
||||||
// 1 => file id
|
|
||||||
// 2 => line
|
|
||||||
// 3 => column
|
|
||||||
|
|
||||||
std::string result;
|
|
||||||
if (interesting)
|
|
||||||
result += '*';
|
|
||||||
result += std::to_string(raw_file_id);
|
|
||||||
result += ':';
|
|
||||||
result += std::to_string(line);
|
|
||||||
result += ':';
|
|
||||||
result += std::to_string(column);
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Compare two Locations and check if they are equal. Ignores the value of
|
|
||||||
// |interesting|.
|
|
||||||
// operator== doesn't seem to work properly...
|
|
||||||
bool IsEqualTo(const Location& o) const {
|
|
||||||
// When comparing, ignore the value of |interesting|.
|
|
||||||
return raw_file_id == o.raw_file_id && line == o.line && column == o.column;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool operator==(const Location& o) const { return IsEqualTo(o); }
|
|
||||||
bool operator<(const Location& o) const {
|
|
||||||
return interesting < o.interesting && raw_file_id < o.raw_file_id &&
|
|
||||||
line < o.line && column < o.column;
|
|
||||||
}
|
|
||||||
|
|
||||||
Location WithInteresting(bool interesting) {
|
|
||||||
Location result = *this;
|
|
||||||
result.interesting = interesting;
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
#if false
|
|
||||||
// TODO: Move off of this weird wrapper, use struct with custom wrappers
|
|
||||||
// directly.
|
|
||||||
BEGIN_BITFIELD_TYPE(Location, uint64_t)
|
|
||||||
|
|
||||||
ADD_BITFIELD_MEMBER(interesting, /*start:*/ 0, /*len:*/ 1); // 2 values
|
|
||||||
ADD_BITFIELD_MEMBER(raw_file_group, /*start:*/ 1, /*len:*/ 4); // 16 values, ok if they wrap around.
|
|
||||||
ADD_BITFIELD_MEMBER(raw_file_id, /*start:*/ 5, /*len:*/ 25); // 33,554,432 values
|
|
||||||
ADD_BITFIELD_MEMBER(line, /*start:*/ 30, /*len:*/ 20); // 1,048,576 values
|
|
||||||
ADD_BITFIELD_MEMBER(column, /*start:*/ 50, /*len:*/ 14); // 16,384 values
|
|
||||||
|
|
||||||
Location(bool interesting, FileId file, uint32_t line, uint32_t column) {
|
|
||||||
this->interesting = interesting;
|
|
||||||
this->raw_file_group = file.group;
|
|
||||||
this->raw_file_id = file.id;
|
|
||||||
this->line = line;
|
|
||||||
this->column = column;
|
|
||||||
}
|
|
||||||
|
|
||||||
FileId file_id() {
|
|
||||||
return FileId(raw_file_id, raw_file_group);
|
|
||||||
}
|
|
||||||
|
|
||||||
std::string ToString() {
|
|
||||||
// Output looks like this:
|
|
||||||
//
|
|
||||||
// *1:2:3
|
|
||||||
//
|
|
||||||
// * => interesting
|
|
||||||
// 1 => file id
|
|
||||||
// 2 => line
|
|
||||||
// 3 => column
|
|
||||||
|
|
||||||
std::string result;
|
|
||||||
if (interesting)
|
|
||||||
result += '*';
|
|
||||||
result += std::to_string(raw_file_id);
|
|
||||||
result += ':';
|
|
||||||
result += std::to_string(line);
|
|
||||||
result += ':';
|
|
||||||
result += std::to_string(column);
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Compare two Locations and check if they are equal. Ignores the value of
|
|
||||||
// |interesting|.
|
|
||||||
// operator== doesn't seem to work properly...
|
|
||||||
bool IsEqualTo(const Location& o) {
|
|
||||||
// When comparing, ignore the value of |interesting|.
|
|
||||||
return (wrapper.value >> 1) == (o.wrapper.value >> 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
Location WithInteresting(bool interesting) {
|
|
||||||
Location result = *this;
|
|
||||||
result.interesting = interesting;
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
END_BITFIELD_TYPE()
|
|
||||||
#endif
|
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
struct Ref {
|
struct Ref {
|
||||||
Id<T> id;
|
Id<T> id;
|
||||||
Location loc;
|
Range loc;
|
||||||
|
|
||||||
Ref() {} // For serialization.
|
Ref() {} // For serialization.
|
||||||
|
|
||||||
Ref(Id<T> id, Location loc) : id(id), loc(loc) {}
|
Ref(Id<T> id, Range loc) : id(id), loc(loc) {}
|
||||||
|
|
||||||
bool operator==(const Ref<T>& other) {
|
bool operator==(const Ref<T>& other) {
|
||||||
return id == other.id && loc == other.loc;
|
return id == other.id && loc == other.loc;
|
||||||
@ -245,10 +93,11 @@ using VarRef = Ref<IndexedVarDef>;
|
|||||||
// TODO: Either eliminate the defs created as a by-product of cross-referencing,
|
// TODO: Either eliminate the defs created as a by-product of cross-referencing,
|
||||||
// or do not emit things we don't have definitions for.
|
// or do not emit things we don't have definitions for.
|
||||||
|
|
||||||
template <typename TypeId = TypeId,
|
template <typename TypeId,
|
||||||
typename FuncId = FuncId,
|
typename FuncId,
|
||||||
typename VarId = VarId,
|
typename VarId,
|
||||||
typename Location = Location>
|
typename Position,
|
||||||
|
typename Range>
|
||||||
struct TypeDefDefinitionData {
|
struct TypeDefDefinitionData {
|
||||||
// General metadata.
|
// General metadata.
|
||||||
std::string usr;
|
std::string usr;
|
||||||
@ -264,7 +113,17 @@ struct TypeDefDefinitionData {
|
|||||||
// It's also difficult to identify a `class Foo;` statement with the clang
|
// It's also difficult to identify a `class Foo;` statement with the clang
|
||||||
// indexer API (it's doable using cursor AST traversal), so we don't bother
|
// indexer API (it's doable using cursor AST traversal), so we don't bother
|
||||||
// supporting the feature.
|
// supporting the feature.
|
||||||
optional<Location> definition;
|
optional<Position> definition_spelling;
|
||||||
|
optional<Range> definition_extent;
|
||||||
|
|
||||||
|
// TODO: change |definition| to be a Position, and have an |extents| field which
|
||||||
|
// stores the range of the definition body. Also do this for methods.
|
||||||
|
// TODO: cleanup Range, Position, etc to take less memory. Model vscode api of
|
||||||
|
// Location, Range, Position.
|
||||||
|
// TODO: drop paths from everything in the index. We never store things outside
|
||||||
|
// of the main file.
|
||||||
|
// TODO: fix tests, the change to ranges is breaking them. Breaking currently
|
||||||
|
// coming from marking
|
||||||
|
|
||||||
// If set, then this is the same underlying type as the given value (ie, this
|
// If set, then this is the same underlying type as the given value (ie, this
|
||||||
// type comes from a using or typedef statement).
|
// type comes from a using or typedef statement).
|
||||||
@ -281,16 +140,18 @@ struct TypeDefDefinitionData {
|
|||||||
TypeDefDefinitionData() {} // For reflection.
|
TypeDefDefinitionData() {} // For reflection.
|
||||||
TypeDefDefinitionData(const std::string& usr) : usr(usr) {}
|
TypeDefDefinitionData(const std::string& usr) : usr(usr) {}
|
||||||
|
|
||||||
bool operator==(const TypeDefDefinitionData<TypeId, FuncId, VarId, Location>&
|
bool operator==(const TypeDefDefinitionData<TypeId, FuncId, VarId, Position, Range>&
|
||||||
other) const {
|
other) const {
|
||||||
return usr == other.usr && short_name == other.short_name &&
|
return usr == other.usr && short_name == other.short_name &&
|
||||||
qualified_name == other.qualified_name &&
|
qualified_name == other.qualified_name &&
|
||||||
definition == other.definition && alias_of == other.alias_of &&
|
definition_spelling == other.definition_spelling &&
|
||||||
|
definition_extent == other.definition_extent &&
|
||||||
|
alias_of == other.alias_of &&
|
||||||
parents == other.parents && types == other.types &&
|
parents == other.parents && types == other.types &&
|
||||||
funcs == other.funcs && vars == other.vars;
|
funcs == other.funcs && vars == other.vars;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool operator!=(const TypeDefDefinitionData<TypeId, FuncId, VarId, Location>&
|
bool operator!=(const TypeDefDefinitionData<TypeId, FuncId, VarId, Position, Range>&
|
||||||
other) const {
|
other) const {
|
||||||
return !(*this == other);
|
return !(*this == other);
|
||||||
}
|
}
|
||||||
@ -299,9 +160,10 @@ template <typename TVisitor,
|
|||||||
typename TypeId,
|
typename TypeId,
|
||||||
typename FuncId,
|
typename FuncId,
|
||||||
typename VarId,
|
typename VarId,
|
||||||
typename Location>
|
typename Position,
|
||||||
|
typename Range>
|
||||||
void Reflect(TVisitor& visitor,
|
void Reflect(TVisitor& visitor,
|
||||||
TypeDefDefinitionData<TypeId, FuncId, VarId, Location>& value) {
|
TypeDefDefinitionData<TypeId, FuncId, VarId, Position, Range>& value) {
|
||||||
REFLECT_MEMBER_START();
|
REFLECT_MEMBER_START();
|
||||||
REFLECT_MEMBER(usr);
|
REFLECT_MEMBER(usr);
|
||||||
REFLECT_MEMBER(short_name);
|
REFLECT_MEMBER(short_name);
|
||||||
@ -316,7 +178,8 @@ void Reflect(TVisitor& visitor,
|
|||||||
}
|
}
|
||||||
|
|
||||||
struct IndexedTypeDef {
|
struct IndexedTypeDef {
|
||||||
TypeDefDefinitionData<> def;
|
using Def = TypeDefDefinitionData<TypeId, FuncId, VarId, Range, Range>;
|
||||||
|
Def def;
|
||||||
|
|
||||||
TypeId id;
|
TypeId id;
|
||||||
|
|
||||||
@ -330,7 +193,7 @@ struct IndexedTypeDef {
|
|||||||
|
|
||||||
// Every usage, useful for things like renames.
|
// Every usage, useful for things like renames.
|
||||||
// NOTE: Do not insert directly! Use AddUsage instead.
|
// NOTE: Do not insert directly! Use AddUsage instead.
|
||||||
std::vector<Location> uses;
|
std::vector<Range> uses;
|
||||||
|
|
||||||
IndexedTypeDef() : def("") {} // For serialization
|
IndexedTypeDef() : def("") {} // For serialization
|
||||||
|
|
||||||
@ -338,7 +201,8 @@ struct IndexedTypeDef {
|
|||||||
|
|
||||||
bool HasInterestingState() const {
|
bool HasInterestingState() const {
|
||||||
return
|
return
|
||||||
def.definition ||
|
def.definition_spelling ||
|
||||||
|
def.definition_extent ||
|
||||||
!derived.empty() ||
|
!derived.empty() ||
|
||||||
!instantiations.empty() ||
|
!instantiations.empty() ||
|
||||||
!uses.empty();
|
!uses.empty();
|
||||||
@ -351,17 +215,19 @@ struct IndexedTypeDef {
|
|||||||
|
|
||||||
MAKE_HASHABLE(IndexedTypeDef, t.def.usr);
|
MAKE_HASHABLE(IndexedTypeDef, t.def.usr);
|
||||||
|
|
||||||
template <typename TypeId = TypeId,
|
template <typename TypeId,
|
||||||
typename FuncId = FuncId,
|
typename FuncId,
|
||||||
typename VarId = VarId,
|
typename VarId,
|
||||||
typename FuncRef = FuncRef,
|
typename FuncRef,
|
||||||
typename Location = Location>
|
typename Position,
|
||||||
|
typename Range>
|
||||||
struct FuncDefDefinitionData {
|
struct FuncDefDefinitionData {
|
||||||
// General metadata.
|
// General metadata.
|
||||||
std::string usr;
|
std::string usr;
|
||||||
std::string short_name;
|
std::string short_name;
|
||||||
std::string qualified_name;
|
std::string qualified_name;
|
||||||
optional<Location> definition;
|
optional<Position> definition_spelling;
|
||||||
|
optional<Range> definition_extent;
|
||||||
|
|
||||||
// Type which declares this one (ie, it is a method)
|
// Type which declares this one (ie, it is a method)
|
||||||
optional<TypeId> declaring_type;
|
optional<TypeId> declaring_type;
|
||||||
@ -381,16 +247,17 @@ struct FuncDefDefinitionData {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool operator==(
|
bool operator==(
|
||||||
const FuncDefDefinitionData<TypeId, FuncId, VarId, FuncRef, Location>&
|
const FuncDefDefinitionData<TypeId, FuncId, VarId, FuncRef, Position, Range>&
|
||||||
other) const {
|
other) const {
|
||||||
return usr == other.usr && short_name == other.short_name &&
|
return usr == other.usr && short_name == other.short_name &&
|
||||||
qualified_name == other.qualified_name &&
|
qualified_name == other.qualified_name &&
|
||||||
definition == other.definition &&
|
definition_spelling == other.definition_spelling &&
|
||||||
|
definition_extent == other.definition_extent &&
|
||||||
declaring_type == other.declaring_type && base == other.base &&
|
declaring_type == other.declaring_type && base == other.base &&
|
||||||
locals == other.locals && callees == other.callees;
|
locals == other.locals && callees == other.callees;
|
||||||
}
|
}
|
||||||
bool operator!=(
|
bool operator!=(
|
||||||
const FuncDefDefinitionData<TypeId, FuncId, VarId, FuncRef, Location>&
|
const FuncDefDefinitionData<TypeId, FuncId, VarId, FuncRef, Position, Range>&
|
||||||
other) const {
|
other) const {
|
||||||
return !(*this == other);
|
return !(*this == other);
|
||||||
}
|
}
|
||||||
@ -401,10 +268,11 @@ template <typename TVisitor,
|
|||||||
typename FuncId,
|
typename FuncId,
|
||||||
typename VarId,
|
typename VarId,
|
||||||
typename FuncRef,
|
typename FuncRef,
|
||||||
typename Location>
|
typename Position,
|
||||||
|
typename Range>
|
||||||
void Reflect(
|
void Reflect(
|
||||||
TVisitor& visitor,
|
TVisitor& visitor,
|
||||||
FuncDefDefinitionData<TypeId, FuncId, VarId, FuncRef, Location>& value) {
|
FuncDefDefinitionData<TypeId, FuncId, VarId, FuncRef, Position, Range>& value) {
|
||||||
REFLECT_MEMBER_START();
|
REFLECT_MEMBER_START();
|
||||||
REFLECT_MEMBER(usr);
|
REFLECT_MEMBER(usr);
|
||||||
REFLECT_MEMBER(short_name);
|
REFLECT_MEMBER(short_name);
|
||||||
@ -418,12 +286,13 @@ void Reflect(
|
|||||||
}
|
}
|
||||||
|
|
||||||
struct IndexedFuncDef {
|
struct IndexedFuncDef {
|
||||||
FuncDefDefinitionData<> def;
|
using Def = FuncDefDefinitionData<TypeId, FuncId, VarId, FuncRef, Range, Range>;
|
||||||
|
Def def;
|
||||||
|
|
||||||
FuncId id;
|
FuncId id;
|
||||||
|
|
||||||
// Places the function is forward-declared.
|
// Places the function is forward-declared.
|
||||||
std::vector<Location> declarations;
|
std::vector<Range> declarations;
|
||||||
|
|
||||||
// Methods which directly override this one.
|
// Methods which directly override this one.
|
||||||
std::vector<FuncId> derived;
|
std::vector<FuncId> derived;
|
||||||
@ -437,7 +306,7 @@ struct IndexedFuncDef {
|
|||||||
std::vector<FuncRef> callers;
|
std::vector<FuncRef> callers;
|
||||||
|
|
||||||
// All usages. For interesting usages, see callees.
|
// All usages. For interesting usages, see callees.
|
||||||
std::vector<Location> uses;
|
std::vector<Range> uses;
|
||||||
|
|
||||||
IndexedFuncDef() {} // For reflection.
|
IndexedFuncDef() {} // For reflection.
|
||||||
IndexedFuncDef(FuncId id, const std::string& usr) : def(usr), id(id) {
|
IndexedFuncDef(FuncId id, const std::string& usr) : def(usr), id(id) {
|
||||||
@ -446,7 +315,8 @@ struct IndexedFuncDef {
|
|||||||
|
|
||||||
bool HasInterestingState() const {
|
bool HasInterestingState() const {
|
||||||
return
|
return
|
||||||
def.definition ||
|
def.definition_spelling ||
|
||||||
|
def.definition_extent ||
|
||||||
!def.callees.empty() ||
|
!def.callees.empty() ||
|
||||||
!declarations.empty() ||
|
!declarations.empty() ||
|
||||||
!derived.empty() ||
|
!derived.empty() ||
|
||||||
@ -460,19 +330,21 @@ struct IndexedFuncDef {
|
|||||||
};
|
};
|
||||||
MAKE_HASHABLE(IndexedFuncDef, t.def.usr);
|
MAKE_HASHABLE(IndexedFuncDef, t.def.usr);
|
||||||
|
|
||||||
template <typename TypeId = TypeId,
|
template <typename TypeId,
|
||||||
typename FuncId = FuncId,
|
typename FuncId,
|
||||||
typename VarId = VarId,
|
typename VarId,
|
||||||
typename Location = Location>
|
typename Position,
|
||||||
|
typename Range>
|
||||||
struct VarDefDefinitionData {
|
struct VarDefDefinitionData {
|
||||||
// General metadata.
|
// General metadata.
|
||||||
std::string usr;
|
std::string usr;
|
||||||
std::string short_name;
|
std::string short_name;
|
||||||
std::string qualified_name;
|
std::string qualified_name;
|
||||||
optional<Location> declaration;
|
optional<Range> declaration;
|
||||||
// TODO: definitions should be a list of locations, since there can be more
|
// TODO: definitions should be a list of ranges, since there can be more
|
||||||
// than one.
|
// than one - when??
|
||||||
optional<Location> definition;
|
optional<Position> definition_spelling;
|
||||||
|
optional<Range> definition_extent;
|
||||||
|
|
||||||
// Type of the variable.
|
// Type of the variable.
|
||||||
optional<TypeId> variable_type;
|
optional<TypeId> variable_type;
|
||||||
@ -483,15 +355,17 @@ struct VarDefDefinitionData {
|
|||||||
VarDefDefinitionData() {} // For reflection.
|
VarDefDefinitionData() {} // For reflection.
|
||||||
VarDefDefinitionData(const std::string& usr) : usr(usr) {}
|
VarDefDefinitionData(const std::string& usr) : usr(usr) {}
|
||||||
|
|
||||||
bool operator==(const VarDefDefinitionData<TypeId, FuncId, VarId, Location>&
|
bool operator==(const VarDefDefinitionData<TypeId, FuncId, VarId, Position, Range>&
|
||||||
other) const {
|
other) const {
|
||||||
return usr == other.usr && short_name == other.short_name &&
|
return usr == other.usr && short_name == other.short_name &&
|
||||||
qualified_name == other.qualified_name &&
|
qualified_name == other.qualified_name &&
|
||||||
declaration == other.declaration && definition == other.definition &&
|
declaration == other.declaration &&
|
||||||
|
definition_spelling == other.definition_spelling &&
|
||||||
|
definition_extent == other.definition_extent &&
|
||||||
variable_type == other.variable_type &&
|
variable_type == other.variable_type &&
|
||||||
declaring_type == other.declaring_type;
|
declaring_type == other.declaring_type;
|
||||||
}
|
}
|
||||||
bool operator!=(const VarDefDefinitionData<TypeId, FuncId, VarId, Location>&
|
bool operator!=(const VarDefDefinitionData<TypeId, FuncId, VarId, Position, Range>&
|
||||||
other) const {
|
other) const {
|
||||||
return !(*this == other);
|
return !(*this == other);
|
||||||
}
|
}
|
||||||
@ -501,26 +375,29 @@ template <typename TVisitor,
|
|||||||
typename TypeId,
|
typename TypeId,
|
||||||
typename FuncId,
|
typename FuncId,
|
||||||
typename VarId,
|
typename VarId,
|
||||||
typename Location>
|
typename Position,
|
||||||
|
typename Range>
|
||||||
void Reflect(TVisitor& visitor,
|
void Reflect(TVisitor& visitor,
|
||||||
VarDefDefinitionData<TypeId, FuncId, VarId, Location>& value) {
|
VarDefDefinitionData<TypeId, FuncId, VarId, Position, Range>& value) {
|
||||||
REFLECT_MEMBER_START();
|
REFLECT_MEMBER_START();
|
||||||
REFLECT_MEMBER(usr);
|
REFLECT_MEMBER(usr);
|
||||||
REFLECT_MEMBER(short_name);
|
REFLECT_MEMBER(short_name);
|
||||||
REFLECT_MEMBER(qualified_name);
|
REFLECT_MEMBER(qualified_name);
|
||||||
REFLECT_MEMBER(definition);
|
REFLECT_MEMBER(definition_spelling);
|
||||||
|
REFLECT_MEMBER(definition_extent);
|
||||||
REFLECT_MEMBER(variable_type);
|
REFLECT_MEMBER(variable_type);
|
||||||
REFLECT_MEMBER(declaring_type);
|
REFLECT_MEMBER(declaring_type);
|
||||||
REFLECT_MEMBER_END();
|
REFLECT_MEMBER_END();
|
||||||
}
|
}
|
||||||
|
|
||||||
struct IndexedVarDef {
|
struct IndexedVarDef {
|
||||||
VarDefDefinitionData<> def;
|
using Def = VarDefDefinitionData<TypeId, FuncId, VarId, Range, Range>;
|
||||||
|
Def def;
|
||||||
|
|
||||||
VarId id;
|
VarId id;
|
||||||
|
|
||||||
// Usages.
|
// Usages.
|
||||||
std::vector<Location> uses;
|
std::vector<Range> uses;
|
||||||
|
|
||||||
IndexedVarDef() : def("") {} // For serialization
|
IndexedVarDef() : def("") {} // For serialization
|
||||||
|
|
||||||
@ -530,7 +407,8 @@ struct IndexedVarDef {
|
|||||||
|
|
||||||
bool HasInterestingState() const {
|
bool HasInterestingState() const {
|
||||||
return
|
return
|
||||||
def.definition ||
|
def.definition_spelling ||
|
||||||
|
def.definition_extent ||
|
||||||
!uses.empty();
|
!uses.empty();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -542,23 +420,24 @@ MAKE_HASHABLE(IndexedVarDef, t.def.usr);
|
|||||||
|
|
||||||
struct IdCache {
|
struct IdCache {
|
||||||
std::string primary_file;
|
std::string primary_file;
|
||||||
std::unordered_map<std::string, FileId> file_path_to_file_id;
|
|
||||||
std::unordered_map<std::string, TypeId> usr_to_type_id;
|
std::unordered_map<std::string, TypeId> usr_to_type_id;
|
||||||
std::unordered_map<std::string, FuncId> usr_to_func_id;
|
std::unordered_map<std::string, FuncId> usr_to_func_id;
|
||||||
std::unordered_map<std::string, VarId> usr_to_var_id;
|
std::unordered_map<std::string, VarId> usr_to_var_id;
|
||||||
std::unordered_map<FileId, std::string> file_id_to_file_path;
|
|
||||||
std::unordered_map<TypeId, std::string> type_id_to_usr;
|
std::unordered_map<TypeId, std::string> type_id_to_usr;
|
||||||
std::unordered_map<FuncId, std::string> func_id_to_usr;
|
std::unordered_map<FuncId, std::string> func_id_to_usr;
|
||||||
std::unordered_map<VarId, std::string> var_id_to_usr;
|
std::unordered_map<VarId, std::string> var_id_to_usr;
|
||||||
|
|
||||||
IdCache(const std::string& primary_file);
|
IdCache(const std::string& primary_file);
|
||||||
Location ForceResolve(const CXSourceLocation& cx_loc, bool interesting);
|
|
||||||
Location ForceResolve(const CXIdxLoc& cx_idx_loc, bool interesting);
|
Range ForceResolve(const CXSourceRange& range, bool interesting);
|
||||||
Location ForceResolve(const CXCursor& cx_cursor, bool interesting);
|
|
||||||
optional<Location> Resolve(const CXSourceLocation& cx_loc, bool interesting);
|
Range ForceResolveSpelling(const CXCursor& cx_cursor, bool interesting);
|
||||||
optional<Location> Resolve(const CXIdxLoc& cx_idx_loc, bool interesting);
|
optional<Range> ResolveSpelling(const CXCursor& cx_cursor, bool interesting);
|
||||||
optional<Location> Resolve(const CXCursor& cx_cursor, bool interesting);
|
optional<Range> ResolveSpelling(const clang::Cursor& cursor, bool interesting);
|
||||||
optional<Location> Resolve(const clang::Cursor& cursor, bool interesting);
|
|
||||||
|
Range ForceResolveExtent(const CXCursor& cx_cursor, bool interesting);
|
||||||
|
optional<Range> ResolveExtent(const CXCursor& cx_cursor, bool interesting);
|
||||||
|
optional<Range> ResolveExtent(const clang::Cursor& cursor, bool interesting);
|
||||||
};
|
};
|
||||||
|
|
||||||
struct IndexedFile {
|
struct IndexedFile {
|
||||||
|
@ -166,7 +166,7 @@ bool lsPosition::operator==(const lsPosition& other) const {
|
|||||||
}
|
}
|
||||||
|
|
||||||
lsRange::lsRange() {}
|
lsRange::lsRange() {}
|
||||||
lsRange::lsRange(lsPosition position) : start(position), end(position) {}
|
lsRange::lsRange(lsPosition start, lsPosition end) : start(start), end(end) {}
|
||||||
|
|
||||||
bool lsRange::operator==(const lsRange& other) const {
|
bool lsRange::operator==(const lsRange& other) const {
|
||||||
return start == other.start && end == other.end;
|
return start == other.start && end == other.end;
|
||||||
|
@ -239,7 +239,7 @@ MAKE_REFLECT_STRUCT(lsPosition, line, character);
|
|||||||
|
|
||||||
struct lsRange {
|
struct lsRange {
|
||||||
lsRange();
|
lsRange();
|
||||||
lsRange(lsPosition position);
|
lsRange(lsPosition start, lsPosition end);
|
||||||
|
|
||||||
bool operator==(const lsRange& other) const;
|
bool operator==(const lsRange& other) const;
|
||||||
|
|
||||||
|
126
src/position.cc
Normal file
126
src/position.cc
Normal file
@ -0,0 +1,126 @@
|
|||||||
|
#include "position.h"
|
||||||
|
|
||||||
|
Position::Position() {}
|
||||||
|
|
||||||
|
Position::Position(bool interesting, int32_t line, int32_t column)
|
||||||
|
: interesting(interesting), line(line), column(column) {}
|
||||||
|
|
||||||
|
Position::Position(const char* encoded) {
|
||||||
|
if (*encoded == '*') {
|
||||||
|
interesting = true;
|
||||||
|
++encoded;
|
||||||
|
}
|
||||||
|
|
||||||
|
assert(encoded);
|
||||||
|
line = atoi(encoded);
|
||||||
|
while (*encoded && *encoded != ':')
|
||||||
|
++encoded;
|
||||||
|
if (*encoded == ':')
|
||||||
|
++encoded;
|
||||||
|
|
||||||
|
assert(encoded);
|
||||||
|
column = atoi(encoded);
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string Position::ToString() {
|
||||||
|
// Output looks like this:
|
||||||
|
//
|
||||||
|
// *1:2
|
||||||
|
//
|
||||||
|
// * => interesting
|
||||||
|
// 1 => line
|
||||||
|
// 2 => column
|
||||||
|
|
||||||
|
std::string result;
|
||||||
|
if (interesting)
|
||||||
|
result += '*';
|
||||||
|
result += std::to_string(line);
|
||||||
|
result += ':';
|
||||||
|
result += std::to_string(column);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string Position::ToPrettyString(const std::string& filename) {
|
||||||
|
// Output looks like this:
|
||||||
|
//
|
||||||
|
// *1:2
|
||||||
|
//
|
||||||
|
// * => interesting
|
||||||
|
// 1 => line
|
||||||
|
// 2 => column
|
||||||
|
|
||||||
|
std::string result;
|
||||||
|
if (interesting)
|
||||||
|
result += '*';
|
||||||
|
result += filename;
|
||||||
|
result += ':';
|
||||||
|
result += std::to_string(line);
|
||||||
|
result += ':';
|
||||||
|
result += std::to_string(column);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
Position Position::WithInteresting(bool interesting) {
|
||||||
|
Position result = *this;
|
||||||
|
result.interesting = interesting;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Position::operator==(const Position& that) const {
|
||||||
|
return line == that.line && column == that.column;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Position::operator!=(const Position& that) const { return !(*this == that); }
|
||||||
|
|
||||||
|
bool Position::operator<(const Position& that) const {
|
||||||
|
return interesting < that.interesting && line < that.line && column < that.column;
|
||||||
|
}
|
||||||
|
|
||||||
|
Range::Range() {}
|
||||||
|
|
||||||
|
Range::Range(Position start, Position end) : start(start), end(end) {}
|
||||||
|
|
||||||
|
Range::Range(const char* encoded) : start(encoded) {
|
||||||
|
end = start;
|
||||||
|
/*
|
||||||
|
assert(encoded);
|
||||||
|
while (*encoded && *encoded != '-')
|
||||||
|
++encoded;
|
||||||
|
if (*encoded == '-')
|
||||||
|
++encoded;
|
||||||
|
end.line = atoi(encoded);
|
||||||
|
|
||||||
|
assert(encoded);
|
||||||
|
while (*encoded && *encoded != ':')
|
||||||
|
++encoded;
|
||||||
|
if (*encoded == ':')
|
||||||
|
++encoded;
|
||||||
|
end.column = atoi(encoded);
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string Range::ToString() {
|
||||||
|
std::string output;
|
||||||
|
output += start.ToString();
|
||||||
|
/*
|
||||||
|
output += "-";
|
||||||
|
output += std::to_string(end.line);
|
||||||
|
output += ":";
|
||||||
|
output += std::to_string(end.column);
|
||||||
|
*/
|
||||||
|
return output;
|
||||||
|
}
|
||||||
|
|
||||||
|
Range Range::WithInteresting(bool interesting) {
|
||||||
|
return Range(start.WithInteresting(interesting), end.WithInteresting(interesting));
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Range::operator==(const Range& that) const {
|
||||||
|
return start == that.start && end == that.end;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Range::operator!=(const Range& that) const { return !(*this == that); }
|
||||||
|
|
||||||
|
bool Range::operator<(const Range& that) const {
|
||||||
|
return start < that.start;// || end < that.end;
|
||||||
|
}
|
42
src/position.h
Normal file
42
src/position.h
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <cassert>
|
||||||
|
#include <cstdint>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
struct Position {
|
||||||
|
bool interesting = false;
|
||||||
|
int32_t line = -1;
|
||||||
|
int32_t column = -1;
|
||||||
|
|
||||||
|
Position();
|
||||||
|
Position(bool interesting, int32_t line, int32_t column);
|
||||||
|
explicit Position(const char* encoded);
|
||||||
|
|
||||||
|
std::string ToString();
|
||||||
|
std::string ToPrettyString(const std::string& filename);
|
||||||
|
|
||||||
|
Position WithInteresting(bool interesting);
|
||||||
|
|
||||||
|
// Compare two Positions and check if they are equal. Ignores the value of
|
||||||
|
// |interesting|.
|
||||||
|
bool operator==(const Position& that) const;
|
||||||
|
bool operator!=(const Position& that) const;
|
||||||
|
bool operator<(const Position& that) const;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct Range {
|
||||||
|
Position start;
|
||||||
|
Position end;
|
||||||
|
|
||||||
|
Range();
|
||||||
|
Range(Position start, Position end);
|
||||||
|
explicit Range(const char* encoded);
|
||||||
|
|
||||||
|
std::string ToString();
|
||||||
|
Range WithInteresting(bool interesting);
|
||||||
|
|
||||||
|
bool operator==(const Range& that) const;
|
||||||
|
bool operator!=(const Range& that) const;
|
||||||
|
bool operator<(const Range& that) const;
|
||||||
|
};
|
108
src/query.cc
108
src/query.cc
@ -45,9 +45,10 @@ Usr MapIdToUsr(const IdCache& id_cache, const VarId& id) {
|
|||||||
assert(id_cache.var_id_to_usr.find(id) != id_cache.var_id_to_usr.end());
|
assert(id_cache.var_id_to_usr.find(id) != id_cache.var_id_to_usr.end());
|
||||||
return id_cache.var_id_to_usr.find(id)->second;
|
return id_cache.var_id_to_usr.find(id)->second;
|
||||||
}
|
}
|
||||||
QueryableLocation MapIdToUsr(const IdCache& id_cache, const Location& id) {
|
QueryableRange MapIdToUsr(const IdCache& id_cache, const Range& id) {
|
||||||
assert(id.raw_file_id == 1);
|
QueryableLocation start(id_cache.primary_file, id.start.line, id.start.column, id.start.interesting);
|
||||||
return QueryableLocation(id_cache.primary_file, id.line, id.column, id.interesting);
|
QueryableLocation end(id_cache.primary_file, id.end.line, id.end.column, id.end.interesting);
|
||||||
|
return QueryableRange(start, end);
|
||||||
//assert(id_cache.file_id_to_file_path.find(id.file_id()) != id_cache.file_id_to_file_path.end());
|
//assert(id_cache.file_id_to_file_path.find(id.file_id()) != id_cache.file_id_to_file_path.end());
|
||||||
//return QueryableLocation(id_cache.file_id_to_file_path.find(id.file_id())->second, id.line, id.column, id.interesting);
|
//return QueryableLocation(id_cache.file_id_to_file_path.find(id.file_id())->second, id.line, id.column, id.interesting);
|
||||||
}
|
}
|
||||||
@ -80,18 +81,21 @@ std::vector<UsrRef> MapIdToUsr(const IdCache& id_cache, const std::vector<FuncRe
|
|||||||
return result;
|
return result;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
std::vector<QueryableLocation> MapIdToUsr(const IdCache& id_cache, const std::vector<Location>& ids) {
|
std::vector<QueryableRange> MapIdToUsr(const IdCache& id_cache, const std::vector<Range>& ids) {
|
||||||
return Transform<Location, QueryableLocation>(ids, [&](Location id) {
|
return Transform<Range, QueryableRange>(ids, [&](Range id) {
|
||||||
assert(id_cache.file_id_to_file_path.find(id.file_id()) != id_cache.file_id_to_file_path.end());
|
QueryableLocation start(id_cache.primary_file, id.start.line, id.start.column, id.start.interesting);
|
||||||
return QueryableLocation(id_cache.file_id_to_file_path.find(id.file_id())->second, id.line, id.column, id.interesting);
|
QueryableLocation end(id_cache.primary_file, id.end.line, id.end.column, id.end.interesting);
|
||||||
|
return QueryableRange(start, end);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
QueryableTypeDef::DefUpdate MapIdToUsr(const IdCache& id_cache, const TypeDefDefinitionData<>& def) {
|
QueryableTypeDef::DefUpdate MapIdToUsr(const IdCache& id_cache, const IndexedTypeDef::Def& def) {
|
||||||
QueryableTypeDef::DefUpdate result(def.usr);
|
QueryableTypeDef::DefUpdate result(def.usr);
|
||||||
result.short_name = def.short_name;
|
result.short_name = def.short_name;
|
||||||
result.qualified_name = def.qualified_name;
|
result.qualified_name = def.qualified_name;
|
||||||
if (def.definition)
|
if (def.definition_spelling)
|
||||||
result.definition = MapIdToUsr(id_cache, def.definition.value());
|
result.definition_spelling = MapIdToUsr(id_cache, def.definition_spelling.value());
|
||||||
|
if (def.definition_extent)
|
||||||
|
result.definition_extent = MapIdToUsr(id_cache, def.definition_extent.value());
|
||||||
if (def.alias_of)
|
if (def.alias_of)
|
||||||
result.alias_of = MapIdToUsr(id_cache, def.alias_of.value());
|
result.alias_of = MapIdToUsr(id_cache, def.alias_of.value());
|
||||||
result.parents = MapIdToUsr(id_cache, def.parents);
|
result.parents = MapIdToUsr(id_cache, def.parents);
|
||||||
@ -100,12 +104,14 @@ QueryableTypeDef::DefUpdate MapIdToUsr(const IdCache& id_cache, const TypeDefDef
|
|||||||
result.vars = MapIdToUsr(id_cache, def.vars);
|
result.vars = MapIdToUsr(id_cache, def.vars);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
QueryableFuncDef::DefUpdate MapIdToUsr(const IdCache& id_cache, const FuncDefDefinitionData<>& def) {
|
QueryableFuncDef::DefUpdate MapIdToUsr(const IdCache& id_cache, const IndexedFuncDef::Def& def) {
|
||||||
QueryableFuncDef::DefUpdate result(def.usr);
|
QueryableFuncDef::DefUpdate result(def.usr);
|
||||||
result.short_name = def.short_name;
|
result.short_name = def.short_name;
|
||||||
result.qualified_name = def.qualified_name;
|
result.qualified_name = def.qualified_name;
|
||||||
if (def.definition)
|
if (def.definition_spelling)
|
||||||
result.definition = MapIdToUsr(id_cache, def.definition.value());
|
result.definition_spelling = MapIdToUsr(id_cache, def.definition_spelling.value());
|
||||||
|
if (def.definition_extent)
|
||||||
|
result.definition_extent = MapIdToUsr(id_cache, def.definition_extent.value());
|
||||||
if (def.declaring_type)
|
if (def.declaring_type)
|
||||||
result.declaring_type = MapIdToUsr(id_cache, def.declaring_type.value());
|
result.declaring_type = MapIdToUsr(id_cache, def.declaring_type.value());
|
||||||
if (def.base)
|
if (def.base)
|
||||||
@ -114,14 +120,16 @@ QueryableFuncDef::DefUpdate MapIdToUsr(const IdCache& id_cache, const FuncDefDef
|
|||||||
result.callees = MapIdToUsr(id_cache, def.callees);
|
result.callees = MapIdToUsr(id_cache, def.callees);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
QueryableVarDef::DefUpdate MapIdToUsr(const IdCache& id_cache, const VarDefDefinitionData<>& def) {
|
QueryableVarDef::DefUpdate MapIdToUsr(const IdCache& id_cache, const IndexedVarDef::Def& def) {
|
||||||
QueryableVarDef::DefUpdate result(def.usr);
|
QueryableVarDef::DefUpdate result(def.usr);
|
||||||
result.short_name = def.short_name;
|
result.short_name = def.short_name;
|
||||||
result.qualified_name = def.qualified_name;
|
result.qualified_name = def.qualified_name;
|
||||||
if (def.declaration)
|
if (def.declaration)
|
||||||
result.declaration = MapIdToUsr(id_cache, def.declaration.value());
|
result.declaration = MapIdToUsr(id_cache, def.declaration.value());
|
||||||
if (def.definition)
|
if (def.definition_spelling)
|
||||||
result.definition = MapIdToUsr(id_cache, def.definition.value());
|
result.definition_spelling = MapIdToUsr(id_cache, def.definition_spelling.value());
|
||||||
|
if (def.definition_extent)
|
||||||
|
result.definition_extent = MapIdToUsr(id_cache, def.definition_extent.value());
|
||||||
if (def.variable_type)
|
if (def.variable_type)
|
||||||
result.variable_type = MapIdToUsr(id_cache, def.variable_type.value());
|
result.variable_type = MapIdToUsr(id_cache, def.variable_type.value());
|
||||||
if (def.declaring_type)
|
if (def.declaring_type)
|
||||||
@ -139,57 +147,47 @@ QueryableFile::QueryableFile(const IndexedFile& indexed)
|
|||||||
// std::cerr << "-" << entry.first << std::endl;
|
// std::cerr << "-" << entry.first << std::endl;
|
||||||
//assert(indexed.id_cache.file_path_to_file_id.find(indexed.path) !=
|
//assert(indexed.id_cache.file_path_to_file_id.find(indexed.path) !=
|
||||||
// indexed.id_cache.file_path_to_file_id.end());
|
// indexed.id_cache.file_path_to_file_id.end());
|
||||||
auto it = indexed.id_cache.file_path_to_file_id.find(indexed.path);
|
auto add_outline = [this, &indexed](Usr usr, Range range) {
|
||||||
if (it == indexed.id_cache.file_path_to_file_id.end()) {
|
outline.push_back(UsrRef(usr, MapIdToUsr(indexed.id_cache, range)));
|
||||||
// TODO: investigate
|
|
||||||
std::cerr << "!!! FIXME !!! Unable to find cached file " << indexed.path << std::endl;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
FileId local_file_id = it->second;
|
|
||||||
auto add_outline = [this, &indexed, local_file_id](Usr usr, Location location) {
|
|
||||||
if (location.file_id() == local_file_id)
|
|
||||||
outline.push_back(UsrRef(usr, MapIdToUsr(indexed.id_cache, location)));
|
|
||||||
};
|
};
|
||||||
auto add_all_symbols = [this, &indexed, local_file_id](Usr usr, Location location) {
|
auto add_all_symbols = [this, &indexed](Usr usr, Range range) {
|
||||||
if (location.file_id() == local_file_id)
|
all_symbols.push_back(UsrRef(usr, MapIdToUsr(indexed.id_cache, range)));
|
||||||
all_symbols.push_back(UsrRef(usr, MapIdToUsr(indexed.id_cache, location)));
|
|
||||||
};
|
};
|
||||||
|
|
||||||
for (const IndexedTypeDef& def : indexed.types) {
|
for (const IndexedTypeDef& def : indexed.types) {
|
||||||
if (def.def.definition.has_value()) {
|
if (def.def.definition_spelling.has_value())
|
||||||
add_outline(def.def.usr, def.def.definition.value());
|
add_all_symbols(def.def.usr, def.def.definition_spelling.value());
|
||||||
add_all_symbols(def.def.usr, def.def.definition.value());
|
if (def.def.definition_extent.has_value())
|
||||||
}
|
add_outline(def.def.usr, def.def.definition_extent.value());
|
||||||
for (const Location& use : def.uses)
|
for (const Range& use : def.uses)
|
||||||
add_all_symbols(def.def.usr, use);
|
add_all_symbols(def.def.usr, use);
|
||||||
}
|
}
|
||||||
for (const IndexedFuncDef& def : indexed.funcs) {
|
for (const IndexedFuncDef& def : indexed.funcs) {
|
||||||
if (def.def.definition.has_value()) {
|
if (def.def.definition_spelling.has_value())
|
||||||
add_outline(def.def.usr, def.def.definition.value());
|
add_all_symbols(def.def.usr, def.def.definition_spelling.value());
|
||||||
add_all_symbols(def.def.usr, def.def.definition.value());
|
if (def.def.definition_extent.has_value())
|
||||||
}
|
add_outline(def.def.usr, def.def.definition_extent.value());
|
||||||
for (Location decl : def.declarations) {
|
for (Range decl : def.declarations) {
|
||||||
add_outline(def.def.usr, decl);
|
add_outline(def.def.usr, decl);
|
||||||
add_all_symbols(def.def.usr, decl);
|
add_all_symbols(def.def.usr, decl);
|
||||||
}
|
}
|
||||||
for (const Location& use : def.uses)
|
for (const Range& use : def.uses)
|
||||||
add_all_symbols(def.def.usr, use);
|
add_all_symbols(def.def.usr, use);
|
||||||
}
|
}
|
||||||
for (const IndexedVarDef& def : indexed.vars) {
|
for (const IndexedVarDef& def : indexed.vars) {
|
||||||
if (def.def.definition.has_value()) {
|
if (def.def.definition_spelling.has_value())
|
||||||
add_outline(def.def.usr, def.def.definition.value());
|
add_all_symbols(def.def.usr, def.def.definition_spelling.value());
|
||||||
add_all_symbols(def.def.usr, def.def.definition.value());
|
if (def.def.definition_extent.has_value())
|
||||||
}
|
add_outline(def.def.usr, def.def.definition_extent.value());
|
||||||
for (const Location& use : def.uses)
|
for (const Range& use : def.uses)
|
||||||
add_all_symbols(def.def.usr, use);
|
add_all_symbols(def.def.usr, use);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::sort(outline.begin(), outline.end(), [](const UsrRef& a, const UsrRef& b) {
|
std::sort(outline.begin(), outline.end(), [](const UsrRef& a, const UsrRef& b) {
|
||||||
return a.loc < b.loc;
|
return a.loc.start < b.loc.start;
|
||||||
});
|
});
|
||||||
std::sort(all_symbols.begin(), all_symbols.end(), [](const UsrRef& a, const UsrRef& b) {
|
std::sort(all_symbols.begin(), all_symbols.end(), [](const UsrRef& a, const UsrRef& b) {
|
||||||
return a.loc < b.loc;
|
return a.loc.start < b.loc.start;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -459,7 +457,7 @@ IndexUpdate::IndexUpdate(IndexedFile& previous_file, IndexedFile& current_file)
|
|||||||
types_def_changed.push_back(current_remapped_def);
|
types_def_changed.push_back(current_remapped_def);
|
||||||
|
|
||||||
PROCESS_UPDATE_DIFF(types_derived, derived, Usr);
|
PROCESS_UPDATE_DIFF(types_derived, derived, Usr);
|
||||||
PROCESS_UPDATE_DIFF(types_uses, uses, QueryableLocation);
|
PROCESS_UPDATE_DIFF(types_uses, uses, QueryableRange);
|
||||||
});
|
});
|
||||||
|
|
||||||
// Functions
|
// Functions
|
||||||
@ -476,10 +474,10 @@ IndexUpdate::IndexUpdate(IndexedFile& previous_file, IndexedFile& current_file)
|
|||||||
if (previous_remapped_def != current_remapped_def)
|
if (previous_remapped_def != current_remapped_def)
|
||||||
funcs_def_changed.push_back(current_remapped_def);
|
funcs_def_changed.push_back(current_remapped_def);
|
||||||
|
|
||||||
PROCESS_UPDATE_DIFF(funcs_declarations, declarations, QueryableLocation);
|
PROCESS_UPDATE_DIFF(funcs_declarations, declarations, QueryableRange);
|
||||||
PROCESS_UPDATE_DIFF(funcs_derived, derived, Usr);
|
PROCESS_UPDATE_DIFF(funcs_derived, derived, Usr);
|
||||||
PROCESS_UPDATE_DIFF(funcs_callers, callers, UsrRef);
|
PROCESS_UPDATE_DIFF(funcs_callers, callers, UsrRef);
|
||||||
PROCESS_UPDATE_DIFF(funcs_uses, uses, QueryableLocation);
|
PROCESS_UPDATE_DIFF(funcs_uses, uses, QueryableRange);
|
||||||
});
|
});
|
||||||
|
|
||||||
// Variables
|
// Variables
|
||||||
@ -496,7 +494,7 @@ IndexUpdate::IndexUpdate(IndexedFile& previous_file, IndexedFile& current_file)
|
|||||||
if (previous_remapped_def != current_remapped_def)
|
if (previous_remapped_def != current_remapped_def)
|
||||||
vars_def_changed.push_back(current_remapped_def);
|
vars_def_changed.push_back(current_remapped_def);
|
||||||
|
|
||||||
PROCESS_UPDATE_DIFF(vars_uses, uses, QueryableLocation);
|
PROCESS_UPDATE_DIFF(vars_uses, uses, QueryableRange);
|
||||||
});
|
});
|
||||||
|
|
||||||
#undef PROCESS_UPDATE_DIFF
|
#undef PROCESS_UPDATE_DIFF
|
||||||
@ -596,7 +594,7 @@ void QueryableDatabase::Import(const std::vector<QueryableTypeDef>& defs) {
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
QueryableTypeDef& existing = types[it->second.idx];
|
QueryableTypeDef& existing = types[it->second.idx];
|
||||||
if (def.def.definition)
|
if (def.def.definition_extent)
|
||||||
existing.def = def.def;
|
existing.def = def.def;
|
||||||
AddRange(&existing.derived, def.derived);
|
AddRange(&existing.derived, def.derived);
|
||||||
AddRange(&existing.uses, def.uses);
|
AddRange(&existing.uses, def.uses);
|
||||||
@ -615,7 +613,7 @@ void QueryableDatabase::Import(const std::vector<QueryableFuncDef>& defs) {
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
QueryableFuncDef& existing = funcs[it->second.idx];
|
QueryableFuncDef& existing = funcs[it->second.idx];
|
||||||
if (def.def.definition)
|
if (def.def.definition_extent)
|
||||||
existing.def = def.def;
|
existing.def = def.def;
|
||||||
AddRange(&existing.callers, def.callers);
|
AddRange(&existing.callers, def.callers);
|
||||||
AddRange(&existing.declarations, def.declarations);
|
AddRange(&existing.declarations, def.declarations);
|
||||||
@ -636,7 +634,7 @@ void QueryableDatabase::Import(const std::vector<QueryableVarDef>& defs) {
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
QueryableVarDef& existing = vars[it->second.idx];
|
QueryableVarDef& existing = vars[it->second.idx];
|
||||||
if (def.def.definition)
|
if (def.def.definition_extent)
|
||||||
existing.def = def.def;
|
existing.def = def.def;
|
||||||
AddRange(&existing.uses, def.uses);
|
AddRange(&existing.uses, def.uses);
|
||||||
}
|
}
|
||||||
|
52
src/query.h
52
src/query.h
@ -44,19 +44,41 @@ struct QueryableLocation {
|
|||||||
};
|
};
|
||||||
MAKE_REFLECT_STRUCT(QueryableLocation, path, line, column, interesting);
|
MAKE_REFLECT_STRUCT(QueryableLocation, path, line, column, interesting);
|
||||||
|
|
||||||
|
struct QueryableRange {
|
||||||
|
QueryableLocation start;
|
||||||
|
QueryableLocation end;
|
||||||
|
|
||||||
|
QueryableRange() {}
|
||||||
|
QueryableRange(QueryableLocation start, QueryableLocation end) : start(start), end(end) {}
|
||||||
|
|
||||||
|
QueryableRange OffsetStartColumn(int offset) const {
|
||||||
|
return QueryableRange(start.OffsetColumn(offset), end);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool operator==(const QueryableRange& other) const {
|
||||||
|
// Note: We ignore |is_interesting|.
|
||||||
|
return start == other.start && end == other.end;
|
||||||
|
}
|
||||||
|
bool operator!=(const QueryableRange& other) const { return !(*this == other); }
|
||||||
|
bool operator<(const QueryableRange& o) const {
|
||||||
|
return start < o.start;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
MAKE_REFLECT_STRUCT(QueryableRange, start, end);
|
||||||
|
|
||||||
struct UsrRef {
|
struct UsrRef {
|
||||||
Usr usr;
|
Usr usr;
|
||||||
QueryableLocation loc;
|
QueryableRange loc;
|
||||||
|
|
||||||
UsrRef() {}
|
UsrRef() {}
|
||||||
UsrRef(Usr usr, QueryableLocation loc) : usr(usr), loc(loc) {}
|
UsrRef(Usr usr, QueryableRange loc) : usr(usr), loc(loc) {}
|
||||||
|
|
||||||
bool operator==(const UsrRef& other) const {
|
bool operator==(const UsrRef& other) const {
|
||||||
return usr == other.usr && loc == other.loc;
|
return usr == other.usr && loc.start == other.loc.start;
|
||||||
}
|
}
|
||||||
bool operator!=(const UsrRef& other) const { return !(*this == other); }
|
bool operator!=(const UsrRef& other) const { return !(*this == other); }
|
||||||
bool operator<(const UsrRef& other) const {
|
bool operator<(const UsrRef& other) const {
|
||||||
return usr < other.usr && loc < other.loc;
|
return usr < other.usr && loc.start < other.loc.start;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
MAKE_REFLECT_STRUCT(UsrRef, usr, loc);
|
MAKE_REFLECT_STRUCT(UsrRef, usr, loc);
|
||||||
@ -109,15 +131,15 @@ struct QueryableFile {
|
|||||||
MAKE_REFLECT_STRUCT(QueryableFile, file_id, outline, all_symbols);
|
MAKE_REFLECT_STRUCT(QueryableFile, file_id, outline, all_symbols);
|
||||||
|
|
||||||
struct QueryableTypeDef {
|
struct QueryableTypeDef {
|
||||||
using DefUpdate = TypeDefDefinitionData<Usr, Usr, Usr, QueryableLocation>;
|
using DefUpdate = TypeDefDefinitionData<Usr, Usr, Usr, QueryableRange, QueryableRange>;
|
||||||
using DerivedUpdate = MergeableUpdate<Usr>;
|
using DerivedUpdate = MergeableUpdate<Usr>;
|
||||||
using InstantiationsUpdate = MergeableUpdate<Usr>;
|
using InstantiationsUpdate = MergeableUpdate<Usr>;
|
||||||
using UsesUpdate = MergeableUpdate<QueryableLocation>;
|
using UsesUpdate = MergeableUpdate<QueryableRange>;
|
||||||
|
|
||||||
DefUpdate def;
|
DefUpdate def;
|
||||||
std::vector<Usr> derived;
|
std::vector<Usr> derived;
|
||||||
std::vector<Usr> instantiations;
|
std::vector<Usr> instantiations;
|
||||||
std::vector<QueryableLocation> uses;
|
std::vector<QueryableRange> uses;
|
||||||
|
|
||||||
QueryableTypeDef() : def("") {} // For serialization.
|
QueryableTypeDef() : def("") {} // For serialization.
|
||||||
QueryableTypeDef(IdCache& id_cache, const IndexedTypeDef& indexed);
|
QueryableTypeDef(IdCache& id_cache, const IndexedTypeDef& indexed);
|
||||||
@ -125,17 +147,17 @@ struct QueryableTypeDef {
|
|||||||
MAKE_REFLECT_STRUCT(QueryableTypeDef, def, derived, instantiations, uses);
|
MAKE_REFLECT_STRUCT(QueryableTypeDef, def, derived, instantiations, uses);
|
||||||
|
|
||||||
struct QueryableFuncDef {
|
struct QueryableFuncDef {
|
||||||
using DefUpdate = FuncDefDefinitionData<Usr, Usr, Usr, UsrRef, QueryableLocation>;
|
using DefUpdate = FuncDefDefinitionData<Usr, Usr, Usr, UsrRef, QueryableRange, QueryableRange>;
|
||||||
using DeclarationsUpdate = MergeableUpdate<QueryableLocation>;
|
using DeclarationsUpdate = MergeableUpdate<QueryableRange>;
|
||||||
using DerivedUpdate = MergeableUpdate<Usr>;
|
using DerivedUpdate = MergeableUpdate<Usr>;
|
||||||
using CallersUpdate = MergeableUpdate<UsrRef>;
|
using CallersUpdate = MergeableUpdate<UsrRef>;
|
||||||
using UsesUpdate = MergeableUpdate<QueryableLocation>;
|
using UsesUpdate = MergeableUpdate<QueryableRange>;
|
||||||
|
|
||||||
DefUpdate def;
|
DefUpdate def;
|
||||||
std::vector<QueryableLocation> declarations;
|
std::vector<QueryableRange> declarations;
|
||||||
std::vector<Usr> derived;
|
std::vector<Usr> derived;
|
||||||
std::vector<UsrRef> callers;
|
std::vector<UsrRef> callers;
|
||||||
std::vector<QueryableLocation> uses;
|
std::vector<QueryableRange> uses;
|
||||||
|
|
||||||
QueryableFuncDef() : def("") {} // For serialization.
|
QueryableFuncDef() : def("") {} // For serialization.
|
||||||
QueryableFuncDef(IdCache& id_cache, const IndexedFuncDef& indexed);
|
QueryableFuncDef(IdCache& id_cache, const IndexedFuncDef& indexed);
|
||||||
@ -143,11 +165,11 @@ struct QueryableFuncDef {
|
|||||||
MAKE_REFLECT_STRUCT(QueryableFuncDef, def, declarations, derived, callers, uses);
|
MAKE_REFLECT_STRUCT(QueryableFuncDef, def, declarations, derived, callers, uses);
|
||||||
|
|
||||||
struct QueryableVarDef {
|
struct QueryableVarDef {
|
||||||
using DefUpdate = VarDefDefinitionData<Usr, Usr, Usr, QueryableLocation>;
|
using DefUpdate = VarDefDefinitionData<Usr, Usr, Usr, QueryableRange, QueryableRange>;
|
||||||
using UsesUpdate = MergeableUpdate<QueryableLocation>;
|
using UsesUpdate = MergeableUpdate<QueryableRange>;
|
||||||
|
|
||||||
DefUpdate def;
|
DefUpdate def;
|
||||||
std::vector<QueryableLocation> uses;
|
std::vector<QueryableRange> uses;
|
||||||
|
|
||||||
QueryableVarDef() : def("") {} // For serialization.
|
QueryableVarDef() : def("") {} // For serialization.
|
||||||
QueryableVarDef(IdCache& id_cache, const IndexedVarDef& indexed);
|
QueryableVarDef(IdCache& id_cache, const IndexedVarDef& indexed);
|
||||||
|
@ -35,19 +35,25 @@ void ReflectMember(Writer& visitor, const char* name, std::string& value) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Location
|
// Position
|
||||||
void Reflect(Reader& visitor, Location& value) {
|
void Reflect(Reader& visitor, Position& value) {
|
||||||
value = Location(visitor.GetString());
|
value = Position(visitor.GetString());
|
||||||
}
|
}
|
||||||
void Reflect(Writer& visitor, Location& value) {
|
void Reflect(Writer& visitor, Position& value) {
|
||||||
// We only ever want to emit id=1 files.
|
|
||||||
assert(value.raw_file_id == 1);
|
|
||||||
|
|
||||||
std::string output = value.ToString();
|
std::string output = value.ToString();
|
||||||
visitor.String(output.c_str(), output.size());
|
visitor.String(output.c_str(), output.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Range
|
||||||
|
void Reflect(Reader& visitor, Range& value) {
|
||||||
|
value = Range(visitor.GetString());
|
||||||
|
}
|
||||||
|
void Reflect(Writer& visitor, Range& value) {
|
||||||
|
std::string output = value.ToString();
|
||||||
|
visitor.String(output.c_str(), output.size());
|
||||||
|
}
|
||||||
|
|
||||||
// Id<T>
|
// Id<T>
|
||||||
template<typename T>
|
template<typename T>
|
||||||
void Reflect(Reader& visitor, Id<T>& id) {
|
void Reflect(Reader& visitor, Id<T>& id) {
|
||||||
@ -66,7 +72,7 @@ void Reflect(Reader& visitor, Ref<IndexedFuncDef>& value) {
|
|||||||
const char* loc_string = strchr(str_value, '@') + 1;
|
const char* loc_string = strchr(str_value, '@') + 1;
|
||||||
|
|
||||||
value.id = Id<IndexedFuncDef>(id);
|
value.id = Id<IndexedFuncDef>(id);
|
||||||
value.loc = Location(loc_string);
|
value.loc = Range(loc_string);
|
||||||
}
|
}
|
||||||
void Reflect(Writer& visitor, Ref<IndexedFuncDef>& value) {
|
void Reflect(Writer& visitor, Ref<IndexedFuncDef>& value) {
|
||||||
std::string s = std::to_string(value.id.id) + "@" + value.loc.ToString();
|
std::string s = std::to_string(value.id.id) + "@" + value.loc.ToString();
|
||||||
@ -105,7 +111,9 @@ void Reflect(TVisitor& visitor, IndexedTypeDef& value) {
|
|||||||
REFLECT_MEMBER2("usr", value.def.usr);
|
REFLECT_MEMBER2("usr", value.def.usr);
|
||||||
REFLECT_MEMBER2("short_name", value.def.short_name);
|
REFLECT_MEMBER2("short_name", value.def.short_name);
|
||||||
REFLECT_MEMBER2("qualified_name", value.def.qualified_name);
|
REFLECT_MEMBER2("qualified_name", value.def.qualified_name);
|
||||||
REFLECT_MEMBER2("definition", value.def.definition);
|
REFLECT_MEMBER2("definition", value.def.definition_spelling);
|
||||||
|
//REFLECT_MEMBER2("definition_spelling", value.def.definition_spelling);
|
||||||
|
//REFLECT_MEMBER2("definition_extent", value.def.definition_extent);
|
||||||
REFLECT_MEMBER2("alias_of", value.def.alias_of);
|
REFLECT_MEMBER2("alias_of", value.def.alias_of);
|
||||||
REFLECT_MEMBER2("parents", value.def.parents);
|
REFLECT_MEMBER2("parents", value.def.parents);
|
||||||
REFLECT_MEMBER2("derived", value.derived);
|
REFLECT_MEMBER2("derived", value.derived);
|
||||||
@ -141,7 +149,9 @@ void Reflect(TVisitor& visitor, IndexedFuncDef& value) {
|
|||||||
REFLECT_MEMBER2("short_name", value.def.short_name);
|
REFLECT_MEMBER2("short_name", value.def.short_name);
|
||||||
REFLECT_MEMBER2("qualified_name", value.def.qualified_name);
|
REFLECT_MEMBER2("qualified_name", value.def.qualified_name);
|
||||||
REFLECT_MEMBER2("declarations", value.declarations);
|
REFLECT_MEMBER2("declarations", value.declarations);
|
||||||
REFLECT_MEMBER2("definition", value.def.definition);
|
REFLECT_MEMBER2("definition", value.def.definition_spelling);
|
||||||
|
//REFLECT_MEMBER2("definition_spelling", value.def.definition_spelling);
|
||||||
|
//REFLECT_MEMBER2("definition_extent", value.def.definition_extent);
|
||||||
REFLECT_MEMBER2("declaring_type", value.def.declaring_type);
|
REFLECT_MEMBER2("declaring_type", value.def.declaring_type);
|
||||||
REFLECT_MEMBER2("base", value.def.base);
|
REFLECT_MEMBER2("base", value.def.base);
|
||||||
REFLECT_MEMBER2("derived", value.derived);
|
REFLECT_MEMBER2("derived", value.derived);
|
||||||
@ -176,7 +186,9 @@ void Reflect(TVisitor& visitor, IndexedVarDef& value) {
|
|||||||
REFLECT_MEMBER2("short_name", value.def.short_name);
|
REFLECT_MEMBER2("short_name", value.def.short_name);
|
||||||
REFLECT_MEMBER2("qualified_name", value.def.qualified_name);
|
REFLECT_MEMBER2("qualified_name", value.def.qualified_name);
|
||||||
REFLECT_MEMBER2("declaration", value.def.declaration);
|
REFLECT_MEMBER2("declaration", value.def.declaration);
|
||||||
REFLECT_MEMBER2("definition", value.def.definition);
|
REFLECT_MEMBER2("definition", value.def.definition_spelling);
|
||||||
|
//REFLECT_MEMBER2("definition_spelling", value.def.definition_spelling);
|
||||||
|
//REFLECT_MEMBER2("definition_extent", value.def.definition_extent);
|
||||||
REFLECT_MEMBER2("variable_type", value.def.variable_type);
|
REFLECT_MEMBER2("variable_type", value.def.variable_type);
|
||||||
REFLECT_MEMBER2("declaring_type", value.def.declaring_type);
|
REFLECT_MEMBER2("declaring_type", value.def.declaring_type);
|
||||||
REFLECT_MEMBER2("uses", value.uses);
|
REFLECT_MEMBER2("uses", value.uses);
|
||||||
|
@ -109,7 +109,7 @@ void RunTests() {
|
|||||||
//if (path != "tests/templates/namespace_template_class_template_func_usage_folded_into_one.cc") continue;
|
//if (path != "tests/templates/namespace_template_class_template_func_usage_folded_into_one.cc") continue;
|
||||||
//if (path != "tests/multi_file/header.h") continue;
|
//if (path != "tests/multi_file/header.h") continue;
|
||||||
//if (path != "tests/multi_file/impl.cc") continue;
|
//if (path != "tests/multi_file/impl.cc") continue;
|
||||||
//if (path != "tests/inheritance/class_inherit_templated_parent.cc") continue;
|
//if (path != "tests/constructors/constructor.cc") continue;
|
||||||
//if (path != "tests/templates/implicit_variable_instantiation.cc") continue;
|
//if (path != "tests/templates/implicit_variable_instantiation.cc") continue;
|
||||||
//if (path != "tests/_empty_test.cc") continue;
|
//if (path != "tests/_empty_test.cc") continue;
|
||||||
|
|
||||||
|
@ -11,8 +11,8 @@ OUTPUT:
|
|||||||
"usr": "c:@S@Foo",
|
"usr": "c:@S@Foo",
|
||||||
"short_name": "Foo",
|
"short_name": "Foo",
|
||||||
"qualified_name": "Foo",
|
"qualified_name": "Foo",
|
||||||
"definition": "1:3:7",
|
"definition": "3:7",
|
||||||
"uses": ["1:1:7", "1:2:7", "*1:3:7", "1:4:7"]
|
"uses": ["1:7", "2:7", "*3:7", "4:7"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -16,45 +16,45 @@ OUTPUT:
|
|||||||
"usr": "c:@S@Foo",
|
"usr": "c:@S@Foo",
|
||||||
"short_name": "Foo",
|
"short_name": "Foo",
|
||||||
"qualified_name": "Foo",
|
"qualified_name": "Foo",
|
||||||
"definition": "1:1:7",
|
"definition": "1:7",
|
||||||
"funcs": [0],
|
"funcs": [0],
|
||||||
"instantiations": [0, 1],
|
"instantiations": [0, 1],
|
||||||
"uses": ["*1:1:7", "1:3:3", "*1:7:3", "*1:8:3", "*1:8:17"]
|
"uses": ["*1:7", "3:3", "*7:3", "*8:3", "*8:17"]
|
||||||
}],
|
}],
|
||||||
"funcs": [{
|
"funcs": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@S@Foo@F@Foo#",
|
"usr": "c:@S@Foo@F@Foo#",
|
||||||
"short_name": "Foo",
|
"short_name": "Foo",
|
||||||
"qualified_name": "Foo::Foo",
|
"qualified_name": "Foo::Foo",
|
||||||
"definition": "1:3:3",
|
"definition": "3:3",
|
||||||
"declaring_type": 0,
|
"declaring_type": 0,
|
||||||
"callers": ["1@1:7:7", "1@1:8:17"],
|
"callers": ["1@7:7", "1@8:17"],
|
||||||
"uses": ["1:3:3", "1:7:7", "1:8:17"]
|
"uses": ["3:3", "7:7", "8:17"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@F@foo#",
|
"usr": "c:@F@foo#",
|
||||||
"short_name": "foo",
|
"short_name": "foo",
|
||||||
"qualified_name": "foo",
|
"qualified_name": "foo",
|
||||||
"definition": "1:6:6",
|
"definition": "6:6",
|
||||||
"callees": ["0@1:7:7", "0@1:8:17"],
|
"callees": ["0@7:7", "0@8:17"],
|
||||||
"uses": ["1:6:6"]
|
"uses": ["6:6"]
|
||||||
}],
|
}],
|
||||||
"vars": [{
|
"vars": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:constructor.cc@56@F@foo#@f",
|
"usr": "c:constructor.cc@56@F@foo#@f",
|
||||||
"short_name": "f",
|
"short_name": "f",
|
||||||
"qualified_name": "f",
|
"qualified_name": "f",
|
||||||
"definition": "1:7:7",
|
"definition": "7:7",
|
||||||
"variable_type": 0,
|
"variable_type": 0,
|
||||||
"uses": ["1:7:7"]
|
"uses": ["7:7"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:constructor.cc@66@F@foo#@f2",
|
"usr": "c:constructor.cc@66@F@foo#@f2",
|
||||||
"short_name": "f2",
|
"short_name": "f2",
|
||||||
"qualified_name": "f2",
|
"qualified_name": "f2",
|
||||||
"definition": "1:8:8",
|
"definition": "8:8",
|
||||||
"variable_type": 0,
|
"variable_type": 0,
|
||||||
"uses": ["1:8:8"]
|
"uses": ["8:8"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -21,45 +21,45 @@ OUTPUT:
|
|||||||
"usr": "c:@S@Foo",
|
"usr": "c:@S@Foo",
|
||||||
"short_name": "Foo",
|
"short_name": "Foo",
|
||||||
"qualified_name": "Foo",
|
"qualified_name": "Foo",
|
||||||
"definition": "1:1:7",
|
"definition": "1:7",
|
||||||
"funcs": [0, 1],
|
"funcs": [0, 1],
|
||||||
"instantiations": [0],
|
"instantiations": [0],
|
||||||
"uses": ["*1:1:7", "1:3:3", "1:4:3", "*1:8:3"]
|
"uses": ["*1:7", "3:3", "4:3", "*8:3"]
|
||||||
}],
|
}],
|
||||||
"funcs": [{
|
"funcs": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@S@Foo@F@Foo#",
|
"usr": "c:@S@Foo@F@Foo#",
|
||||||
"short_name": "Foo",
|
"short_name": "Foo",
|
||||||
"qualified_name": "Foo::Foo",
|
"qualified_name": "Foo::Foo",
|
||||||
"definition": "1:3:3",
|
"definition": "3:3",
|
||||||
"declaring_type": 0,
|
"declaring_type": 0,
|
||||||
"callers": ["2@1:8:7"],
|
"callers": ["2@8:7"],
|
||||||
"uses": ["1:3:3", "1:8:7"]
|
"uses": ["3:3", "8:7"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@S@Foo@F@~Foo#",
|
"usr": "c:@S@Foo@F@~Foo#",
|
||||||
"short_name": "~Foo",
|
"short_name": "~Foo",
|
||||||
"qualified_name": "Foo::~Foo",
|
"qualified_name": "Foo::~Foo",
|
||||||
"definition": "1:4:3",
|
"definition": "4:3",
|
||||||
"declaring_type": 0,
|
"declaring_type": 0,
|
||||||
"uses": ["1:4:3"]
|
"uses": ["4:3"]
|
||||||
}, {
|
}, {
|
||||||
"id": 2,
|
"id": 2,
|
||||||
"usr": "c:@F@foo#",
|
"usr": "c:@F@foo#",
|
||||||
"short_name": "foo",
|
"short_name": "foo",
|
||||||
"qualified_name": "foo",
|
"qualified_name": "foo",
|
||||||
"definition": "1:7:6",
|
"definition": "7:6",
|
||||||
"callees": ["0@1:8:7"],
|
"callees": ["0@8:7"],
|
||||||
"uses": ["1:7:6"]
|
"uses": ["7:6"]
|
||||||
}],
|
}],
|
||||||
"vars": [{
|
"vars": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:destructor.cc@70@F@foo#@f",
|
"usr": "c:destructor.cc@70@F@foo#@f",
|
||||||
"short_name": "f",
|
"short_name": "f",
|
||||||
"qualified_name": "f",
|
"qualified_name": "f",
|
||||||
"definition": "1:8:7",
|
"definition": "8:7",
|
||||||
"variable_type": 0,
|
"variable_type": 0,
|
||||||
"uses": ["1:8:7"]
|
"uses": ["8:7"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -11,18 +11,18 @@ OUTPUT:
|
|||||||
"usr": "c:@S@Foo",
|
"usr": "c:@S@Foo",
|
||||||
"short_name": "Foo",
|
"short_name": "Foo",
|
||||||
"qualified_name": "Foo",
|
"qualified_name": "Foo",
|
||||||
"definition": "1:1:8",
|
"definition": "1:8",
|
||||||
"funcs": [0],
|
"funcs": [0],
|
||||||
"uses": ["*1:1:8", "1:4:6", "1:4:1"]
|
"uses": ["*1:8", "4:6", "4:1"]
|
||||||
}],
|
}],
|
||||||
"funcs": [{
|
"funcs": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@S@Foo@FT@>1#TFoo#v#",
|
"usr": "c:@S@Foo@FT@>1#TFoo#v#",
|
||||||
"short_name": "Foo",
|
"short_name": "Foo",
|
||||||
"qualified_name": "Foo::Foo",
|
"qualified_name": "Foo::Foo",
|
||||||
"definition": "1:4:6",
|
"definition": "4:6",
|
||||||
"declaring_type": 0,
|
"declaring_type": 0,
|
||||||
"uses": ["1:4:6"]
|
"uses": ["4:6"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -13,8 +13,8 @@ OUTPUT:
|
|||||||
"usr": "c:@S@Foo",
|
"usr": "c:@S@Foo",
|
||||||
"short_name": "Foo",
|
"short_name": "Foo",
|
||||||
"qualified_name": "Foo",
|
"qualified_name": "Foo",
|
||||||
"definition": "1:3:7",
|
"definition": "3:7",
|
||||||
"uses": ["1:1:7", "1:2:7", "*1:3:7", "1:4:7"]
|
"uses": ["1:7", "2:7", "*3:7", "4:7"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -10,18 +10,18 @@ OUTPUT:
|
|||||||
"usr": "c:@S@Foo",
|
"usr": "c:@S@Foo",
|
||||||
"short_name": "Foo",
|
"short_name": "Foo",
|
||||||
"qualified_name": "Foo",
|
"qualified_name": "Foo",
|
||||||
"definition": "1:1:7",
|
"definition": "1:7",
|
||||||
"vars": [0],
|
"vars": [0],
|
||||||
"uses": ["*1:1:7"]
|
"uses": ["*1:7"]
|
||||||
}],
|
}],
|
||||||
"vars": [{
|
"vars": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@S@Foo@FI@foo",
|
"usr": "c:@S@Foo@FI@foo",
|
||||||
"short_name": "foo",
|
"short_name": "foo",
|
||||||
"qualified_name": "Foo::foo",
|
"qualified_name": "Foo::foo",
|
||||||
"definition": "1:2:7",
|
"definition": "2:7",
|
||||||
"declaring_type": 0,
|
"declaring_type": 0,
|
||||||
"uses": ["1:2:7"]
|
"uses": ["2:7"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -12,19 +12,19 @@ OUTPUT:
|
|||||||
"usr": "c:@S@Foo",
|
"usr": "c:@S@Foo",
|
||||||
"short_name": "Foo",
|
"short_name": "Foo",
|
||||||
"qualified_name": "Foo",
|
"qualified_name": "Foo",
|
||||||
"definition": "1:1:7",
|
"definition": "1:7",
|
||||||
"vars": [0],
|
"vars": [0],
|
||||||
"uses": ["*1:1:7", "1:5:5"]
|
"uses": ["*1:7", "5:5"]
|
||||||
}],
|
}],
|
||||||
"vars": [{
|
"vars": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@S@Foo@foo",
|
"usr": "c:@S@Foo@foo",
|
||||||
"short_name": "foo",
|
"short_name": "foo",
|
||||||
"qualified_name": "Foo::foo",
|
"qualified_name": "Foo::foo",
|
||||||
"declaration": "1:2:14",
|
"declaration": "2:14",
|
||||||
"definition": "1:5:10",
|
"definition": "5:10",
|
||||||
"declaring_type": 0,
|
"declaring_type": 0,
|
||||||
"uses": ["1:2:14", "1:5:10"]
|
"uses": ["2:14", "5:10"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -12,9 +12,9 @@ OUTPUT:
|
|||||||
"usr": "c:@F@foo#",
|
"usr": "c:@F@foo#",
|
||||||
"short_name": "foo",
|
"short_name": "foo",
|
||||||
"qualified_name": "foo",
|
"qualified_name": "foo",
|
||||||
"declarations": ["1:1:6", "1:2:6", "1:4:6"],
|
"declarations": ["1:6", "2:6", "4:6"],
|
||||||
"definition": "1:3:6",
|
"definition": "3:6",
|
||||||
"uses": ["1:1:6", "1:2:6", "1:3:6", "1:4:6"]
|
"uses": ["1:6", "2:6", "3:6", "4:6"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -14,35 +14,35 @@ OUTPUT:
|
|||||||
"usr": "c:@S@Foo",
|
"usr": "c:@S@Foo",
|
||||||
"short_name": "Foo",
|
"short_name": "Foo",
|
||||||
"qualified_name": "Foo",
|
"qualified_name": "Foo",
|
||||||
"definition": "1:1:7",
|
"definition": "1:7",
|
||||||
"funcs": [0, 1, 2],
|
"funcs": [0, 1, 2],
|
||||||
"uses": ["*1:1:7", "1:7:6"]
|
"uses": ["*1:7", "7:6"]
|
||||||
}],
|
}],
|
||||||
"funcs": [{
|
"funcs": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@S@Foo@F@declonly#",
|
"usr": "c:@S@Foo@F@declonly#",
|
||||||
"short_name": "declonly",
|
"short_name": "declonly",
|
||||||
"qualified_name": "Foo::declonly",
|
"qualified_name": "Foo::declonly",
|
||||||
"declarations": ["1:2:8"],
|
"declarations": ["2:8"],
|
||||||
"declaring_type": 0,
|
"declaring_type": 0,
|
||||||
"uses": ["1:2:8"]
|
"uses": ["2:8"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@S@Foo@F@purevirtual#",
|
"usr": "c:@S@Foo@F@purevirtual#",
|
||||||
"short_name": "purevirtual",
|
"short_name": "purevirtual",
|
||||||
"qualified_name": "Foo::purevirtual",
|
"qualified_name": "Foo::purevirtual",
|
||||||
"declarations": ["1:3:16"],
|
"declarations": ["3:16"],
|
||||||
"declaring_type": 0,
|
"declaring_type": 0,
|
||||||
"uses": ["1:3:16"]
|
"uses": ["3:16"]
|
||||||
}, {
|
}, {
|
||||||
"id": 2,
|
"id": 2,
|
||||||
"usr": "c:@S@Foo@F@def#",
|
"usr": "c:@S@Foo@F@def#",
|
||||||
"short_name": "def",
|
"short_name": "def",
|
||||||
"qualified_name": "Foo::def",
|
"qualified_name": "Foo::def",
|
||||||
"declarations": ["1:4:8"],
|
"declarations": ["4:8"],
|
||||||
"definition": "1:7:11",
|
"definition": "7:11",
|
||||||
"declaring_type": 0,
|
"declaring_type": 0,
|
||||||
"uses": ["1:4:8", "1:7:11"]
|
"uses": ["4:8", "7:11"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -11,28 +11,28 @@ OUTPUT:
|
|||||||
"usr": "c:@E@Foo",
|
"usr": "c:@E@Foo",
|
||||||
"short_name": "Foo",
|
"short_name": "Foo",
|
||||||
"qualified_name": "Foo",
|
"qualified_name": "Foo",
|
||||||
"definition": "1:1:12",
|
"definition": "1:12",
|
||||||
"vars": [0, 1],
|
"vars": [0, 1],
|
||||||
"uses": ["*1:1:12"]
|
"uses": ["*1:12"]
|
||||||
}],
|
}],
|
||||||
"vars": [{
|
"vars": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@E@Foo@A",
|
"usr": "c:@E@Foo@A",
|
||||||
"short_name": "A",
|
"short_name": "A",
|
||||||
"qualified_name": "Foo::A",
|
"qualified_name": "Foo::A",
|
||||||
"definition": "1:2:3",
|
"definition": "2:3",
|
||||||
"variable_type": 0,
|
"variable_type": 0,
|
||||||
"declaring_type": 0,
|
"declaring_type": 0,
|
||||||
"uses": ["1:2:3"]
|
"uses": ["2:3"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@E@Foo@B",
|
"usr": "c:@E@Foo@B",
|
||||||
"short_name": "B",
|
"short_name": "B",
|
||||||
"qualified_name": "Foo::B",
|
"qualified_name": "Foo::B",
|
||||||
"definition": "1:3:3",
|
"definition": "3:3",
|
||||||
"variable_type": 0,
|
"variable_type": 0,
|
||||||
"declaring_type": 0,
|
"declaring_type": 0,
|
||||||
"uses": ["1:3:3"]
|
"uses": ["3:3"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -11,28 +11,28 @@ OUTPUT:
|
|||||||
"usr": "c:@E@Foo",
|
"usr": "c:@E@Foo",
|
||||||
"short_name": "Foo",
|
"short_name": "Foo",
|
||||||
"qualified_name": "Foo",
|
"qualified_name": "Foo",
|
||||||
"definition": "1:1:6",
|
"definition": "1:6",
|
||||||
"vars": [0, 1],
|
"vars": [0, 1],
|
||||||
"uses": ["*1:1:6"]
|
"uses": ["*1:6"]
|
||||||
}],
|
}],
|
||||||
"vars": [{
|
"vars": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@E@Foo@A",
|
"usr": "c:@E@Foo@A",
|
||||||
"short_name": "A",
|
"short_name": "A",
|
||||||
"qualified_name": "Foo::A",
|
"qualified_name": "Foo::A",
|
||||||
"definition": "1:2:3",
|
"definition": "2:3",
|
||||||
"variable_type": 0,
|
"variable_type": 0,
|
||||||
"declaring_type": 0,
|
"declaring_type": 0,
|
||||||
"uses": ["1:2:3"]
|
"uses": ["2:3"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@E@Foo@B",
|
"usr": "c:@E@Foo@B",
|
||||||
"short_name": "B",
|
"short_name": "B",
|
||||||
"qualified_name": "Foo::B",
|
"qualified_name": "Foo::B",
|
||||||
"definition": "1:3:3",
|
"definition": "3:3",
|
||||||
"variable_type": 0,
|
"variable_type": 0,
|
||||||
"declaring_type": 0,
|
"declaring_type": 0,
|
||||||
"uses": ["1:3:3"]
|
"uses": ["3:3"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -11,28 +11,28 @@ OUTPUT:
|
|||||||
"usr": "c:@E@Foo",
|
"usr": "c:@E@Foo",
|
||||||
"short_name": "Foo",
|
"short_name": "Foo",
|
||||||
"qualified_name": "Foo",
|
"qualified_name": "Foo",
|
||||||
"definition": "1:1:6",
|
"definition": "1:6",
|
||||||
"vars": [0, 1],
|
"vars": [0, 1],
|
||||||
"uses": ["*1:1:6"]
|
"uses": ["*1:6"]
|
||||||
}],
|
}],
|
||||||
"vars": [{
|
"vars": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@E@Foo@A",
|
"usr": "c:@E@Foo@A",
|
||||||
"short_name": "A",
|
"short_name": "A",
|
||||||
"qualified_name": "Foo::A",
|
"qualified_name": "Foo::A",
|
||||||
"definition": "1:2:3",
|
"definition": "2:3",
|
||||||
"variable_type": 0,
|
"variable_type": 0,
|
||||||
"declaring_type": 0,
|
"declaring_type": 0,
|
||||||
"uses": ["1:2:3"]
|
"uses": ["2:3"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@E@Foo@B",
|
"usr": "c:@E@Foo@B",
|
||||||
"short_name": "B",
|
"short_name": "B",
|
||||||
"qualified_name": "Foo::B",
|
"qualified_name": "Foo::B",
|
||||||
"definition": "1:3:3",
|
"definition": "3:3",
|
||||||
"variable_type": 0,
|
"variable_type": 0,
|
||||||
"declaring_type": 0,
|
"declaring_type": 0,
|
||||||
"uses": ["1:3:3"]
|
"uses": ["3:3"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -13,37 +13,37 @@ OUTPUT:
|
|||||||
"usr": "c:@E@Foo",
|
"usr": "c:@E@Foo",
|
||||||
"short_name": "Foo",
|
"short_name": "Foo",
|
||||||
"qualified_name": "Foo",
|
"qualified_name": "Foo",
|
||||||
"definition": "1:1:12",
|
"definition": "1:12",
|
||||||
"vars": [0, 1],
|
"vars": [0, 1],
|
||||||
"instantiations": [2],
|
"instantiations": [2],
|
||||||
"uses": ["*1:1:12", "*1:6:1", "1:6:9"]
|
"uses": ["*1:12", "*6:1", "6:9"]
|
||||||
}],
|
}],
|
||||||
"vars": [{
|
"vars": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@E@Foo@A",
|
"usr": "c:@E@Foo@A",
|
||||||
"short_name": "A",
|
"short_name": "A",
|
||||||
"qualified_name": "Foo::A",
|
"qualified_name": "Foo::A",
|
||||||
"definition": "1:2:3",
|
"definition": "2:3",
|
||||||
"variable_type": 0,
|
"variable_type": 0,
|
||||||
"declaring_type": 0,
|
"declaring_type": 0,
|
||||||
"uses": ["1:2:3", "1:6:14"]
|
"uses": ["2:3", "6:14"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@E@Foo@B",
|
"usr": "c:@E@Foo@B",
|
||||||
"short_name": "B",
|
"short_name": "B",
|
||||||
"qualified_name": "Foo::B",
|
"qualified_name": "Foo::B",
|
||||||
"definition": "1:3:3",
|
"definition": "3:3",
|
||||||
"variable_type": 0,
|
"variable_type": 0,
|
||||||
"declaring_type": 0,
|
"declaring_type": 0,
|
||||||
"uses": ["1:3:3"]
|
"uses": ["3:3"]
|
||||||
}, {
|
}, {
|
||||||
"id": 2,
|
"id": 2,
|
||||||
"usr": "c:@x",
|
"usr": "c:@x",
|
||||||
"short_name": "x",
|
"short_name": "x",
|
||||||
"qualified_name": "x",
|
"qualified_name": "x",
|
||||||
"definition": "1:6:5",
|
"definition": "6:5",
|
||||||
"variable_type": 0,
|
"variable_type": 0,
|
||||||
"uses": ["1:6:5"]
|
"uses": ["6:5"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -16,48 +16,48 @@ OUTPUT:
|
|||||||
"usr": "c:@E@A",
|
"usr": "c:@E@A",
|
||||||
"short_name": "A",
|
"short_name": "A",
|
||||||
"qualified_name": "A",
|
"qualified_name": "A",
|
||||||
"definition": "1:1:6",
|
"definition": "1:6",
|
||||||
"uses": ["*1:1:6", "*1:9:5"]
|
"uses": ["*1:6", "*9:5"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@E@B",
|
"usr": "c:@E@B",
|
||||||
"short_name": "B",
|
"short_name": "B",
|
||||||
"qualified_name": "B",
|
"qualified_name": "B",
|
||||||
"definition": "1:2:6",
|
"definition": "2:6",
|
||||||
"uses": ["*1:2:6", "*1:10:5"]
|
"uses": ["*2:6", "*10:5"]
|
||||||
}, {
|
}, {
|
||||||
"id": 2,
|
"id": 2,
|
||||||
"usr": "c:@ST>1#T@Foo",
|
"usr": "c:@ST>1#T@Foo",
|
||||||
"short_name": "Foo",
|
"short_name": "Foo",
|
||||||
"qualified_name": "Foo",
|
"qualified_name": "Foo",
|
||||||
"definition": "1:5:8",
|
"definition": "5:8",
|
||||||
"instantiations": [1],
|
"instantiations": [1],
|
||||||
"uses": ["*1:5:8", "*1:9:1", "*1:10:1"]
|
"uses": ["*5:8", "*9:1", "*10:1"]
|
||||||
}, {
|
}, {
|
||||||
"id": 3,
|
"id": 3,
|
||||||
"usr": "c:@ST>1#T@Foo@S@Inner",
|
"usr": "c:@ST>1#T@Foo@S@Inner",
|
||||||
"short_name": "Inner",
|
"short_name": "Inner",
|
||||||
"qualified_name": "Foo::Inner",
|
"qualified_name": "Foo::Inner",
|
||||||
"definition": "1:6:10",
|
"definition": "6:10",
|
||||||
"instantiations": [0],
|
"instantiations": [0],
|
||||||
"uses": ["*1:6:10", "*1:9:9"]
|
"uses": ["*6:10", "*9:9"]
|
||||||
}],
|
}],
|
||||||
"vars": [{
|
"vars": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@a",
|
"usr": "c:@a",
|
||||||
"short_name": "a",
|
"short_name": "a",
|
||||||
"qualified_name": "a",
|
"qualified_name": "a",
|
||||||
"definition": "1:9:15",
|
"definition": "9:15",
|
||||||
"variable_type": 3,
|
"variable_type": 3,
|
||||||
"uses": ["1:9:15"]
|
"uses": ["9:15"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@b",
|
"usr": "c:@b",
|
||||||
"short_name": "b",
|
"short_name": "b",
|
||||||
"qualified_name": "b",
|
"qualified_name": "b",
|
||||||
"definition": "1:10:8",
|
"definition": "10:8",
|
||||||
"variable_type": 2,
|
"variable_type": 2,
|
||||||
"uses": ["1:10:8"]
|
"uses": ["10:8"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8,8 +8,8 @@ OUTPUT:
|
|||||||
"usr": "c:@F@foo#I#I#",
|
"usr": "c:@F@foo#I#I#",
|
||||||
"short_name": "foo",
|
"short_name": "foo",
|
||||||
"qualified_name": "foo",
|
"qualified_name": "foo",
|
||||||
"declarations": ["1:1:6"],
|
"declarations": ["1:6"],
|
||||||
"uses": ["1:1:6"]
|
"uses": ["1:6"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -10,9 +10,9 @@ OUTPUT:
|
|||||||
"usr": "c:@F@foo#",
|
"usr": "c:@F@foo#",
|
||||||
"short_name": "foo",
|
"short_name": "foo",
|
||||||
"qualified_name": "foo",
|
"qualified_name": "foo",
|
||||||
"declarations": ["1:1:6"],
|
"declarations": ["1:6"],
|
||||||
"definition": "1:3:6",
|
"definition": "3:6",
|
||||||
"uses": ["1:1:6", "1:3:6"]
|
"uses": ["1:6", "3:6"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -8,8 +8,8 @@ OUTPUT:
|
|||||||
"usr": "c:@F@foo#",
|
"usr": "c:@F@foo#",
|
||||||
"short_name": "foo",
|
"short_name": "foo",
|
||||||
"qualified_name": "foo",
|
"qualified_name": "foo",
|
||||||
"definition": "1:1:6",
|
"definition": "1:6",
|
||||||
"uses": ["1:1:6"]
|
"uses": ["1:6"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -9,17 +9,17 @@ OUTPUT:
|
|||||||
"usr": "c:@S@Parent",
|
"usr": "c:@S@Parent",
|
||||||
"short_name": "Parent",
|
"short_name": "Parent",
|
||||||
"qualified_name": "Parent",
|
"qualified_name": "Parent",
|
||||||
"definition": "1:1:7",
|
"definition": "1:7",
|
||||||
"derived": [1],
|
"derived": [1],
|
||||||
"uses": ["*1:1:7", "*1:2:24"]
|
"uses": ["*1:7", "*2:24"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@S@Derived",
|
"usr": "c:@S@Derived",
|
||||||
"short_name": "Derived",
|
"short_name": "Derived",
|
||||||
"qualified_name": "Derived",
|
"qualified_name": "Derived",
|
||||||
"definition": "1:2:7",
|
"definition": "2:7",
|
||||||
"parents": [0],
|
"parents": [0],
|
||||||
"uses": ["*1:2:7"]
|
"uses": ["*2:7"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -20,47 +20,47 @@ OUTPUT:
|
|||||||
"usr": "c:@ST>1#Ni@Base1",
|
"usr": "c:@ST>1#Ni@Base1",
|
||||||
"short_name": "Base1",
|
"short_name": "Base1",
|
||||||
"qualified_name": "Base1",
|
"qualified_name": "Base1",
|
||||||
"definition": "1:2:7",
|
"definition": "2:7",
|
||||||
"derived": [2, 5],
|
"derived": [2, 5],
|
||||||
"uses": ["*1:2:7", "*1:8:18", "*1:13:17"]
|
"uses": ["*2:7", "*8:18", "*13:17"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@ST>1#T@Base2",
|
"usr": "c:@ST>1#T@Base2",
|
||||||
"short_name": "Base2",
|
"short_name": "Base2",
|
||||||
"qualified_name": "Base2",
|
"qualified_name": "Base2",
|
||||||
"definition": "1:5:7",
|
"definition": "5:7",
|
||||||
"derived": [3, 5],
|
"derived": [3, 5],
|
||||||
"uses": ["*1:5:7", "*1:11:18", "*1:13:27"]
|
"uses": ["*5:7", "*11:18", "*13:27"]
|
||||||
}, {
|
}, {
|
||||||
"id": 2,
|
"id": 2,
|
||||||
"usr": "c:@ST>1#Ni@Derived1",
|
"usr": "c:@ST>1#Ni@Derived1",
|
||||||
"short_name": "Derived1",
|
"short_name": "Derived1",
|
||||||
"qualified_name": "Derived1",
|
"qualified_name": "Derived1",
|
||||||
"definition": "1:8:7",
|
"definition": "8:7",
|
||||||
"parents": [0],
|
"parents": [0],
|
||||||
"derived": [5],
|
"derived": [5],
|
||||||
"uses": ["*1:8:7", "*1:13:43"]
|
"uses": ["*8:7", "*13:43"]
|
||||||
}, {
|
}, {
|
||||||
"id": 3,
|
"id": 3,
|
||||||
"usr": "c:@ST>1#T@Derived2",
|
"usr": "c:@ST>1#T@Derived2",
|
||||||
"short_name": "Derived2",
|
"short_name": "Derived2",
|
||||||
"qualified_name": "Derived2",
|
"qualified_name": "Derived2",
|
||||||
"definition": "1:11:7",
|
"definition": "11:7",
|
||||||
"parents": [1],
|
"parents": [1],
|
||||||
"derived": [5],
|
"derived": [5],
|
||||||
"uses": ["*1:11:7", "*1:13:56"]
|
"uses": ["*11:7", "*13:56"]
|
||||||
}, {
|
}, {
|
||||||
"id": 4,
|
"id": 4,
|
||||||
"usr": "c:class_inherit_templated_parent.cc@154",
|
"usr": "c:class_inherit_templated_parent.cc@154",
|
||||||
"uses": ["*1:11:24"]
|
"uses": ["*11:24"]
|
||||||
}, {
|
}, {
|
||||||
"id": 5,
|
"id": 5,
|
||||||
"usr": "c:@S@Derived",
|
"usr": "c:@S@Derived",
|
||||||
"short_name": "Derived",
|
"short_name": "Derived",
|
||||||
"qualified_name": "Derived",
|
"qualified_name": "Derived",
|
||||||
"definition": "1:13:7",
|
"definition": "13:7",
|
||||||
"parents": [0, 1, 2, 3],
|
"parents": [0, 1, 2, 3],
|
||||||
"uses": ["*1:13:7", "*1:13:33", "*1:13:65"]
|
"uses": ["*13:7", "*13:33", "*13:65"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -11,35 +11,35 @@ OUTPUT:
|
|||||||
"usr": "c:@S@Root",
|
"usr": "c:@S@Root",
|
||||||
"short_name": "Root",
|
"short_name": "Root",
|
||||||
"qualified_name": "Root",
|
"qualified_name": "Root",
|
||||||
"definition": "1:1:7",
|
"definition": "1:7",
|
||||||
"derived": [1, 2],
|
"derived": [1, 2],
|
||||||
"uses": ["*1:1:7", "*1:2:24", "*1:3:24"]
|
"uses": ["*1:7", "*2:24", "*3:24"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@S@MiddleA",
|
"usr": "c:@S@MiddleA",
|
||||||
"short_name": "MiddleA",
|
"short_name": "MiddleA",
|
||||||
"qualified_name": "MiddleA",
|
"qualified_name": "MiddleA",
|
||||||
"definition": "1:2:7",
|
"definition": "2:7",
|
||||||
"parents": [0],
|
"parents": [0],
|
||||||
"derived": [3],
|
"derived": [3],
|
||||||
"uses": ["*1:2:7", "*1:4:24"]
|
"uses": ["*2:7", "*4:24"]
|
||||||
}, {
|
}, {
|
||||||
"id": 2,
|
"id": 2,
|
||||||
"usr": "c:@S@MiddleB",
|
"usr": "c:@S@MiddleB",
|
||||||
"short_name": "MiddleB",
|
"short_name": "MiddleB",
|
||||||
"qualified_name": "MiddleB",
|
"qualified_name": "MiddleB",
|
||||||
"definition": "1:3:7",
|
"definition": "3:7",
|
||||||
"parents": [0],
|
"parents": [0],
|
||||||
"derived": [3],
|
"derived": [3],
|
||||||
"uses": ["*1:3:7", "*1:4:40"]
|
"uses": ["*3:7", "*4:40"]
|
||||||
}, {
|
}, {
|
||||||
"id": 3,
|
"id": 3,
|
||||||
"usr": "c:@S@Derived",
|
"usr": "c:@S@Derived",
|
||||||
"short_name": "Derived",
|
"short_name": "Derived",
|
||||||
"qualified_name": "Derived",
|
"qualified_name": "Derived",
|
||||||
"definition": "1:4:7",
|
"definition": "4:7",
|
||||||
"parents": [1, 2],
|
"parents": [1, 2],
|
||||||
"uses": ["*1:4:7"]
|
"uses": ["*4:7"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -13,38 +13,38 @@ OUTPUT:
|
|||||||
"usr": "c:@S@Root",
|
"usr": "c:@S@Root",
|
||||||
"short_name": "Root",
|
"short_name": "Root",
|
||||||
"qualified_name": "Root",
|
"qualified_name": "Root",
|
||||||
"definition": "1:1:7",
|
"definition": "1:7",
|
||||||
"derived": [1],
|
"derived": [1],
|
||||||
"funcs": [0],
|
"funcs": [0],
|
||||||
"uses": ["*1:1:7", "*1:4:24"]
|
"uses": ["*1:7", "*4:24"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@S@Derived",
|
"usr": "c:@S@Derived",
|
||||||
"short_name": "Derived",
|
"short_name": "Derived",
|
||||||
"qualified_name": "Derived",
|
"qualified_name": "Derived",
|
||||||
"definition": "1:4:7",
|
"definition": "4:7",
|
||||||
"parents": [0],
|
"parents": [0],
|
||||||
"funcs": [1],
|
"funcs": [1],
|
||||||
"uses": ["*1:4:7"]
|
"uses": ["*4:7"]
|
||||||
}],
|
}],
|
||||||
"funcs": [{
|
"funcs": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@S@Root@F@foo#",
|
"usr": "c:@S@Root@F@foo#",
|
||||||
"short_name": "foo",
|
"short_name": "foo",
|
||||||
"qualified_name": "Root::foo",
|
"qualified_name": "Root::foo",
|
||||||
"declarations": ["1:2:16"],
|
"declarations": ["2:16"],
|
||||||
"declaring_type": 0,
|
"declaring_type": 0,
|
||||||
"derived": [1],
|
"derived": [1],
|
||||||
"uses": ["1:2:16"]
|
"uses": ["2:16"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@S@Derived@F@foo#",
|
"usr": "c:@S@Derived@F@foo#",
|
||||||
"short_name": "foo",
|
"short_name": "foo",
|
||||||
"qualified_name": "Derived::foo",
|
"qualified_name": "Derived::foo",
|
||||||
"definition": "1:5:8",
|
"definition": "5:8",
|
||||||
"declaring_type": 1,
|
"declaring_type": 1,
|
||||||
"base": 0,
|
"base": 0,
|
||||||
"uses": ["1:5:8"]
|
"uses": ["5:8"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -10,18 +10,18 @@ OUTPUT:
|
|||||||
"usr": "c:@S@IFoo",
|
"usr": "c:@S@IFoo",
|
||||||
"short_name": "IFoo",
|
"short_name": "IFoo",
|
||||||
"qualified_name": "IFoo",
|
"qualified_name": "IFoo",
|
||||||
"definition": "1:1:7",
|
"definition": "1:7",
|
||||||
"funcs": [0],
|
"funcs": [0],
|
||||||
"uses": ["*1:1:7"]
|
"uses": ["*1:7"]
|
||||||
}],
|
}],
|
||||||
"funcs": [{
|
"funcs": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@S@IFoo@F@foo#",
|
"usr": "c:@S@IFoo@F@foo#",
|
||||||
"short_name": "foo",
|
"short_name": "foo",
|
||||||
"qualified_name": "IFoo::foo",
|
"qualified_name": "IFoo::foo",
|
||||||
"definition": "1:2:16",
|
"definition": "2:16",
|
||||||
"declaring_type": 0,
|
"declaring_type": 0,
|
||||||
"uses": ["1:2:16"]
|
"uses": ["2:16"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -14,18 +14,18 @@ OUTPUT:
|
|||||||
"usr": "c:@S@Foo",
|
"usr": "c:@S@Foo",
|
||||||
"short_name": "Foo",
|
"short_name": "Foo",
|
||||||
"qualified_name": "Foo",
|
"qualified_name": "Foo",
|
||||||
"definition": "1:1:7",
|
"definition": "1:7",
|
||||||
"funcs": [0],
|
"funcs": [0],
|
||||||
"uses": ["*1:1:7"]
|
"uses": ["*1:7"]
|
||||||
}],
|
}],
|
||||||
"funcs": [{
|
"funcs": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@S@Foo@F@foo#",
|
"usr": "c:@S@Foo@F@foo#",
|
||||||
"short_name": "foo",
|
"short_name": "foo",
|
||||||
"qualified_name": "Foo::foo",
|
"qualified_name": "Foo::foo",
|
||||||
"declarations": ["1:2:8"],
|
"declarations": ["2:8"],
|
||||||
"declaring_type": 0,
|
"declaring_type": 0,
|
||||||
"uses": ["1:2:8"]
|
"uses": ["2:8"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -12,19 +12,19 @@ OUTPUT:
|
|||||||
"usr": "c:@S@Foo",
|
"usr": "c:@S@Foo",
|
||||||
"short_name": "Foo",
|
"short_name": "Foo",
|
||||||
"qualified_name": "Foo",
|
"qualified_name": "Foo",
|
||||||
"definition": "1:1:7",
|
"definition": "1:7",
|
||||||
"funcs": [0],
|
"funcs": [0],
|
||||||
"uses": ["*1:1:7", "1:5:6"]
|
"uses": ["*1:7", "5:6"]
|
||||||
}],
|
}],
|
||||||
"funcs": [{
|
"funcs": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@S@Foo@F@foo#",
|
"usr": "c:@S@Foo@F@foo#",
|
||||||
"short_name": "foo",
|
"short_name": "foo",
|
||||||
"qualified_name": "Foo::foo",
|
"qualified_name": "Foo::foo",
|
||||||
"declarations": ["1:2:8"],
|
"declarations": ["2:8"],
|
||||||
"definition": "1:5:11",
|
"definition": "5:11",
|
||||||
"declaring_type": 0,
|
"declaring_type": 0,
|
||||||
"uses": ["1:2:8", "1:5:11"]
|
"uses": ["2:8", "5:11"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -10,18 +10,18 @@ OUTPUT:
|
|||||||
"usr": "c:@S@Foo",
|
"usr": "c:@S@Foo",
|
||||||
"short_name": "Foo",
|
"short_name": "Foo",
|
||||||
"qualified_name": "Foo",
|
"qualified_name": "Foo",
|
||||||
"definition": "1:1:7",
|
"definition": "1:7",
|
||||||
"funcs": [0],
|
"funcs": [0],
|
||||||
"uses": ["*1:1:7"]
|
"uses": ["*1:7"]
|
||||||
}],
|
}],
|
||||||
"funcs": [{
|
"funcs": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@S@Foo@F@foo#",
|
"usr": "c:@S@Foo@F@foo#",
|
||||||
"short_name": "foo",
|
"short_name": "foo",
|
||||||
"qualified_name": "Foo::foo",
|
"qualified_name": "Foo::foo",
|
||||||
"definition": "1:2:8",
|
"definition": "2:8",
|
||||||
"declaring_type": 0,
|
"declaring_type": 0,
|
||||||
"uses": ["1:2:8"]
|
"uses": ["2:8"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -32,90 +32,90 @@ OUTPUT:
|
|||||||
"usr": "c:@S@Base",
|
"usr": "c:@S@Base",
|
||||||
"short_name": "Base",
|
"short_name": "Base",
|
||||||
"qualified_name": "Base",
|
"qualified_name": "Base",
|
||||||
"definition": "1:10:8",
|
"definition": "10:8",
|
||||||
"derived": [1],
|
"derived": [1],
|
||||||
"uses": ["*1:10:8", "*1:12:26"]
|
"uses": ["*10:8", "*12:26"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@S@SameFileDerived",
|
"usr": "c:@S@SameFileDerived",
|
||||||
"short_name": "SameFileDerived",
|
"short_name": "SameFileDerived",
|
||||||
"qualified_name": "SameFileDerived",
|
"qualified_name": "SameFileDerived",
|
||||||
"definition": "1:12:8",
|
"definition": "12:8",
|
||||||
"parents": [0],
|
"parents": [0],
|
||||||
"uses": ["*1:12:8", "*1:14:14"]
|
"uses": ["*12:8", "*14:14"]
|
||||||
}, {
|
}, {
|
||||||
"id": 2,
|
"id": 2,
|
||||||
"usr": "c:@Foo0",
|
"usr": "c:@Foo0",
|
||||||
"short_name": "Foo0",
|
"short_name": "Foo0",
|
||||||
"qualified_name": "Foo0",
|
"qualified_name": "Foo0",
|
||||||
"definition": "1:14:7",
|
"definition": "14:7",
|
||||||
"alias_of": 1,
|
"alias_of": 1,
|
||||||
"uses": ["*1:14:7"]
|
"uses": ["*14:7"]
|
||||||
}, {
|
}, {
|
||||||
"id": 3,
|
"id": 3,
|
||||||
"usr": "c:@ST>1#T@Foo2",
|
"usr": "c:@ST>1#T@Foo2",
|
||||||
"short_name": "Foo2",
|
"short_name": "Foo2",
|
||||||
"qualified_name": "Foo2",
|
"qualified_name": "Foo2",
|
||||||
"definition": "1:20:8",
|
"definition": "20:8",
|
||||||
"uses": ["*1:20:8"]
|
"uses": ["*20:8"]
|
||||||
}, {
|
}, {
|
||||||
"id": 4,
|
"id": 4,
|
||||||
"usr": "c:@E@Foo3",
|
"usr": "c:@E@Foo3",
|
||||||
"short_name": "Foo3",
|
"short_name": "Foo3",
|
||||||
"qualified_name": "Foo3",
|
"qualified_name": "Foo3",
|
||||||
"definition": "1:22:6",
|
"definition": "22:6",
|
||||||
"vars": [0, 1, 2],
|
"vars": [0, 1, 2],
|
||||||
"uses": ["*1:22:6"]
|
"uses": ["*22:6"]
|
||||||
}],
|
}],
|
||||||
"funcs": [{
|
"funcs": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@FT@>1#TFoo1#v#",
|
"usr": "c:@FT@>1#TFoo1#v#",
|
||||||
"short_name": "Foo1",
|
"short_name": "Foo1",
|
||||||
"qualified_name": "Foo1",
|
"qualified_name": "Foo1",
|
||||||
"definition": "1:17:6",
|
"definition": "17:6",
|
||||||
"uses": ["1:17:6"]
|
"uses": ["17:6"]
|
||||||
}],
|
}],
|
||||||
"vars": [{
|
"vars": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@E@Foo3@A",
|
"usr": "c:@E@Foo3@A",
|
||||||
"short_name": "A",
|
"short_name": "A",
|
||||||
"qualified_name": "Foo3::A",
|
"qualified_name": "Foo3::A",
|
||||||
"definition": "1:22:13",
|
"definition": "22:13",
|
||||||
"variable_type": 4,
|
"variable_type": 4,
|
||||||
"declaring_type": 4,
|
"declaring_type": 4,
|
||||||
"uses": ["1:22:13"]
|
"uses": ["22:13"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@E@Foo3@B",
|
"usr": "c:@E@Foo3@B",
|
||||||
"short_name": "B",
|
"short_name": "B",
|
||||||
"qualified_name": "Foo3::B",
|
"qualified_name": "Foo3::B",
|
||||||
"definition": "1:22:16",
|
"definition": "22:16",
|
||||||
"variable_type": 4,
|
"variable_type": 4,
|
||||||
"declaring_type": 4,
|
"declaring_type": 4,
|
||||||
"uses": ["1:22:16"]
|
"uses": ["22:16"]
|
||||||
}, {
|
}, {
|
||||||
"id": 2,
|
"id": 2,
|
||||||
"usr": "c:@E@Foo3@C",
|
"usr": "c:@E@Foo3@C",
|
||||||
"short_name": "C",
|
"short_name": "C",
|
||||||
"qualified_name": "Foo3::C",
|
"qualified_name": "Foo3::C",
|
||||||
"definition": "1:22:19",
|
"definition": "22:19",
|
||||||
"variable_type": 4,
|
"variable_type": 4,
|
||||||
"declaring_type": 4,
|
"declaring_type": 4,
|
||||||
"uses": ["1:22:19"]
|
"uses": ["22:19"]
|
||||||
}, {
|
}, {
|
||||||
"id": 3,
|
"id": 3,
|
||||||
"usr": "c:@Foo4",
|
"usr": "c:@Foo4",
|
||||||
"short_name": "Foo4",
|
"short_name": "Foo4",
|
||||||
"qualified_name": "Foo4",
|
"qualified_name": "Foo4",
|
||||||
"definition": "1:24:5",
|
"definition": "24:5",
|
||||||
"uses": ["1:24:5"]
|
"uses": ["24:5"]
|
||||||
}, {
|
}, {
|
||||||
"id": 4,
|
"id": 4,
|
||||||
"usr": "c:header.h@Foo5",
|
"usr": "c:header.h@Foo5",
|
||||||
"short_name": "Foo5",
|
"short_name": "Foo5",
|
||||||
"qualified_name": "Foo5",
|
"qualified_name": "Foo5",
|
||||||
"definition": "1:25:12",
|
"definition": "25:12",
|
||||||
"uses": ["1:25:12"]
|
"uses": ["25:12"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
#include "serializer.h"
|
#include "serializer.h"
|
||||||
#include "indexer.h"
|
#include "indexer.h"
|
||||||
|
|
||||||
|
#if false
|
||||||
// int
|
// int
|
||||||
void Reflect(Reader& visitor, int& value) {
|
void Reflect(Reader& visitor, int& value) {
|
||||||
value = visitor.GetInt();
|
value = visitor.GetInt();
|
||||||
@ -219,7 +220,7 @@ optional<IndexedFile> Deserialize(std::string path, std::string serialized) {
|
|||||||
|
|
||||||
return file;
|
return file;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
#if false
|
#if false
|
||||||
#include "header.h"
|
#include "header.h"
|
||||||
#include "serializer.h"
|
#include "serializer.h"
|
||||||
@ -241,813 +242,5 @@ void f() {
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
OUTPUT:
|
OUTPUT:
|
||||||
{
|
{}
|
||||||
"types": [{
|
|
||||||
"id": 0,
|
|
||||||
"usr": "c:@Reader",
|
|
||||||
"instantiations": [0, 4, 8, 15, 20, 24, 32, 38, 44],
|
|
||||||
"uses": ["*1:5:14", "*1:12:14", "*1:19:14", "*1:37:14", "*1:51:14", "*1:61:14", "*1:85:25", "*1:115:25", "*1:146:25"]
|
|
||||||
}, {
|
|
||||||
"id": 1,
|
|
||||||
"usr": "c:@Writer",
|
|
||||||
"instantiations": [2, 6, 10, 12, 17, 22, 29, 34, 40, 46, 50],
|
|
||||||
"uses": ["*1:8:14", "*1:15:14", "*1:22:14", "*1:28:20", "*1:40:14", "*1:55:14", "*1:69:14", "*1:89:25", "*1:119:25", "*1:150:25", "*1:173:25"]
|
|
||||||
}, {
|
|
||||||
"id": 2,
|
|
||||||
"usr": "c:@N@std@T@string",
|
|
||||||
"instantiations": [9, 11, 14, 19, 31, 58, 59],
|
|
||||||
"uses": ["*1:19:36", "*1:22:36", "*1:28:60", "*1:44:8", "*1:70:8", "*1:198:6", "*1:211:40", "*1:211:58"]
|
|
||||||
}, {
|
|
||||||
"id": 3,
|
|
||||||
"usr": "c:@S@Location",
|
|
||||||
"instantiations": [16, 18],
|
|
||||||
"uses": ["*1:37:31", "*1:40:31"]
|
|
||||||
}, {
|
|
||||||
"id": 4,
|
|
||||||
"usr": "c:@ST>1#T@Id",
|
|
||||||
"instantiations": [21, 23],
|
|
||||||
"uses": ["*1:51:31", "*1:55:31"]
|
|
||||||
}, {
|
|
||||||
"id": 5,
|
|
||||||
"usr": "c:impl.cc@1122",
|
|
||||||
"uses": ["*1:51:34"]
|
|
||||||
}, {
|
|
||||||
"id": 6,
|
|
||||||
"usr": "c:impl.cc@1223",
|
|
||||||
"uses": ["*1:55:34"]
|
|
||||||
}, {
|
|
||||||
"id": 7,
|
|
||||||
"usr": "c:@ST>1#T@Ref",
|
|
||||||
"instantiations": [25, 30],
|
|
||||||
"uses": ["*1:61:31", "*1:69:31"]
|
|
||||||
}, {
|
|
||||||
"id": 8,
|
|
||||||
"usr": "c:@S@IndexedFuncDef",
|
|
||||||
"instantiations": [39, 41, 43],
|
|
||||||
"uses": ["*1:61:35", "*1:69:35", "*1:115:41", "*1:119:41", "*1:126:33"]
|
|
||||||
}, {
|
|
||||||
"id": 9,
|
|
||||||
"usr": "c:@T@uint64_t",
|
|
||||||
"instantiations": [27],
|
|
||||||
"uses": ["*1:63:3"]
|
|
||||||
}, {
|
|
||||||
"id": 10,
|
|
||||||
"usr": "c:@S@IndexedTypeDef",
|
|
||||||
"instantiations": [33, 35, 37],
|
|
||||||
"uses": ["*1:85:41", "*1:89:41", "*1:96:33"]
|
|
||||||
}, {
|
|
||||||
"id": 11,
|
|
||||||
"usr": "c:impl.cc@2280",
|
|
||||||
"uses": ["*1:96:14"]
|
|
||||||
}, {
|
|
||||||
"id": 12,
|
|
||||||
"usr": "c:impl.cc@3310",
|
|
||||||
"uses": ["*1:126:14"]
|
|
||||||
}, {
|
|
||||||
"id": 13,
|
|
||||||
"usr": "c:@S@IndexedVarDef",
|
|
||||||
"instantiations": [45, 47, 49],
|
|
||||||
"uses": ["*1:146:41", "*1:150:41", "*1:157:33"]
|
|
||||||
}, {
|
|
||||||
"id": 14,
|
|
||||||
"usr": "c:impl.cc@4407",
|
|
||||||
"uses": ["*1:157:14"]
|
|
||||||
}, {
|
|
||||||
"id": 15,
|
|
||||||
"usr": "c:@S@IndexedFile",
|
|
||||||
"instantiations": [51, 54, 55, 61],
|
|
||||||
"uses": ["*1:173:42", "*1:184:33", "*1:198:23", "*1:211:10", "*1:217:3"]
|
|
||||||
}, {
|
|
||||||
"id": 16,
|
|
||||||
"usr": "c:impl.cc@5404",
|
|
||||||
"uses": ["*1:184:14"]
|
|
||||||
}, {
|
|
||||||
"id": 17,
|
|
||||||
"usr": "c:stringbuffer.h@N@rapidjson@T@StringBuffer",
|
|
||||||
"instantiations": [56],
|
|
||||||
"uses": ["*1:199:14"]
|
|
||||||
}, {
|
|
||||||
"id": 18,
|
|
||||||
"usr": "c:@N@std@N@experimental@ST>1#T@optional",
|
|
||||||
"uses": ["*1:211:1"]
|
|
||||||
}, {
|
|
||||||
"id": 19,
|
|
||||||
"usr": "c:document.h@N@rapidjson@T@Document",
|
|
||||||
"instantiations": [60],
|
|
||||||
"uses": ["*1:212:14"]
|
|
||||||
}],
|
|
||||||
"funcs": [{
|
|
||||||
"id": 0,
|
|
||||||
"usr": "c:@F@Reflect#&$@N@rapidjson@S@GenericValue>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@MemoryPoolAllocator>#$@N@rapidjson@S@CrtAllocator#&I#",
|
|
||||||
"short_name": "Reflect",
|
|
||||||
"qualified_name": "Reflect",
|
|
||||||
"definition": "1:5:6",
|
|
||||||
"uses": ["1:5:6"]
|
|
||||||
}, {
|
|
||||||
"id": 1,
|
|
||||||
"usr": "c:@F@Reflect#&$@N@rapidjson@S@Writer>#$@N@rapidjson@S@GenericStringBuffer>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@CrtAllocator#S3_#S3_#S4_#Vi0#&I#",
|
|
||||||
"short_name": "Reflect",
|
|
||||||
"qualified_name": "Reflect",
|
|
||||||
"definition": "1:8:6",
|
|
||||||
"callees": ["2@1:9:11"],
|
|
||||||
"uses": ["1:8:6"]
|
|
||||||
}, {
|
|
||||||
"id": 2,
|
|
||||||
"usr": "c:@N@rapidjson@ST>5#T#T#T#T#Ni@Writer@F@Int#I#",
|
|
||||||
"callers": ["1@1:9:11"],
|
|
||||||
"uses": ["1:9:11"]
|
|
||||||
}, {
|
|
||||||
"id": 3,
|
|
||||||
"usr": "c:@F@Reflect#&$@N@rapidjson@S@GenericValue>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@MemoryPoolAllocator>#$@N@rapidjson@S@CrtAllocator#&b#",
|
|
||||||
"short_name": "Reflect",
|
|
||||||
"qualified_name": "Reflect",
|
|
||||||
"definition": "1:12:6",
|
|
||||||
"uses": ["1:12:6"]
|
|
||||||
}, {
|
|
||||||
"id": 4,
|
|
||||||
"usr": "c:@F@Reflect#&$@N@rapidjson@S@Writer>#$@N@rapidjson@S@GenericStringBuffer>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@CrtAllocator#S3_#S3_#S4_#Vi0#&b#",
|
|
||||||
"short_name": "Reflect",
|
|
||||||
"qualified_name": "Reflect",
|
|
||||||
"definition": "1:15:6",
|
|
||||||
"callees": ["5@1:16:11"],
|
|
||||||
"uses": ["1:15:6"]
|
|
||||||
}, {
|
|
||||||
"id": 5,
|
|
||||||
"usr": "c:@N@rapidjson@ST>5#T#T#T#T#Ni@Writer@F@Bool#b#",
|
|
||||||
"callers": ["4@1:16:11"],
|
|
||||||
"uses": ["1:16:11"]
|
|
||||||
}, {
|
|
||||||
"id": 6,
|
|
||||||
"usr": "c:@F@Reflect#&$@N@rapidjson@S@GenericValue>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@MemoryPoolAllocator>#$@N@rapidjson@S@CrtAllocator#&$@N@std@S@basic_string>#C#$@N@std@S@char_traits>#C#$@N@std@S@allocator>#C#",
|
|
||||||
"short_name": "Reflect",
|
|
||||||
"qualified_name": "Reflect",
|
|
||||||
"definition": "1:19:6",
|
|
||||||
"uses": ["1:19:6"]
|
|
||||||
}, {
|
|
||||||
"id": 7,
|
|
||||||
"usr": "c:@F@Reflect#&$@N@rapidjson@S@Writer>#$@N@rapidjson@S@GenericStringBuffer>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@CrtAllocator#S3_#S3_#S4_#Vi0#&$@N@std@S@basic_string>#C#$@N@std@S@char_traits>#C#$@N@std@S@allocator>#C#",
|
|
||||||
"short_name": "Reflect",
|
|
||||||
"qualified_name": "Reflect",
|
|
||||||
"definition": "1:22:6",
|
|
||||||
"callers": ["8@1:32:3"],
|
|
||||||
"uses": ["1:22:6", "1:32:3"]
|
|
||||||
}, {
|
|
||||||
"id": 8,
|
|
||||||
"usr": "c:@F@ReflectMember#&$@N@rapidjson@S@Writer>#$@N@rapidjson@S@GenericStringBuffer>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@CrtAllocator#S3_#S3_#S4_#Vi0#*1C#&$@N@std@S@basic_string>#C#$@N@std@S@char_traits>#C#$@N@std@S@allocator>#C#",
|
|
||||||
"short_name": "ReflectMember",
|
|
||||||
"qualified_name": "ReflectMember",
|
|
||||||
"definition": "1:28:6",
|
|
||||||
"callees": ["9@1:31:11", "7@1:32:3"],
|
|
||||||
"uses": ["1:28:6"]
|
|
||||||
}, {
|
|
||||||
"id": 9,
|
|
||||||
"usr": "c:@N@rapidjson@ST>5#T#T#T#T#Ni@Writer@F@Key#*1^type-parameter-0-1:::Ch#",
|
|
||||||
"callers": ["8@1:31:11"],
|
|
||||||
"uses": ["1:31:11"]
|
|
||||||
}, {
|
|
||||||
"id": 10,
|
|
||||||
"usr": "c:@F@Reflect#&$@N@rapidjson@S@GenericValue>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@MemoryPoolAllocator>#$@N@rapidjson@S@CrtAllocator#&$@S@Location#",
|
|
||||||
"short_name": "Reflect",
|
|
||||||
"qualified_name": "Reflect",
|
|
||||||
"definition": "1:37:6",
|
|
||||||
"uses": ["1:37:6"]
|
|
||||||
}, {
|
|
||||||
"id": 11,
|
|
||||||
"usr": "c:@F@Reflect#&$@N@rapidjson@S@Writer>#$@N@rapidjson@S@GenericStringBuffer>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@CrtAllocator#S3_#S3_#S4_#Vi0#&$@S@Location#",
|
|
||||||
"short_name": "Reflect",
|
|
||||||
"qualified_name": "Reflect",
|
|
||||||
"definition": "1:40:6",
|
|
||||||
"callees": ["12@1:44:30"],
|
|
||||||
"uses": ["1:40:6"]
|
|
||||||
}, {
|
|
||||||
"id": 12,
|
|
||||||
"usr": "c:@S@Location@F@ToString#",
|
|
||||||
"callers": ["11@1:44:30"],
|
|
||||||
"uses": ["1:44:30"]
|
|
||||||
}, {
|
|
||||||
"id": 13,
|
|
||||||
"usr": "c:@FT@>1#TReflect#&$@N@rapidjson@S@GenericValue>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@MemoryPoolAllocator>#$@N@rapidjson@S@CrtAllocator#&>@ST>1#T@Id1t0.0#v#",
|
|
||||||
"short_name": "Reflect",
|
|
||||||
"qualified_name": "Reflect",
|
|
||||||
"definition": "1:51:6",
|
|
||||||
"uses": ["1:51:6"]
|
|
||||||
}, {
|
|
||||||
"id": 14,
|
|
||||||
"usr": "c:@FT@>1#TReflect#&$@N@rapidjson@S@Writer>#$@N@rapidjson@S@GenericStringBuffer>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@CrtAllocator#S3_#S3_#S4_#Vi0#&>@ST>1#T@Id1t0.0#v#",
|
|
||||||
"short_name": "Reflect",
|
|
||||||
"qualified_name": "Reflect",
|
|
||||||
"definition": "1:55:6",
|
|
||||||
"uses": ["1:55:6"]
|
|
||||||
}, {
|
|
||||||
"id": 15,
|
|
||||||
"usr": "c:@F@Reflect#&$@N@rapidjson@S@GenericValue>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@MemoryPoolAllocator>#$@N@rapidjson@S@CrtAllocator#&$@S@Ref>#$@S@IndexedFuncDef#",
|
|
||||||
"short_name": "Reflect",
|
|
||||||
"qualified_name": "Reflect",
|
|
||||||
"definition": "1:61:6",
|
|
||||||
"uses": ["1:61:6"]
|
|
||||||
}, {
|
|
||||||
"id": 16,
|
|
||||||
"usr": "c:@F@Reflect#&$@N@rapidjson@S@Writer>#$@N@rapidjson@S@GenericStringBuffer>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@CrtAllocator#S3_#S3_#S4_#Vi0#&$@S@Ref>#$@S@IndexedFuncDef#",
|
|
||||||
"short_name": "Reflect",
|
|
||||||
"qualified_name": "Reflect",
|
|
||||||
"definition": "1:69:6",
|
|
||||||
"callees": ["17@1:71:11"],
|
|
||||||
"uses": ["1:69:6"]
|
|
||||||
}, {
|
|
||||||
"id": 17,
|
|
||||||
"usr": "c:@N@rapidjson@ST>5#T#T#T#T#Ni@Writer@F@String#*1^type-parameter-0-1:::Ch#",
|
|
||||||
"callers": ["16@1:71:11"],
|
|
||||||
"uses": ["1:71:11"]
|
|
||||||
}, {
|
|
||||||
"id": 18,
|
|
||||||
"usr": "c:@F@ReflectMemberStart#&$@N@rapidjson@S@GenericValue>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@MemoryPoolAllocator>#$@N@rapidjson@S@CrtAllocator#&$@S@IndexedTypeDef#",
|
|
||||||
"short_name": "ReflectMemberStart",
|
|
||||||
"qualified_name": "ReflectMemberStart",
|
|
||||||
"definition": "1:85:6",
|
|
||||||
"uses": ["1:85:6"]
|
|
||||||
}, {
|
|
||||||
"id": 19,
|
|
||||||
"usr": "c:@F@ReflectMemberStart#&$@N@rapidjson@S@Writer>#$@N@rapidjson@S@GenericStringBuffer>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@CrtAllocator#S3_#S3_#S4_#Vi0#&$@S@IndexedTypeDef#",
|
|
||||||
"short_name": "ReflectMemberStart",
|
|
||||||
"qualified_name": "ReflectMemberStart",
|
|
||||||
"definition": "1:89:6",
|
|
||||||
"callees": ["20@1:92:3"],
|
|
||||||
"uses": ["1:89:6"]
|
|
||||||
}, {
|
|
||||||
"id": 20,
|
|
||||||
"usr": "c:@F@DefaultReflectMemberStart#&$@N@rapidjson@S@Writer>#$@N@rapidjson@S@GenericStringBuffer>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@CrtAllocator#S3_#S3_#S4_#Vi0#",
|
|
||||||
"callers": ["19@1:92:3", "23@1:122:3", "26@1:153:3", "28@1:180:3"],
|
|
||||||
"uses": ["1:92:3", "1:122:3", "1:153:3", "1:180:3"]
|
|
||||||
}, {
|
|
||||||
"id": 21,
|
|
||||||
"usr": "c:@FT@>1#TReflect#&t0.0#&$@S@IndexedTypeDef#v#",
|
|
||||||
"short_name": "Reflect",
|
|
||||||
"qualified_name": "Reflect",
|
|
||||||
"definition": "1:96:6",
|
|
||||||
"uses": ["1:96:6"]
|
|
||||||
}, {
|
|
||||||
"id": 22,
|
|
||||||
"usr": "c:@F@ReflectMemberStart#&$@N@rapidjson@S@GenericValue>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@MemoryPoolAllocator>#$@N@rapidjson@S@CrtAllocator#&$@S@IndexedFuncDef#",
|
|
||||||
"short_name": "ReflectMemberStart",
|
|
||||||
"qualified_name": "ReflectMemberStart",
|
|
||||||
"definition": "1:115:6",
|
|
||||||
"uses": ["1:115:6"]
|
|
||||||
}, {
|
|
||||||
"id": 23,
|
|
||||||
"usr": "c:@F@ReflectMemberStart#&$@N@rapidjson@S@Writer>#$@N@rapidjson@S@GenericStringBuffer>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@CrtAllocator#S3_#S3_#S4_#Vi0#&$@S@IndexedFuncDef#",
|
|
||||||
"short_name": "ReflectMemberStart",
|
|
||||||
"qualified_name": "ReflectMemberStart",
|
|
||||||
"definition": "1:119:6",
|
|
||||||
"callees": ["20@1:122:3"],
|
|
||||||
"uses": ["1:119:6"]
|
|
||||||
}, {
|
|
||||||
"id": 24,
|
|
||||||
"usr": "c:@FT@>1#TReflect#&t0.0#&$@S@IndexedFuncDef#v#",
|
|
||||||
"short_name": "Reflect",
|
|
||||||
"qualified_name": "Reflect",
|
|
||||||
"definition": "1:126:6",
|
|
||||||
"uses": ["1:126:6"]
|
|
||||||
}, {
|
|
||||||
"id": 25,
|
|
||||||
"usr": "c:@F@ReflectMemberStart#&$@N@rapidjson@S@GenericValue>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@MemoryPoolAllocator>#$@N@rapidjson@S@CrtAllocator#&$@S@IndexedVarDef#",
|
|
||||||
"short_name": "ReflectMemberStart",
|
|
||||||
"qualified_name": "ReflectMemberStart",
|
|
||||||
"definition": "1:146:6",
|
|
||||||
"uses": ["1:146:6"]
|
|
||||||
}, {
|
|
||||||
"id": 26,
|
|
||||||
"usr": "c:@F@ReflectMemberStart#&$@N@rapidjson@S@Writer>#$@N@rapidjson@S@GenericStringBuffer>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@CrtAllocator#S3_#S3_#S4_#Vi0#&$@S@IndexedVarDef#",
|
|
||||||
"short_name": "ReflectMemberStart",
|
|
||||||
"qualified_name": "ReflectMemberStart",
|
|
||||||
"definition": "1:150:6",
|
|
||||||
"callees": ["20@1:153:3"],
|
|
||||||
"uses": ["1:150:6"]
|
|
||||||
}, {
|
|
||||||
"id": 27,
|
|
||||||
"usr": "c:@FT@>1#TReflect#&t0.0#&$@S@IndexedVarDef#v#",
|
|
||||||
"short_name": "Reflect",
|
|
||||||
"qualified_name": "Reflect",
|
|
||||||
"definition": "1:157:6",
|
|
||||||
"uses": ["1:157:6"]
|
|
||||||
}, {
|
|
||||||
"id": 28,
|
|
||||||
"usr": "c:@F@ReflectMemberStart#&$@N@rapidjson@S@Writer>#$@N@rapidjson@S@GenericStringBuffer>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@CrtAllocator#S3_#S3_#S4_#Vi0#&$@S@IndexedFile#",
|
|
||||||
"short_name": "ReflectMemberStart",
|
|
||||||
"qualified_name": "ReflectMemberStart",
|
|
||||||
"definition": "1:173:6",
|
|
||||||
"callees": ["20@1:180:3"],
|
|
||||||
"uses": ["1:173:6"]
|
|
||||||
}, {
|
|
||||||
"id": 29,
|
|
||||||
"usr": "c:@FT@>1#TReflect#&t0.0#&$@S@IndexedFile#v#",
|
|
||||||
"short_name": "Reflect",
|
|
||||||
"qualified_name": "Reflect",
|
|
||||||
"definition": "1:184:6",
|
|
||||||
"uses": ["1:184:6"]
|
|
||||||
}, {
|
|
||||||
"id": 30,
|
|
||||||
"usr": "c:@F@Serialize#&$@S@IndexedFile#",
|
|
||||||
"short_name": "Serialize",
|
|
||||||
"qualified_name": "Serialize",
|
|
||||||
"definition": "1:198:13",
|
|
||||||
"uses": ["1:198:13"]
|
|
||||||
}, {
|
|
||||||
"id": 31,
|
|
||||||
"usr": "c:@F@Deserialize#$@N@std@S@basic_string>#C#$@N@std@S@char_traits>#C#$@N@std@S@allocator>#C#S0_#",
|
|
||||||
"short_name": "Deserialize",
|
|
||||||
"qualified_name": "Deserialize",
|
|
||||||
"definition": "1:211:23",
|
|
||||||
"callees": ["32@1:217:15"],
|
|
||||||
"uses": ["1:211:23"]
|
|
||||||
}, {
|
|
||||||
"id": 32,
|
|
||||||
"usr": "c:@S@IndexedFile@F@IndexedFile#&1$@N@std@S@basic_string>#C#$@N@std@S@char_traits>#C#$@N@std@S@allocator>#C#",
|
|
||||||
"callers": ["31@1:217:15"],
|
|
||||||
"uses": ["1:217:15"]
|
|
||||||
}],
|
|
||||||
"vars": [{
|
|
||||||
"id": 0,
|
|
||||||
"usr": "c:impl.cc@70@F@Reflect#&$@N@rapidjson@S@GenericValue>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@MemoryPoolAllocator>#$@N@rapidjson@S@CrtAllocator#&I#@visitor",
|
|
||||||
"short_name": "visitor",
|
|
||||||
"qualified_name": "visitor",
|
|
||||||
"definition": "1:5:22",
|
|
||||||
"variable_type": 0,
|
|
||||||
"uses": ["1:5:22"]
|
|
||||||
}, {
|
|
||||||
"id": 1,
|
|
||||||
"usr": "c:impl.cc@87@F@Reflect#&$@N@rapidjson@S@GenericValue>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@MemoryPoolAllocator>#$@N@rapidjson@S@CrtAllocator#&I#@value",
|
|
||||||
"short_name": "value",
|
|
||||||
"qualified_name": "value",
|
|
||||||
"definition": "1:5:36",
|
|
||||||
"uses": ["1:5:36"]
|
|
||||||
}, {
|
|
||||||
"id": 2,
|
|
||||||
"usr": "c:impl.cc@147@F@Reflect#&$@N@rapidjson@S@Writer>#$@N@rapidjson@S@GenericStringBuffer>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@CrtAllocator#S3_#S3_#S4_#Vi0#&I#@visitor",
|
|
||||||
"short_name": "visitor",
|
|
||||||
"qualified_name": "visitor",
|
|
||||||
"definition": "1:8:22",
|
|
||||||
"variable_type": 1,
|
|
||||||
"uses": ["1:8:22", "1:9:3"]
|
|
||||||
}, {
|
|
||||||
"id": 3,
|
|
||||||
"usr": "c:impl.cc@164@F@Reflect#&$@N@rapidjson@S@Writer>#$@N@rapidjson@S@GenericStringBuffer>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@CrtAllocator#S3_#S3_#S4_#Vi0#&I#@value",
|
|
||||||
"short_name": "value",
|
|
||||||
"qualified_name": "value",
|
|
||||||
"definition": "1:8:36",
|
|
||||||
"uses": ["1:8:36", "1:9:15"]
|
|
||||||
}, {
|
|
||||||
"id": 4,
|
|
||||||
"usr": "c:impl.cc@227@F@Reflect#&$@N@rapidjson@S@GenericValue>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@MemoryPoolAllocator>#$@N@rapidjson@S@CrtAllocator#&b#@visitor",
|
|
||||||
"short_name": "visitor",
|
|
||||||
"qualified_name": "visitor",
|
|
||||||
"definition": "1:12:22",
|
|
||||||
"variable_type": 0,
|
|
||||||
"uses": ["1:12:22"]
|
|
||||||
}, {
|
|
||||||
"id": 5,
|
|
||||||
"usr": "c:impl.cc@244@F@Reflect#&$@N@rapidjson@S@GenericValue>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@MemoryPoolAllocator>#$@N@rapidjson@S@CrtAllocator#&b#@value",
|
|
||||||
"short_name": "value",
|
|
||||||
"qualified_name": "value",
|
|
||||||
"definition": "1:12:37",
|
|
||||||
"uses": ["1:12:37"]
|
|
||||||
}, {
|
|
||||||
"id": 6,
|
|
||||||
"usr": "c:impl.cc@306@F@Reflect#&$@N@rapidjson@S@Writer>#$@N@rapidjson@S@GenericStringBuffer>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@CrtAllocator#S3_#S3_#S4_#Vi0#&b#@visitor",
|
|
||||||
"short_name": "visitor",
|
|
||||||
"qualified_name": "visitor",
|
|
||||||
"definition": "1:15:22",
|
|
||||||
"variable_type": 1,
|
|
||||||
"uses": ["1:15:22", "1:16:3"]
|
|
||||||
}, {
|
|
||||||
"id": 7,
|
|
||||||
"usr": "c:impl.cc@323@F@Reflect#&$@N@rapidjson@S@Writer>#$@N@rapidjson@S@GenericStringBuffer>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@CrtAllocator#S3_#S3_#S4_#Vi0#&b#@value",
|
|
||||||
"short_name": "value",
|
|
||||||
"qualified_name": "value",
|
|
||||||
"definition": "1:15:37",
|
|
||||||
"uses": ["1:15:37", "1:16:16"]
|
|
||||||
}, {
|
|
||||||
"id": 8,
|
|
||||||
"usr": "c:impl.cc@395@F@Reflect#&$@N@rapidjson@S@GenericValue>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@MemoryPoolAllocator>#$@N@rapidjson@S@CrtAllocator#&$@N@std@S@basic_string>#C#$@N@std@S@char_traits>#C#$@N@std@S@allocator>#C#@visitor",
|
|
||||||
"short_name": "visitor",
|
|
||||||
"qualified_name": "visitor",
|
|
||||||
"definition": "1:19:22",
|
|
||||||
"variable_type": 0,
|
|
||||||
"uses": ["1:19:22"]
|
|
||||||
}, {
|
|
||||||
"id": 9,
|
|
||||||
"usr": "c:impl.cc@412@F@Reflect#&$@N@rapidjson@S@GenericValue>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@MemoryPoolAllocator>#$@N@rapidjson@S@CrtAllocator#&$@N@std@S@basic_string>#C#$@N@std@S@char_traits>#C#$@N@std@S@allocator>#C#@value",
|
|
||||||
"short_name": "value",
|
|
||||||
"qualified_name": "value",
|
|
||||||
"definition": "1:19:44",
|
|
||||||
"variable_type": 2,
|
|
||||||
"uses": ["1:19:44"]
|
|
||||||
}, {
|
|
||||||
"id": 10,
|
|
||||||
"usr": "c:impl.cc@483@F@Reflect#&$@N@rapidjson@S@Writer>#$@N@rapidjson@S@GenericStringBuffer>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@CrtAllocator#S3_#S3_#S4_#Vi0#&$@N@std@S@basic_string>#C#$@N@std@S@char_traits>#C#$@N@std@S@allocator>#C#@visitor",
|
|
||||||
"short_name": "visitor",
|
|
||||||
"qualified_name": "visitor",
|
|
||||||
"definition": "1:22:22",
|
|
||||||
"variable_type": 1,
|
|
||||||
"uses": ["1:22:22"]
|
|
||||||
}, {
|
|
||||||
"id": 11,
|
|
||||||
"usr": "c:impl.cc@500@F@Reflect#&$@N@rapidjson@S@Writer>#$@N@rapidjson@S@GenericStringBuffer>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@CrtAllocator#S3_#S3_#S4_#Vi0#&$@N@std@S@basic_string>#C#$@N@std@S@char_traits>#C#$@N@std@S@allocator>#C#@value",
|
|
||||||
"short_name": "value",
|
|
||||||
"qualified_name": "value",
|
|
||||||
"definition": "1:22:44",
|
|
||||||
"variable_type": 2,
|
|
||||||
"uses": ["1:22:44"]
|
|
||||||
}, {
|
|
||||||
"id": 12,
|
|
||||||
"usr": "c:impl.cc@615@F@ReflectMember#&$@N@rapidjson@S@Writer>#$@N@rapidjson@S@GenericStringBuffer>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@CrtAllocator#S3_#S3_#S4_#Vi0#*1C#&$@N@std@S@basic_string>#C#$@N@std@S@char_traits>#C#$@N@std@S@allocator>#C#@visitor",
|
|
||||||
"short_name": "visitor",
|
|
||||||
"qualified_name": "visitor",
|
|
||||||
"definition": "1:28:28",
|
|
||||||
"variable_type": 1,
|
|
||||||
"uses": ["1:28:28", "1:31:3", "1:32:11"]
|
|
||||||
}, {
|
|
||||||
"id": 13,
|
|
||||||
"usr": "c:impl.cc@632@F@ReflectMember#&$@N@rapidjson@S@Writer>#$@N@rapidjson@S@GenericStringBuffer>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@CrtAllocator#S3_#S3_#S4_#Vi0#*1C#&$@N@std@S@basic_string>#C#$@N@std@S@char_traits>#C#$@N@std@S@allocator>#C#@name",
|
|
||||||
"short_name": "name",
|
|
||||||
"qualified_name": "name",
|
|
||||||
"definition": "1:28:49",
|
|
||||||
"uses": ["1:28:49", "1:31:15"]
|
|
||||||
}, {
|
|
||||||
"id": 14,
|
|
||||||
"usr": "c:impl.cc@650@F@ReflectMember#&$@N@rapidjson@S@Writer>#$@N@rapidjson@S@GenericStringBuffer>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@CrtAllocator#S3_#S3_#S4_#Vi0#*1C#&$@N@std@S@basic_string>#C#$@N@std@S@char_traits>#C#$@N@std@S@allocator>#C#@value",
|
|
||||||
"short_name": "value",
|
|
||||||
"qualified_name": "value",
|
|
||||||
"definition": "1:28:68",
|
|
||||||
"variable_type": 2,
|
|
||||||
"uses": ["1:28:68", "1:29:7", "1:32:20"]
|
|
||||||
}, {
|
|
||||||
"id": 15,
|
|
||||||
"usr": "c:impl.cc@791@F@Reflect#&$@N@rapidjson@S@GenericValue>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@MemoryPoolAllocator>#$@N@rapidjson@S@CrtAllocator#&$@S@Location#@visitor",
|
|
||||||
"short_name": "visitor",
|
|
||||||
"qualified_name": "visitor",
|
|
||||||
"definition": "1:37:22",
|
|
||||||
"variable_type": 0,
|
|
||||||
"uses": ["1:37:22"]
|
|
||||||
}, {
|
|
||||||
"id": 16,
|
|
||||||
"usr": "c:impl.cc@808@F@Reflect#&$@N@rapidjson@S@GenericValue>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@MemoryPoolAllocator>#$@N@rapidjson@S@CrtAllocator#&$@S@Location#@value",
|
|
||||||
"short_name": "value",
|
|
||||||
"qualified_name": "value",
|
|
||||||
"definition": "1:37:41",
|
|
||||||
"variable_type": 3,
|
|
||||||
"uses": ["1:37:41"]
|
|
||||||
}, {
|
|
||||||
"id": 17,
|
|
||||||
"usr": "c:impl.cc@886@F@Reflect#&$@N@rapidjson@S@Writer>#$@N@rapidjson@S@GenericStringBuffer>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@CrtAllocator#S3_#S3_#S4_#Vi0#&$@S@Location#@visitor",
|
|
||||||
"short_name": "visitor",
|
|
||||||
"qualified_name": "visitor",
|
|
||||||
"definition": "1:40:22",
|
|
||||||
"variable_type": 1,
|
|
||||||
"uses": ["1:40:22"]
|
|
||||||
}, {
|
|
||||||
"id": 18,
|
|
||||||
"usr": "c:impl.cc@903@F@Reflect#&$@N@rapidjson@S@Writer>#$@N@rapidjson@S@GenericStringBuffer>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@CrtAllocator#S3_#S3_#S4_#Vi0#&$@S@Location#@value",
|
|
||||||
"short_name": "value",
|
|
||||||
"qualified_name": "value",
|
|
||||||
"definition": "1:40:41",
|
|
||||||
"variable_type": 3,
|
|
||||||
"uses": ["1:40:41", "1:44:24"]
|
|
||||||
}, {
|
|
||||||
"id": 19,
|
|
||||||
"usr": "c:impl.cc@1006@F@Reflect#&$@N@rapidjson@S@Writer>#$@N@rapidjson@S@GenericStringBuffer>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@CrtAllocator#S3_#S3_#S4_#Vi0#&$@S@Location#@output",
|
|
||||||
"short_name": "output",
|
|
||||||
"qualified_name": "output",
|
|
||||||
"definition": "1:44:15",
|
|
||||||
"variable_type": 2,
|
|
||||||
"uses": ["1:44:15"]
|
|
||||||
}, {
|
|
||||||
"id": 20,
|
|
||||||
"usr": "c:impl.cc@1148@FT@>1#TReflect#&$@N@rapidjson@S@GenericValue>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@MemoryPoolAllocator>#$@N@rapidjson@S@CrtAllocator#&>@ST>1#T@Id1t0.0#v#@visitor",
|
|
||||||
"short_name": "visitor",
|
|
||||||
"qualified_name": "visitor",
|
|
||||||
"definition": "1:51:22",
|
|
||||||
"variable_type": 0,
|
|
||||||
"uses": ["1:51:22"]
|
|
||||||
}, {
|
|
||||||
"id": 21,
|
|
||||||
"usr": "c:impl.cc@1165@FT@>1#TReflect#&$@N@rapidjson@S@GenericValue>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@MemoryPoolAllocator>#$@N@rapidjson@S@CrtAllocator#&>@ST>1#T@Id1t0.0#v#@id",
|
|
||||||
"short_name": "id",
|
|
||||||
"qualified_name": "id",
|
|
||||||
"definition": "1:51:38",
|
|
||||||
"variable_type": 4,
|
|
||||||
"uses": ["1:51:38"]
|
|
||||||
}, {
|
|
||||||
"id": 22,
|
|
||||||
"usr": "c:impl.cc@1249@FT@>1#TReflect#&$@N@rapidjson@S@Writer>#$@N@rapidjson@S@GenericStringBuffer>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@CrtAllocator#S3_#S3_#S4_#Vi0#&>@ST>1#T@Id1t0.0#v#@visitor",
|
|
||||||
"short_name": "visitor",
|
|
||||||
"qualified_name": "visitor",
|
|
||||||
"definition": "1:55:22",
|
|
||||||
"variable_type": 1,
|
|
||||||
"uses": ["1:55:22"]
|
|
||||||
}, {
|
|
||||||
"id": 23,
|
|
||||||
"usr": "c:impl.cc@1266@FT@>1#TReflect#&$@N@rapidjson@S@Writer>#$@N@rapidjson@S@GenericStringBuffer>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@CrtAllocator#S3_#S3_#S4_#Vi0#&>@ST>1#T@Id1t0.0#v#@value",
|
|
||||||
"short_name": "value",
|
|
||||||
"qualified_name": "value",
|
|
||||||
"definition": "1:55:38",
|
|
||||||
"variable_type": 4,
|
|
||||||
"uses": ["1:55:38"]
|
|
||||||
}, {
|
|
||||||
"id": 24,
|
|
||||||
"usr": "c:impl.cc@1356@F@Reflect#&$@N@rapidjson@S@GenericValue>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@MemoryPoolAllocator>#$@N@rapidjson@S@CrtAllocator#&$@S@Ref>#$@S@IndexedFuncDef#@visitor",
|
|
||||||
"short_name": "visitor",
|
|
||||||
"qualified_name": "visitor",
|
|
||||||
"definition": "1:61:22",
|
|
||||||
"variable_type": 0,
|
|
||||||
"uses": ["1:61:22"]
|
|
||||||
}, {
|
|
||||||
"id": 25,
|
|
||||||
"usr": "c:impl.cc@1373@F@Reflect#&$@N@rapidjson@S@GenericValue>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@MemoryPoolAllocator>#$@N@rapidjson@S@CrtAllocator#&$@S@Ref>#$@S@IndexedFuncDef#@value",
|
|
||||||
"short_name": "value",
|
|
||||||
"qualified_name": "value",
|
|
||||||
"definition": "1:61:52",
|
|
||||||
"variable_type": 7,
|
|
||||||
"uses": ["1:61:52"]
|
|
||||||
}, {
|
|
||||||
"id": 26,
|
|
||||||
"usr": "c:impl.cc@1406@F@Reflect#&$@N@rapidjson@S@GenericValue>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@MemoryPoolAllocator>#$@N@rapidjson@S@CrtAllocator#&$@S@Ref>#$@S@IndexedFuncDef#@str_value",
|
|
||||||
"short_name": "str_value",
|
|
||||||
"qualified_name": "str_value",
|
|
||||||
"definition": "1:62:15",
|
|
||||||
"uses": ["1:62:15", "1:63:22", "1:64:35"]
|
|
||||||
}, {
|
|
||||||
"id": 27,
|
|
||||||
"usr": "c:impl.cc@1454@F@Reflect#&$@N@rapidjson@S@GenericValue>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@MemoryPoolAllocator>#$@N@rapidjson@S@CrtAllocator#&$@S@Ref>#$@S@IndexedFuncDef#@id",
|
|
||||||
"short_name": "id",
|
|
||||||
"qualified_name": "id",
|
|
||||||
"definition": "1:63:12",
|
|
||||||
"variable_type": 9,
|
|
||||||
"uses": ["1:63:12"]
|
|
||||||
}, {
|
|
||||||
"id": 28,
|
|
||||||
"usr": "c:impl.cc@1488@F@Reflect#&$@N@rapidjson@S@GenericValue>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@MemoryPoolAllocator>#$@N@rapidjson@S@CrtAllocator#&$@S@Ref>#$@S@IndexedFuncDef#@loc_string",
|
|
||||||
"short_name": "loc_string",
|
|
||||||
"qualified_name": "loc_string",
|
|
||||||
"definition": "1:64:15",
|
|
||||||
"uses": ["1:64:15"]
|
|
||||||
}, {
|
|
||||||
"id": 29,
|
|
||||||
"usr": "c:impl.cc@1635@F@Reflect#&$@N@rapidjson@S@Writer>#$@N@rapidjson@S@GenericStringBuffer>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@CrtAllocator#S3_#S3_#S4_#Vi0#&$@S@Ref>#$@S@IndexedFuncDef#@visitor",
|
|
||||||
"short_name": "visitor",
|
|
||||||
"qualified_name": "visitor",
|
|
||||||
"definition": "1:69:22",
|
|
||||||
"variable_type": 1,
|
|
||||||
"uses": ["1:69:22", "1:71:3"]
|
|
||||||
}, {
|
|
||||||
"id": 30,
|
|
||||||
"usr": "c:impl.cc@1652@F@Reflect#&$@N@rapidjson@S@Writer>#$@N@rapidjson@S@GenericStringBuffer>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@CrtAllocator#S3_#S3_#S4_#Vi0#&$@S@Ref>#$@S@IndexedFuncDef#@value",
|
|
||||||
"short_name": "value",
|
|
||||||
"qualified_name": "value",
|
|
||||||
"definition": "1:69:52",
|
|
||||||
"variable_type": 7,
|
|
||||||
"uses": ["1:69:52"]
|
|
||||||
}, {
|
|
||||||
"id": 31,
|
|
||||||
"usr": "c:impl.cc@1685@F@Reflect#&$@N@rapidjson@S@Writer>#$@N@rapidjson@S@GenericStringBuffer>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@CrtAllocator#S3_#S3_#S4_#Vi0#&$@S@Ref>#$@S@IndexedFuncDef#@s",
|
|
||||||
"short_name": "s",
|
|
||||||
"qualified_name": "s",
|
|
||||||
"definition": "1:70:15",
|
|
||||||
"variable_type": 2,
|
|
||||||
"uses": ["1:70:15", "1:71:18"]
|
|
||||||
}, {
|
|
||||||
"id": 32,
|
|
||||||
"usr": "c:impl.cc@2008@F@ReflectMemberStart#&$@N@rapidjson@S@GenericValue>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@MemoryPoolAllocator>#$@N@rapidjson@S@CrtAllocator#&$@S@IndexedTypeDef#@reader",
|
|
||||||
"short_name": "reader",
|
|
||||||
"qualified_name": "reader",
|
|
||||||
"definition": "1:85:33",
|
|
||||||
"variable_type": 0,
|
|
||||||
"uses": ["1:85:33"]
|
|
||||||
}, {
|
|
||||||
"id": 33,
|
|
||||||
"usr": "c:impl.cc@2024@F@ReflectMemberStart#&$@N@rapidjson@S@GenericValue>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@MemoryPoolAllocator>#$@N@rapidjson@S@CrtAllocator#&$@S@IndexedTypeDef#@value",
|
|
||||||
"short_name": "value",
|
|
||||||
"qualified_name": "value",
|
|
||||||
"definition": "1:85:57",
|
|
||||||
"variable_type": 10,
|
|
||||||
"uses": ["1:85:57"]
|
|
||||||
}, {
|
|
||||||
"id": 34,
|
|
||||||
"usr": "c:impl.cc@2124@F@ReflectMemberStart#&$@N@rapidjson@S@Writer>#$@N@rapidjson@S@GenericStringBuffer>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@CrtAllocator#S3_#S3_#S4_#Vi0#&$@S@IndexedTypeDef#@writer",
|
|
||||||
"short_name": "writer",
|
|
||||||
"qualified_name": "writer",
|
|
||||||
"definition": "1:89:33",
|
|
||||||
"variable_type": 1,
|
|
||||||
"uses": ["1:89:33", "1:92:29"]
|
|
||||||
}, {
|
|
||||||
"id": 35,
|
|
||||||
"usr": "c:impl.cc@2140@F@ReflectMemberStart#&$@N@rapidjson@S@Writer>#$@N@rapidjson@S@GenericStringBuffer>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@CrtAllocator#S3_#S3_#S4_#Vi0#&$@S@IndexedTypeDef#@value",
|
|
||||||
"short_name": "value",
|
|
||||||
"qualified_name": "value",
|
|
||||||
"definition": "1:89:57",
|
|
||||||
"variable_type": 10,
|
|
||||||
"uses": ["1:89:57"]
|
|
||||||
}, {
|
|
||||||
"id": 36,
|
|
||||||
"usr": "c:impl.cc@2313@FT@>1#TReflect#&t0.0#&$@S@IndexedTypeDef#v#@visitor",
|
|
||||||
"short_name": "visitor",
|
|
||||||
"qualified_name": "visitor",
|
|
||||||
"definition": "1:96:24",
|
|
||||||
"uses": ["1:96:24"]
|
|
||||||
}, {
|
|
||||||
"id": 37,
|
|
||||||
"usr": "c:impl.cc@2332@FT@>1#TReflect#&t0.0#&$@S@IndexedTypeDef#v#@value",
|
|
||||||
"short_name": "value",
|
|
||||||
"qualified_name": "value",
|
|
||||||
"definition": "1:96:49",
|
|
||||||
"variable_type": 10,
|
|
||||||
"uses": ["1:96:49"]
|
|
||||||
}, {
|
|
||||||
"id": 38,
|
|
||||||
"usr": "c:impl.cc@3038@F@ReflectMemberStart#&$@N@rapidjson@S@GenericValue>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@MemoryPoolAllocator>#$@N@rapidjson@S@CrtAllocator#&$@S@IndexedFuncDef#@reader",
|
|
||||||
"short_name": "reader",
|
|
||||||
"qualified_name": "reader",
|
|
||||||
"definition": "1:115:33",
|
|
||||||
"variable_type": 0,
|
|
||||||
"uses": ["1:115:33"]
|
|
||||||
}, {
|
|
||||||
"id": 39,
|
|
||||||
"usr": "c:impl.cc@3054@F@ReflectMemberStart#&$@N@rapidjson@S@GenericValue>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@MemoryPoolAllocator>#$@N@rapidjson@S@CrtAllocator#&$@S@IndexedFuncDef#@value",
|
|
||||||
"short_name": "value",
|
|
||||||
"qualified_name": "value",
|
|
||||||
"definition": "1:115:57",
|
|
||||||
"variable_type": 8,
|
|
||||||
"uses": ["1:115:57"]
|
|
||||||
}, {
|
|
||||||
"id": 40,
|
|
||||||
"usr": "c:impl.cc@3154@F@ReflectMemberStart#&$@N@rapidjson@S@Writer>#$@N@rapidjson@S@GenericStringBuffer>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@CrtAllocator#S3_#S3_#S4_#Vi0#&$@S@IndexedFuncDef#@writer",
|
|
||||||
"short_name": "writer",
|
|
||||||
"qualified_name": "writer",
|
|
||||||
"definition": "1:119:33",
|
|
||||||
"variable_type": 1,
|
|
||||||
"uses": ["1:119:33", "1:122:29"]
|
|
||||||
}, {
|
|
||||||
"id": 41,
|
|
||||||
"usr": "c:impl.cc@3170@F@ReflectMemberStart#&$@N@rapidjson@S@Writer>#$@N@rapidjson@S@GenericStringBuffer>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@CrtAllocator#S3_#S3_#S4_#Vi0#&$@S@IndexedFuncDef#@value",
|
|
||||||
"short_name": "value",
|
|
||||||
"qualified_name": "value",
|
|
||||||
"definition": "1:119:57",
|
|
||||||
"variable_type": 8,
|
|
||||||
"uses": ["1:119:57"]
|
|
||||||
}, {
|
|
||||||
"id": 42,
|
|
||||||
"usr": "c:impl.cc@3343@FT@>1#TReflect#&t0.0#&$@S@IndexedFuncDef#v#@visitor",
|
|
||||||
"short_name": "visitor",
|
|
||||||
"qualified_name": "visitor",
|
|
||||||
"definition": "1:126:24",
|
|
||||||
"uses": ["1:126:24"]
|
|
||||||
}, {
|
|
||||||
"id": 43,
|
|
||||||
"usr": "c:impl.cc@3362@FT@>1#TReflect#&t0.0#&$@S@IndexedFuncDef#v#@value",
|
|
||||||
"short_name": "value",
|
|
||||||
"qualified_name": "value",
|
|
||||||
"definition": "1:126:49",
|
|
||||||
"variable_type": 8,
|
|
||||||
"uses": ["1:126:49"]
|
|
||||||
}, {
|
|
||||||
"id": 44,
|
|
||||||
"usr": "c:impl.cc@4137@F@ReflectMemberStart#&$@N@rapidjson@S@GenericValue>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@MemoryPoolAllocator>#$@N@rapidjson@S@CrtAllocator#&$@S@IndexedVarDef#@reader",
|
|
||||||
"short_name": "reader",
|
|
||||||
"qualified_name": "reader",
|
|
||||||
"definition": "1:146:33",
|
|
||||||
"variable_type": 0,
|
|
||||||
"uses": ["1:146:33"]
|
|
||||||
}, {
|
|
||||||
"id": 45,
|
|
||||||
"usr": "c:impl.cc@4153@F@ReflectMemberStart#&$@N@rapidjson@S@GenericValue>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@MemoryPoolAllocator>#$@N@rapidjson@S@CrtAllocator#&$@S@IndexedVarDef#@value",
|
|
||||||
"short_name": "value",
|
|
||||||
"qualified_name": "value",
|
|
||||||
"definition": "1:146:56",
|
|
||||||
"variable_type": 13,
|
|
||||||
"uses": ["1:146:56"]
|
|
||||||
}, {
|
|
||||||
"id": 46,
|
|
||||||
"usr": "c:impl.cc@4252@F@ReflectMemberStart#&$@N@rapidjson@S@Writer>#$@N@rapidjson@S@GenericStringBuffer>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@CrtAllocator#S3_#S3_#S4_#Vi0#&$@S@IndexedVarDef#@writer",
|
|
||||||
"short_name": "writer",
|
|
||||||
"qualified_name": "writer",
|
|
||||||
"definition": "1:150:33",
|
|
||||||
"variable_type": 1,
|
|
||||||
"uses": ["1:150:33", "1:153:29"]
|
|
||||||
}, {
|
|
||||||
"id": 47,
|
|
||||||
"usr": "c:impl.cc@4268@F@ReflectMemberStart#&$@N@rapidjson@S@Writer>#$@N@rapidjson@S@GenericStringBuffer>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@CrtAllocator#S3_#S3_#S4_#Vi0#&$@S@IndexedVarDef#@value",
|
|
||||||
"short_name": "value",
|
|
||||||
"qualified_name": "value",
|
|
||||||
"definition": "1:150:56",
|
|
||||||
"variable_type": 13,
|
|
||||||
"uses": ["1:150:56"]
|
|
||||||
}, {
|
|
||||||
"id": 48,
|
|
||||||
"usr": "c:impl.cc@4440@FT@>1#TReflect#&t0.0#&$@S@IndexedVarDef#v#@visitor",
|
|
||||||
"short_name": "visitor",
|
|
||||||
"qualified_name": "visitor",
|
|
||||||
"definition": "1:157:24",
|
|
||||||
"uses": ["1:157:24"]
|
|
||||||
}, {
|
|
||||||
"id": 49,
|
|
||||||
"usr": "c:impl.cc@4459@FT@>1#TReflect#&t0.0#&$@S@IndexedVarDef#v#@value",
|
|
||||||
"short_name": "value",
|
|
||||||
"qualified_name": "value",
|
|
||||||
"definition": "1:157:48",
|
|
||||||
"variable_type": 13,
|
|
||||||
"uses": ["1:157:48"]
|
|
||||||
}, {
|
|
||||||
"id": 50,
|
|
||||||
"usr": "c:impl.cc@5061@F@ReflectMemberStart#&$@N@rapidjson@S@Writer>#$@N@rapidjson@S@GenericStringBuffer>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@CrtAllocator#S3_#S3_#S4_#Vi0#&$@S@IndexedFile#@visitor",
|
|
||||||
"short_name": "visitor",
|
|
||||||
"qualified_name": "visitor",
|
|
||||||
"definition": "1:173:33",
|
|
||||||
"variable_type": 1,
|
|
||||||
"uses": ["1:173:33", "1:180:29"]
|
|
||||||
}, {
|
|
||||||
"id": 51,
|
|
||||||
"usr": "c:impl.cc@5078@F@ReflectMemberStart#&$@N@rapidjson@S@Writer>#$@N@rapidjson@S@GenericStringBuffer>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@CrtAllocator#S3_#S3_#S4_#Vi0#&$@S@IndexedFile#@value",
|
|
||||||
"short_name": "value",
|
|
||||||
"qualified_name": "value",
|
|
||||||
"definition": "1:173:55",
|
|
||||||
"variable_type": 15,
|
|
||||||
"uses": ["1:173:55"]
|
|
||||||
}, {
|
|
||||||
"id": 52,
|
|
||||||
"usr": "c:impl.cc@5103@F@ReflectMemberStart#&$@N@rapidjson@S@Writer>#$@N@rapidjson@S@GenericStringBuffer>#$@N@rapidjson@S@UTF8>#C#$@N@rapidjson@S@CrtAllocator#S3_#S3_#S4_#Vi0#&$@S@IndexedFile#@it",
|
|
||||||
"short_name": "it",
|
|
||||||
"qualified_name": "it",
|
|
||||||
"definition": "1:174:8",
|
|
||||||
"uses": ["1:174:8"]
|
|
||||||
}, {
|
|
||||||
"id": 53,
|
|
||||||
"usr": "c:impl.cc@5437@FT@>1#TReflect#&t0.0#&$@S@IndexedFile#v#@visitor",
|
|
||||||
"short_name": "visitor",
|
|
||||||
"qualified_name": "visitor",
|
|
||||||
"definition": "1:184:24",
|
|
||||||
"uses": ["1:184:24"]
|
|
||||||
}, {
|
|
||||||
"id": 54,
|
|
||||||
"usr": "c:impl.cc@5456@FT@>1#TReflect#&t0.0#&$@S@IndexedFile#v#@value",
|
|
||||||
"short_name": "value",
|
|
||||||
"qualified_name": "value",
|
|
||||||
"definition": "1:184:46",
|
|
||||||
"variable_type": 15,
|
|
||||||
"uses": ["1:184:46"]
|
|
||||||
}, {
|
|
||||||
"id": 55,
|
|
||||||
"usr": "c:impl.cc@5647@F@Serialize#&$@S@IndexedFile#@file",
|
|
||||||
"short_name": "file",
|
|
||||||
"qualified_name": "file",
|
|
||||||
"definition": "1:198:36",
|
|
||||||
"variable_type": 15,
|
|
||||||
"uses": ["1:198:36"]
|
|
||||||
}, {
|
|
||||||
"id": 56,
|
|
||||||
"usr": "c:impl.cc@5671@F@Serialize#&$@S@IndexedFile#@output",
|
|
||||||
"short_name": "output",
|
|
||||||
"qualified_name": "output",
|
|
||||||
"definition": "1:199:27",
|
|
||||||
"variable_type": 17,
|
|
||||||
"uses": ["1:199:27"]
|
|
||||||
}, {
|
|
||||||
"id": 57,
|
|
||||||
"usr": "c:impl.cc@5706@F@Serialize#&$@S@IndexedFile#@writer",
|
|
||||||
"short_name": "writer",
|
|
||||||
"qualified_name": "writer",
|
|
||||||
"definition": "1:200:52",
|
|
||||||
"uses": ["1:200:52"]
|
|
||||||
}, {
|
|
||||||
"id": 58,
|
|
||||||
"usr": "c:impl.cc@6018@F@Deserialize#$@N@std@S@basic_string>#C#$@N@std@S@char_traits>#C#$@N@std@S@allocator>#C#S0_#@path",
|
|
||||||
"short_name": "path",
|
|
||||||
"qualified_name": "path",
|
|
||||||
"definition": "1:211:47",
|
|
||||||
"variable_type": 2,
|
|
||||||
"uses": ["1:211:47", "1:217:20"]
|
|
||||||
}, {
|
|
||||||
"id": 59,
|
|
||||||
"usr": "c:impl.cc@6036@F@Deserialize#$@N@std@S@basic_string>#C#$@N@std@S@char_traits>#C#$@N@std@S@allocator>#C#S0_#@serialized",
|
|
||||||
"short_name": "serialized",
|
|
||||||
"qualified_name": "serialized",
|
|
||||||
"definition": "1:211:65",
|
|
||||||
"variable_type": 2,
|
|
||||||
"uses": ["1:211:65"]
|
|
||||||
}, {
|
|
||||||
"id": 60,
|
|
||||||
"usr": "c:impl.cc@6065@F@Deserialize#$@N@std@S@basic_string>#C#$@N@std@S@char_traits>#C#$@N@std@S@allocator>#C#S0_#@reader",
|
|
||||||
"short_name": "reader",
|
|
||||||
"qualified_name": "reader",
|
|
||||||
"definition": "1:212:23",
|
|
||||||
"variable_type": 19,
|
|
||||||
"uses": ["1:212:23"]
|
|
||||||
}, {
|
|
||||||
"id": 61,
|
|
||||||
"usr": "c:impl.cc@6187@F@Deserialize#$@N@std@S@basic_string>#C#$@N@std@S@char_traits>#C#$@N@std@S@allocator>#C#S0_#@file",
|
|
||||||
"short_name": "file",
|
|
||||||
"qualified_name": "file",
|
|
||||||
"definition": "1:217:15",
|
|
||||||
"variable_type": 15,
|
|
||||||
"uses": ["1:217:15"]
|
|
||||||
}]
|
|
||||||
}
|
|
||||||
*/
|
*/
|
||||||
|
@ -10,8 +10,8 @@ OUTPUT:
|
|||||||
"usr": "c:anonymous_function.cc@aN@F@foo#",
|
"usr": "c:anonymous_function.cc@aN@F@foo#",
|
||||||
"short_name": "foo",
|
"short_name": "foo",
|
||||||
"qualified_name": "::foo",
|
"qualified_name": "::foo",
|
||||||
"declarations": ["1:2:6"],
|
"declarations": ["2:6"],
|
||||||
"uses": ["1:2:6"]
|
"uses": ["2:6"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -10,8 +10,8 @@ OUTPUT:
|
|||||||
"usr": "c:@N@hello@F@foo#I#I#",
|
"usr": "c:@N@hello@F@foo#I#I#",
|
||||||
"short_name": "foo",
|
"short_name": "foo",
|
||||||
"qualified_name": "hello::foo",
|
"qualified_name": "hello::foo",
|
||||||
"declarations": ["1:2:6"],
|
"declarations": ["2:6"],
|
||||||
"uses": ["1:2:6"]
|
"uses": ["2:6"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -10,8 +10,8 @@ OUTPUT:
|
|||||||
"usr": "c:@N@hello@F@foo#",
|
"usr": "c:@N@hello@F@foo#",
|
||||||
"short_name": "foo",
|
"short_name": "foo",
|
||||||
"qualified_name": "hello::foo",
|
"qualified_name": "hello::foo",
|
||||||
"definition": "1:2:6",
|
"definition": "2:6",
|
||||||
"uses": ["1:2:6"]
|
"uses": ["2:6"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -12,18 +12,18 @@ OUTPUT:
|
|||||||
"usr": "c:@N@hello@S@Foo",
|
"usr": "c:@N@hello@S@Foo",
|
||||||
"short_name": "Foo",
|
"short_name": "Foo",
|
||||||
"qualified_name": "hello::Foo",
|
"qualified_name": "hello::Foo",
|
||||||
"definition": "1:2:7",
|
"definition": "2:7",
|
||||||
"funcs": [0],
|
"funcs": [0],
|
||||||
"uses": ["*1:2:7"]
|
"uses": ["*2:7"]
|
||||||
}],
|
}],
|
||||||
"funcs": [{
|
"funcs": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@N@hello@S@Foo@F@foo#",
|
"usr": "c:@N@hello@S@Foo@F@foo#",
|
||||||
"short_name": "foo",
|
"short_name": "foo",
|
||||||
"qualified_name": "hello::Foo::foo",
|
"qualified_name": "hello::Foo::foo",
|
||||||
"declarations": ["1:3:8"],
|
"declarations": ["3:8"],
|
||||||
"declaring_type": 0,
|
"declaring_type": 0,
|
||||||
"uses": ["1:3:8"]
|
"uses": ["3:8"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -14,19 +14,19 @@ OUTPUT:
|
|||||||
"usr": "c:@N@hello@S@Foo",
|
"usr": "c:@N@hello@S@Foo",
|
||||||
"short_name": "Foo",
|
"short_name": "Foo",
|
||||||
"qualified_name": "hello::Foo",
|
"qualified_name": "hello::Foo",
|
||||||
"definition": "1:2:7",
|
"definition": "2:7",
|
||||||
"funcs": [0],
|
"funcs": [0],
|
||||||
"uses": ["*1:2:7", "1:6:6"]
|
"uses": ["*2:7", "6:6"]
|
||||||
}],
|
}],
|
||||||
"funcs": [{
|
"funcs": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@N@hello@S@Foo@F@foo#",
|
"usr": "c:@N@hello@S@Foo@F@foo#",
|
||||||
"short_name": "foo",
|
"short_name": "foo",
|
||||||
"qualified_name": "hello::Foo::foo",
|
"qualified_name": "hello::Foo::foo",
|
||||||
"declarations": ["1:3:8"],
|
"declarations": ["3:8"],
|
||||||
"definition": "1:6:11",
|
"definition": "6:11",
|
||||||
"declaring_type": 0,
|
"declaring_type": 0,
|
||||||
"uses": ["1:3:8", "1:6:11"]
|
"uses": ["3:8", "6:11"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -12,18 +12,18 @@ OUTPUT:
|
|||||||
"usr": "c:@N@hello@S@Foo",
|
"usr": "c:@N@hello@S@Foo",
|
||||||
"short_name": "Foo",
|
"short_name": "Foo",
|
||||||
"qualified_name": "hello::Foo",
|
"qualified_name": "hello::Foo",
|
||||||
"definition": "1:2:7",
|
"definition": "2:7",
|
||||||
"funcs": [0],
|
"funcs": [0],
|
||||||
"uses": ["*1:2:7"]
|
"uses": ["*2:7"]
|
||||||
}],
|
}],
|
||||||
"funcs": [{
|
"funcs": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@N@hello@S@Foo@F@foo#",
|
"usr": "c:@N@hello@S@Foo@F@foo#",
|
||||||
"short_name": "foo",
|
"short_name": "foo",
|
||||||
"qualified_name": "hello::Foo::foo",
|
"qualified_name": "hello::Foo::foo",
|
||||||
"definition": "1:3:8",
|
"definition": "3:8",
|
||||||
"declaring_type": 0,
|
"declaring_type": 0,
|
||||||
"uses": ["1:3:8"]
|
"uses": ["3:8"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -17,32 +17,32 @@ OUTPUT:
|
|||||||
"usr": "c:@N@ns@F@Accept#I#",
|
"usr": "c:@N@ns@F@Accept#I#",
|
||||||
"short_name": "Accept",
|
"short_name": "Accept",
|
||||||
"qualified_name": "ns::Accept",
|
"qualified_name": "ns::Accept",
|
||||||
"definition": "1:3:8",
|
"definition": "3:8",
|
||||||
"callers": ["1@1:7:7", "1@1:9:3"],
|
"callers": ["1@7:7", "1@9:3"],
|
||||||
"uses": ["1:3:8", "1:7:7", "1:9:3"]
|
"uses": ["3:8", "7:7", "9:3"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@F@Runner#",
|
"usr": "c:@F@Runner#",
|
||||||
"short_name": "Runner",
|
"short_name": "Runner",
|
||||||
"qualified_name": "Runner",
|
"qualified_name": "Runner",
|
||||||
"definition": "1:6:6",
|
"definition": "6:6",
|
||||||
"callees": ["0@1:7:7", "0@1:9:3"],
|
"callees": ["0@7:7", "0@9:3"],
|
||||||
"uses": ["1:6:6"]
|
"uses": ["6:6"]
|
||||||
}],
|
}],
|
||||||
"vars": [{
|
"vars": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@N@ns@Foo",
|
"usr": "c:@N@ns@Foo",
|
||||||
"short_name": "Foo",
|
"short_name": "Foo",
|
||||||
"qualified_name": "ns::Foo",
|
"qualified_name": "ns::Foo",
|
||||||
"definition": "1:2:7",
|
"definition": "2:7",
|
||||||
"uses": ["1:2:7", "1:7:18", "1:9:10"]
|
"uses": ["2:7", "7:18", "9:10"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:namespace_reference.cc@42@N@ns@F@Accept#I#@a",
|
"usr": "c:namespace_reference.cc@42@N@ns@F@Accept#I#@a",
|
||||||
"short_name": "a",
|
"short_name": "a",
|
||||||
"qualified_name": "a",
|
"qualified_name": "a",
|
||||||
"definition": "1:3:19",
|
"definition": "3:19",
|
||||||
"uses": ["1:3:19"]
|
"uses": ["3:19"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -14,40 +14,40 @@ OUTPUT:
|
|||||||
"usr": "c:@S@MergeableUpdate",
|
"usr": "c:@S@MergeableUpdate",
|
||||||
"short_name": "MergeableUpdate",
|
"short_name": "MergeableUpdate",
|
||||||
"qualified_name": "MergeableUpdate",
|
"qualified_name": "MergeableUpdate",
|
||||||
"definition": "1:3:8",
|
"definition": "3:8",
|
||||||
"vars": [0, 1, 2],
|
"vars": [0, 1, 2],
|
||||||
"uses": ["*1:3:8"]
|
"uses": ["*3:8"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@N@std@ST>2#T#T@vector",
|
"usr": "c:@N@std@ST>2#T#T@vector",
|
||||||
"instantiations": [2],
|
"instantiations": [2],
|
||||||
"uses": ["*1:6:8"]
|
"uses": ["*6:8"]
|
||||||
}],
|
}],
|
||||||
"vars": [{
|
"vars": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@S@MergeableUpdate@FI@a",
|
"usr": "c:@S@MergeableUpdate@FI@a",
|
||||||
"short_name": "a",
|
"short_name": "a",
|
||||||
"qualified_name": "MergeableUpdate::a",
|
"qualified_name": "MergeableUpdate::a",
|
||||||
"definition": "1:4:7",
|
"definition": "4:7",
|
||||||
"declaring_type": 0,
|
"declaring_type": 0,
|
||||||
"uses": ["1:4:7"]
|
"uses": ["4:7"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@S@MergeableUpdate@FI@b",
|
"usr": "c:@S@MergeableUpdate@FI@b",
|
||||||
"short_name": "b",
|
"short_name": "b",
|
||||||
"qualified_name": "MergeableUpdate::b",
|
"qualified_name": "MergeableUpdate::b",
|
||||||
"definition": "1:5:7",
|
"definition": "5:7",
|
||||||
"declaring_type": 0,
|
"declaring_type": 0,
|
||||||
"uses": ["1:5:7"]
|
"uses": ["5:7"]
|
||||||
}, {
|
}, {
|
||||||
"id": 2,
|
"id": 2,
|
||||||
"usr": "c:@S@MergeableUpdate@FI@to_add",
|
"usr": "c:@S@MergeableUpdate@FI@to_add",
|
||||||
"short_name": "to_add",
|
"short_name": "to_add",
|
||||||
"qualified_name": "MergeableUpdate::to_add",
|
"qualified_name": "MergeableUpdate::to_add",
|
||||||
"definition": "1:6:20",
|
"definition": "6:20",
|
||||||
"variable_type": 1,
|
"variable_type": 1,
|
||||||
"declaring_type": 0,
|
"declaring_type": 0,
|
||||||
"uses": ["1:6:20"]
|
"uses": ["6:20"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -19,55 +19,55 @@ OUTPUT:
|
|||||||
"usr": "c:@S@CompilationEntry",
|
"usr": "c:@S@CompilationEntry",
|
||||||
"short_name": "CompilationEntry",
|
"short_name": "CompilationEntry",
|
||||||
"qualified_name": "CompilationEntry",
|
"qualified_name": "CompilationEntry",
|
||||||
"definition": "1:6:8",
|
"definition": "6:8",
|
||||||
"vars": [0, 1, 2],
|
"vars": [0, 1, 2],
|
||||||
"uses": ["*1:6:8", "*1:12:13"]
|
"uses": ["*6:8", "*12:13"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@N@std@T@string",
|
"usr": "c:@N@std@T@string",
|
||||||
"instantiations": [0, 1],
|
"instantiations": [0, 1],
|
||||||
"uses": ["*1:7:8", "*1:8:8", "*1:9:20"]
|
"uses": ["*7:8", "*8:8", "*9:20"]
|
||||||
}, {
|
}, {
|
||||||
"id": 2,
|
"id": 2,
|
||||||
"usr": "c:@N@std@ST>2#T#T@vector",
|
"usr": "c:@N@std@ST>2#T#T@vector",
|
||||||
"instantiations": [2],
|
"instantiations": [2],
|
||||||
"uses": ["*1:9:8", "*1:12:6"]
|
"uses": ["*9:8", "*12:6"]
|
||||||
}],
|
}],
|
||||||
"funcs": [{
|
"funcs": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@F@LoadCompilationEntriesFromDirectory#&1$@N@std@S@basic_string>#C#$@N@std@S@char_traits>#C#$@N@std@S@allocator>#C#",
|
"usr": "c:@F@LoadCompilationEntriesFromDirectory#&1$@N@std@S@basic_string>#C#$@N@std@S@char_traits>#C#$@N@std@S@allocator>#C#",
|
||||||
"short_name": "LoadCompilationEntriesFromDirectory",
|
"short_name": "LoadCompilationEntriesFromDirectory",
|
||||||
"qualified_name": "LoadCompilationEntriesFromDirectory",
|
"qualified_name": "LoadCompilationEntriesFromDirectory",
|
||||||
"declarations": ["1:12:31"],
|
"declarations": ["12:31"],
|
||||||
"uses": ["1:12:31"]
|
"uses": ["12:31"]
|
||||||
}],
|
}],
|
||||||
"vars": [{
|
"vars": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@S@CompilationEntry@FI@directory",
|
"usr": "c:@S@CompilationEntry@FI@directory",
|
||||||
"short_name": "directory",
|
"short_name": "directory",
|
||||||
"qualified_name": "CompilationEntry::directory",
|
"qualified_name": "CompilationEntry::directory",
|
||||||
"definition": "1:7:15",
|
"definition": "7:15",
|
||||||
"variable_type": 1,
|
"variable_type": 1,
|
||||||
"declaring_type": 0,
|
"declaring_type": 0,
|
||||||
"uses": ["1:7:15"]
|
"uses": ["7:15"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@S@CompilationEntry@FI@filename",
|
"usr": "c:@S@CompilationEntry@FI@filename",
|
||||||
"short_name": "filename",
|
"short_name": "filename",
|
||||||
"qualified_name": "CompilationEntry::filename",
|
"qualified_name": "CompilationEntry::filename",
|
||||||
"definition": "1:8:15",
|
"definition": "8:15",
|
||||||
"variable_type": 1,
|
"variable_type": 1,
|
||||||
"declaring_type": 0,
|
"declaring_type": 0,
|
||||||
"uses": ["1:8:15"]
|
"uses": ["8:15"]
|
||||||
}, {
|
}, {
|
||||||
"id": 2,
|
"id": 2,
|
||||||
"usr": "c:@S@CompilationEntry@FI@args",
|
"usr": "c:@S@CompilationEntry@FI@args",
|
||||||
"short_name": "args",
|
"short_name": "args",
|
||||||
"qualified_name": "CompilationEntry::args",
|
"qualified_name": "CompilationEntry::args",
|
||||||
"definition": "1:9:28",
|
"definition": "9:28",
|
||||||
"variable_type": 2,
|
"variable_type": 2,
|
||||||
"declaring_type": 0,
|
"declaring_type": 0,
|
||||||
"uses": ["1:9:28"]
|
"uses": ["9:28"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
@ -15,26 +15,26 @@ OUTPUT:
|
|||||||
"usr": "c:@ST>1#T@Template",
|
"usr": "c:@ST>1#T@Template",
|
||||||
"short_name": "Template",
|
"short_name": "Template",
|
||||||
"qualified_name": "Template",
|
"qualified_name": "Template",
|
||||||
"definition": "1:2:7",
|
"definition": "2:7",
|
||||||
"uses": ["*1:2:7", "1:5:12", "*1:8:15"]
|
"uses": ["*2:7", "5:12", "*8:15"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@S@Foo",
|
"usr": "c:@S@Foo",
|
||||||
"short_name": "Foo",
|
"short_name": "Foo",
|
||||||
"qualified_name": "Foo",
|
"qualified_name": "Foo",
|
||||||
"definition": "1:4:8",
|
"definition": "4:8",
|
||||||
"funcs": [0],
|
"funcs": [0],
|
||||||
"uses": ["*1:4:8", "1:8:6"]
|
"uses": ["*4:8", "8:6"]
|
||||||
}],
|
}],
|
||||||
"funcs": [{
|
"funcs": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@S@Foo@F@Bar#&$@S@Template>#d#",
|
"usr": "c:@S@Foo@F@Bar#&$@S@Template>#d#",
|
||||||
"short_name": "Bar",
|
"short_name": "Bar",
|
||||||
"qualified_name": "Foo::Bar",
|
"qualified_name": "Foo::Bar",
|
||||||
"declarations": ["1:5:8"],
|
"declarations": ["5:8"],
|
||||||
"definition": "1:8:11",
|
"definition": "8:11",
|
||||||
"declaring_type": 1,
|
"declaring_type": 1,
|
||||||
"uses": ["1:5:8", "1:8:11"]
|
"uses": ["5:8", "8:11"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -22,42 +22,42 @@ OUTPUT:
|
|||||||
"usr": "c:@N@ns@E@VarType",
|
"usr": "c:@N@ns@E@VarType",
|
||||||
"short_name": "VarType",
|
"short_name": "VarType",
|
||||||
"qualified_name": "ns::VarType",
|
"qualified_name": "ns::VarType",
|
||||||
"definition": "1:2:8",
|
"definition": "2:8",
|
||||||
"instantiations": [0],
|
"instantiations": [0],
|
||||||
"uses": ["*1:2:8", "*1:6:22", "*1:6:44", "*1:10:18"]
|
"uses": ["*2:8", "*6:22", "*6:44", "*10:18"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@N@ns@ST>1#T@Holder",
|
"usr": "c:@N@ns@ST>1#T@Holder",
|
||||||
"short_name": "Holder",
|
"short_name": "Holder",
|
||||||
"qualified_name": "ns::Holder",
|
"qualified_name": "ns::Holder",
|
||||||
"definition": "1:5:10",
|
"definition": "5:10",
|
||||||
"vars": [0],
|
"vars": [0],
|
||||||
"uses": ["*1:5:10", "*1:10:26", "1:13:13", "1:14:14"]
|
"uses": ["*5:10", "*10:26", "13:13", "14:14"]
|
||||||
}],
|
}],
|
||||||
"vars": [{
|
"vars": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@N@ns@ST>1#T@Holder@static_var",
|
"usr": "c:@N@ns@ST>1#T@Holder@static_var",
|
||||||
"short_name": "static_var",
|
"short_name": "static_var",
|
||||||
"qualified_name": "ns::Holder::static_var",
|
"qualified_name": "ns::Holder::static_var",
|
||||||
"declaration": "1:6:30",
|
"declaration": "6:30",
|
||||||
"definition": "1:10:37",
|
"definition": "10:37",
|
||||||
"variable_type": 0,
|
"variable_type": 0,
|
||||||
"declaring_type": 1,
|
"declaring_type": 1,
|
||||||
"uses": ["1:6:30", "1:10:37", "1:13:26", "1:14:27"]
|
"uses": ["6:30", "10:37", "13:26", "14:27"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@N@ns@Foo",
|
"usr": "c:@N@ns@Foo",
|
||||||
"short_name": "Foo",
|
"short_name": "Foo",
|
||||||
"qualified_name": "ns::Foo",
|
"qualified_name": "ns::Foo",
|
||||||
"definition": "1:13:7",
|
"definition": "13:7",
|
||||||
"uses": ["1:13:7"]
|
"uses": ["13:7"]
|
||||||
}, {
|
}, {
|
||||||
"id": 2,
|
"id": 2,
|
||||||
"usr": "c:@N@ns@Foo2",
|
"usr": "c:@N@ns@Foo2",
|
||||||
"short_name": "Foo2",
|
"short_name": "Foo2",
|
||||||
"qualified_name": "ns::Foo2",
|
"qualified_name": "ns::Foo2",
|
||||||
"definition": "1:14:7",
|
"definition": "14:7",
|
||||||
"uses": ["1:14:7"]
|
"uses": ["14:7"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -19,33 +19,33 @@ OUTPUT:
|
|||||||
"usr": "c:@N@ns@ST>1#T@Foo",
|
"usr": "c:@N@ns@ST>1#T@Foo",
|
||||||
"short_name": "Foo",
|
"short_name": "Foo",
|
||||||
"qualified_name": "ns::Foo",
|
"qualified_name": "ns::Foo",
|
||||||
"definition": "1:3:10",
|
"definition": "3:10",
|
||||||
"funcs": [0],
|
"funcs": [0],
|
||||||
"uses": ["*1:3:10", "1:10:11", "1:11:11"]
|
"uses": ["*3:10", "10:11", "11:11"]
|
||||||
}],
|
}],
|
||||||
"funcs": [{
|
"funcs": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@N@ns@ST>1#T@Foo@FT@>1#Tfoo#I#S",
|
"usr": "c:@N@ns@ST>1#T@Foo@FT@>1#Tfoo#I#S",
|
||||||
"short_name": "foo",
|
"short_name": "foo",
|
||||||
"qualified_name": "ns::Foo::foo",
|
"qualified_name": "ns::Foo::foo",
|
||||||
"definition": "1:5:16",
|
"definition": "5:16",
|
||||||
"declaring_type": 0,
|
"declaring_type": 0,
|
||||||
"uses": ["1:5:16", "1:10:21", "1:11:22"]
|
"uses": ["5:16", "10:21", "11:22"]
|
||||||
}],
|
}],
|
||||||
"vars": [{
|
"vars": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@N@ns@a",
|
"usr": "c:@N@ns@a",
|
||||||
"short_name": "a",
|
"short_name": "a",
|
||||||
"qualified_name": "ns::a",
|
"qualified_name": "ns::a",
|
||||||
"definition": "1:10:7",
|
"definition": "10:7",
|
||||||
"uses": ["1:10:7"]
|
"uses": ["10:7"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@N@ns@b",
|
"usr": "c:@N@ns@b",
|
||||||
"short_name": "b",
|
"short_name": "b",
|
||||||
"qualified_name": "ns::b",
|
"qualified_name": "ns::b",
|
||||||
"definition": "1:11:7",
|
"definition": "11:7",
|
||||||
"uses": ["1:11:7"]
|
"uses": ["11:7"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -14,26 +14,26 @@ OUTPUT:
|
|||||||
"usr": "c:@N@ns@ST>1#T@Foo",
|
"usr": "c:@N@ns@ST>1#T@Foo",
|
||||||
"short_name": "Foo",
|
"short_name": "Foo",
|
||||||
"qualified_name": "ns::Foo",
|
"qualified_name": "ns::Foo",
|
||||||
"definition": "1:3:9",
|
"definition": "3:9",
|
||||||
"instantiations": [0, 1],
|
"instantiations": [0, 1],
|
||||||
"uses": ["*1:3:9", "*1:5:3", "*1:6:3"]
|
"uses": ["*3:9", "*5:3", "*6:3"]
|
||||||
}],
|
}],
|
||||||
"vars": [{
|
"vars": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@N@ns@a",
|
"usr": "c:@N@ns@a",
|
||||||
"short_name": "a",
|
"short_name": "a",
|
||||||
"qualified_name": "ns::a",
|
"qualified_name": "ns::a",
|
||||||
"definition": "1:5:12",
|
"definition": "5:12",
|
||||||
"variable_type": 0,
|
"variable_type": 0,
|
||||||
"uses": ["1:5:12"]
|
"uses": ["5:12"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@N@ns@b",
|
"usr": "c:@N@ns@b",
|
||||||
"short_name": "b",
|
"short_name": "b",
|
||||||
"qualified_name": "ns::b",
|
"qualified_name": "ns::b",
|
||||||
"definition": "1:6:13",
|
"definition": "6:13",
|
||||||
"variable_type": 0,
|
"variable_type": 0,
|
||||||
"uses": ["1:6:13"]
|
"uses": ["6:13"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -20,19 +20,19 @@ OUTPUT:
|
|||||||
"usr": "c:@ST>1#T@Template",
|
"usr": "c:@ST>1#T@Template",
|
||||||
"short_name": "Template",
|
"short_name": "Template",
|
||||||
"qualified_name": "Template",
|
"qualified_name": "Template",
|
||||||
"definition": "1:2:7",
|
"definition": "2:7",
|
||||||
"funcs": [0],
|
"funcs": [0],
|
||||||
"uses": ["*1:2:7", "*1:7:6", "1:9:6"]
|
"uses": ["*2:7", "*7:6", "9:6"]
|
||||||
}],
|
}],
|
||||||
"funcs": [{
|
"funcs": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@ST>1#T@Template@F@Foo#",
|
"usr": "c:@ST>1#T@Template@F@Foo#",
|
||||||
"short_name": "Foo",
|
"short_name": "Foo",
|
||||||
"qualified_name": "Template::Foo",
|
"qualified_name": "Template::Foo",
|
||||||
"declarations": ["1:3:8", "1:9:22"],
|
"declarations": ["3:8", "9:22"],
|
||||||
"definition": "1:7:19",
|
"definition": "7:19",
|
||||||
"declaring_type": 0,
|
"declaring_type": 0,
|
||||||
"uses": ["1:3:8", "1:7:19", "1:9:22"]
|
"uses": ["3:8", "7:19", "9:22"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -16,33 +16,33 @@ OUTPUT:
|
|||||||
"usr": "c:@ST>1#T@Foo",
|
"usr": "c:@ST>1#T@Foo",
|
||||||
"short_name": "Foo",
|
"short_name": "Foo",
|
||||||
"qualified_name": "Foo",
|
"qualified_name": "Foo",
|
||||||
"definition": "1:2:8",
|
"definition": "2:8",
|
||||||
"funcs": [0],
|
"funcs": [0],
|
||||||
"uses": ["*1:2:8", "1:8:9", "1:9:9"]
|
"uses": ["*2:8", "8:9", "9:9"]
|
||||||
}],
|
}],
|
||||||
"funcs": [{
|
"funcs": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@ST>1#T@Foo@F@foo#S",
|
"usr": "c:@ST>1#T@Foo@F@foo#S",
|
||||||
"short_name": "foo",
|
"short_name": "foo",
|
||||||
"qualified_name": "Foo::foo",
|
"qualified_name": "Foo::foo",
|
||||||
"definition": "1:3:14",
|
"definition": "3:14",
|
||||||
"declaring_type": 0,
|
"declaring_type": 0,
|
||||||
"uses": ["1:3:14", "1:8:19", "1:9:20"]
|
"uses": ["3:14", "8:19", "9:20"]
|
||||||
}],
|
}],
|
||||||
"vars": [{
|
"vars": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@a",
|
"usr": "c:@a",
|
||||||
"short_name": "a",
|
"short_name": "a",
|
||||||
"qualified_name": "a",
|
"qualified_name": "a",
|
||||||
"definition": "1:8:5",
|
"definition": "8:5",
|
||||||
"uses": ["1:8:5"]
|
"uses": ["8:5"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@b",
|
"usr": "c:@b",
|
||||||
"short_name": "b",
|
"short_name": "b",
|
||||||
"qualified_name": "b",
|
"qualified_name": "b",
|
||||||
"definition": "1:9:5",
|
"definition": "9:5",
|
||||||
"uses": ["1:9:5"]
|
"uses": ["9:5"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -17,33 +17,33 @@ OUTPUT:
|
|||||||
"usr": "c:@ST>1#T@Foo",
|
"usr": "c:@ST>1#T@Foo",
|
||||||
"short_name": "Foo",
|
"short_name": "Foo",
|
||||||
"qualified_name": "Foo",
|
"qualified_name": "Foo",
|
||||||
"definition": "1:2:8",
|
"definition": "2:8",
|
||||||
"funcs": [0],
|
"funcs": [0],
|
||||||
"uses": ["*1:2:8", "1:9:9", "1:10:9"]
|
"uses": ["*2:8", "9:9", "10:9"]
|
||||||
}],
|
}],
|
||||||
"funcs": [{
|
"funcs": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@ST>1#T@Foo@FT@>1#Tfoo#I#S",
|
"usr": "c:@ST>1#T@Foo@FT@>1#Tfoo#I#S",
|
||||||
"short_name": "foo",
|
"short_name": "foo",
|
||||||
"qualified_name": "Foo::foo",
|
"qualified_name": "Foo::foo",
|
||||||
"definition": "1:4:14",
|
"definition": "4:14",
|
||||||
"declaring_type": 0,
|
"declaring_type": 0,
|
||||||
"uses": ["1:4:14", "1:9:19", "1:10:20"]
|
"uses": ["4:14", "9:19", "10:20"]
|
||||||
}],
|
}],
|
||||||
"vars": [{
|
"vars": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@a",
|
"usr": "c:@a",
|
||||||
"short_name": "a",
|
"short_name": "a",
|
||||||
"qualified_name": "a",
|
"qualified_name": "a",
|
||||||
"definition": "1:9:5",
|
"definition": "9:5",
|
||||||
"uses": ["1:9:5"]
|
"uses": ["9:5"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@b",
|
"usr": "c:@b",
|
||||||
"short_name": "b",
|
"short_name": "b",
|
||||||
"qualified_name": "b",
|
"qualified_name": "b",
|
||||||
"definition": "1:10:5",
|
"definition": "10:5",
|
||||||
"uses": ["1:10:5"]
|
"uses": ["10:5"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -35,47 +35,47 @@ OUTPUT:
|
|||||||
"usr": "c:@E@A",
|
"usr": "c:@E@A",
|
||||||
"short_name": "A",
|
"short_name": "A",
|
||||||
"qualified_name": "A",
|
"qualified_name": "A",
|
||||||
"definition": "1:1:6",
|
"definition": "1:6",
|
||||||
"uses": ["*1:1:6", "*1:9:5"]
|
"uses": ["*1:6", "*9:5"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@E@B",
|
"usr": "c:@E@B",
|
||||||
"short_name": "B",
|
"short_name": "B",
|
||||||
"qualified_name": "B",
|
"qualified_name": "B",
|
||||||
"definition": "1:2:6",
|
"definition": "2:6",
|
||||||
"uses": ["*1:2:6", "*1:10:5"]
|
"uses": ["*2:6", "*10:5"]
|
||||||
}, {
|
}, {
|
||||||
"id": 2,
|
"id": 2,
|
||||||
"usr": "c:@ST>1#T@Foo",
|
"usr": "c:@ST>1#T@Foo",
|
||||||
"short_name": "Foo",
|
"short_name": "Foo",
|
||||||
"qualified_name": "Foo",
|
"qualified_name": "Foo",
|
||||||
"definition": "1:5:8",
|
"definition": "5:8",
|
||||||
"uses": ["*1:5:8", "*1:9:1", "*1:10:1"]
|
"uses": ["*5:8", "*9:1", "*10:1"]
|
||||||
}, {
|
}, {
|
||||||
"id": 3,
|
"id": 3,
|
||||||
"usr": "c:@ST>1#T@Foo@S@Inner",
|
"usr": "c:@ST>1#T@Foo@S@Inner",
|
||||||
"short_name": "Inner",
|
"short_name": "Inner",
|
||||||
"qualified_name": "Foo::Inner",
|
"qualified_name": "Foo::Inner",
|
||||||
"definition": "1:6:10",
|
"definition": "6:10",
|
||||||
"instantiations": [0, 1],
|
"instantiations": [0, 1],
|
||||||
"uses": ["*1:6:10", "*1:9:9", "*1:10:9"]
|
"uses": ["*6:10", "*9:9", "*10:9"]
|
||||||
}],
|
}],
|
||||||
"vars": [{
|
"vars": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@a",
|
"usr": "c:@a",
|
||||||
"short_name": "a",
|
"short_name": "a",
|
||||||
"qualified_name": "a",
|
"qualified_name": "a",
|
||||||
"definition": "1:9:15",
|
"definition": "9:15",
|
||||||
"variable_type": 3,
|
"variable_type": 3,
|
||||||
"uses": ["1:9:15"]
|
"uses": ["9:15"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@b",
|
"usr": "c:@b",
|
||||||
"short_name": "b",
|
"short_name": "b",
|
||||||
"qualified_name": "b",
|
"qualified_name": "b",
|
||||||
"definition": "1:10:15",
|
"definition": "10:15",
|
||||||
"variable_type": 3,
|
"variable_type": 3,
|
||||||
"uses": ["1:10:15"]
|
"uses": ["10:15"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -14,30 +14,30 @@ OUTPUT:
|
|||||||
"usr": "c:@ST>1#T@Foo",
|
"usr": "c:@ST>1#T@Foo",
|
||||||
"short_name": "Foo",
|
"short_name": "Foo",
|
||||||
"qualified_name": "Foo",
|
"qualified_name": "Foo",
|
||||||
"definition": "1:2:8",
|
"definition": "2:8",
|
||||||
"uses": ["*1:2:8", "1:6:9", "1:7:9"]
|
"uses": ["*2:8", "6:9", "7:9"]
|
||||||
}],
|
}],
|
||||||
"vars": [{
|
"vars": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@ST>1#T@Foo@var",
|
"usr": "c:@ST>1#T@Foo@var",
|
||||||
"short_name": "var",
|
"short_name": "var",
|
||||||
"qualified_name": "Foo::var",
|
"qualified_name": "Foo::var",
|
||||||
"declaration": "1:3:24",
|
"declaration": "3:24",
|
||||||
"uses": ["1:3:24", "1:6:19", "1:7:20"]
|
"uses": ["3:24", "6:19", "7:20"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@a",
|
"usr": "c:@a",
|
||||||
"short_name": "a",
|
"short_name": "a",
|
||||||
"qualified_name": "a",
|
"qualified_name": "a",
|
||||||
"definition": "1:6:5",
|
"definition": "6:5",
|
||||||
"uses": ["1:6:5"]
|
"uses": ["6:5"]
|
||||||
}, {
|
}, {
|
||||||
"id": 2,
|
"id": 2,
|
||||||
"usr": "c:@b",
|
"usr": "c:@b",
|
||||||
"short_name": "b",
|
"short_name": "b",
|
||||||
"qualified_name": "b",
|
"qualified_name": "b",
|
||||||
"definition": "1:7:5",
|
"definition": "7:5",
|
||||||
"uses": ["1:7:5"]
|
"uses": ["7:5"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -17,23 +17,23 @@ OUTPUT:
|
|||||||
"usr": "c:template_func_usage_folded_into_one.cc@FT@>1#Tfoo#I#",
|
"usr": "c:template_func_usage_folded_into_one.cc@FT@>1#Tfoo#I#",
|
||||||
"short_name": "foo",
|
"short_name": "foo",
|
||||||
"qualified_name": "foo",
|
"qualified_name": "foo",
|
||||||
"definition": "1:2:12",
|
"definition": "2:12",
|
||||||
"uses": ["1:2:12", "1:6:9", "1:7:9"]
|
"uses": ["2:12", "6:9", "7:9"]
|
||||||
}],
|
}],
|
||||||
"vars": [{
|
"vars": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@a",
|
"usr": "c:@a",
|
||||||
"short_name": "a",
|
"short_name": "a",
|
||||||
"qualified_name": "a",
|
"qualified_name": "a",
|
||||||
"definition": "1:6:5",
|
"definition": "6:5",
|
||||||
"uses": ["1:6:5"]
|
"uses": ["6:5"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@b",
|
"usr": "c:@b",
|
||||||
"short_name": "b",
|
"short_name": "b",
|
||||||
"qualified_name": "b",
|
"qualified_name": "b",
|
||||||
"definition": "1:7:5",
|
"definition": "7:5",
|
||||||
"uses": ["1:7:5"]
|
"uses": ["7:5"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -12,26 +12,26 @@ OUTPUT:
|
|||||||
"usr": "c:@ST>1#T@Foo",
|
"usr": "c:@ST>1#T@Foo",
|
||||||
"short_name": "Foo",
|
"short_name": "Foo",
|
||||||
"qualified_name": "Foo",
|
"qualified_name": "Foo",
|
||||||
"definition": "1:2:7",
|
"definition": "2:7",
|
||||||
"instantiations": [0, 1],
|
"instantiations": [0, 1],
|
||||||
"uses": ["*1:2:7", "*1:4:1", "*1:5:1"]
|
"uses": ["*2:7", "*4:1", "*5:1"]
|
||||||
}],
|
}],
|
||||||
"vars": [{
|
"vars": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@a",
|
"usr": "c:@a",
|
||||||
"short_name": "a",
|
"short_name": "a",
|
||||||
"qualified_name": "a",
|
"qualified_name": "a",
|
||||||
"definition": "1:4:10",
|
"definition": "4:10",
|
||||||
"variable_type": 0,
|
"variable_type": 0,
|
||||||
"uses": ["1:4:10"]
|
"uses": ["4:10"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@b",
|
"usr": "c:@b",
|
||||||
"short_name": "b",
|
"short_name": "b",
|
||||||
"qualified_name": "b",
|
"qualified_name": "b",
|
||||||
"definition": "1:5:11",
|
"definition": "5:11",
|
||||||
"variable_type": 0,
|
"variable_type": 0,
|
||||||
"uses": ["1:5:11"]
|
"uses": ["5:11"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -35,41 +35,41 @@ OUTPUT:
|
|||||||
"usr": "c:@E@A",
|
"usr": "c:@E@A",
|
||||||
"short_name": "A",
|
"short_name": "A",
|
||||||
"qualified_name": "A",
|
"qualified_name": "A",
|
||||||
"definition": "1:1:6",
|
"definition": "1:6",
|
||||||
"uses": ["*1:1:6", "1:7:13"]
|
"uses": ["*1:6", "7:13"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@E@B",
|
"usr": "c:@E@B",
|
||||||
"short_name": "B",
|
"short_name": "B",
|
||||||
"qualified_name": "B",
|
"qualified_name": "B",
|
||||||
"definition": "1:2:6",
|
"definition": "2:6",
|
||||||
"uses": ["*1:2:6", "1:8:13"]
|
"uses": ["*2:6", "8:13"]
|
||||||
}, {
|
}, {
|
||||||
"id": 2,
|
"id": 2,
|
||||||
"usr": "c:template_var_usage_folded_into_one.cc@35",
|
"usr": "c:template_var_usage_folded_into_one.cc@35",
|
||||||
"uses": ["*1:5:1"]
|
"uses": ["*5:1"]
|
||||||
}],
|
}],
|
||||||
"vars": [{
|
"vars": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@VT>1#T@var",
|
"usr": "c:@VT>1#T@var",
|
||||||
"short_name": "var",
|
"short_name": "var",
|
||||||
"qualified_name": "var",
|
"qualified_name": "var",
|
||||||
"definition": "1:5:3",
|
"definition": "5:3",
|
||||||
"uses": ["1:5:3", "1:7:9", "1:8:9"]
|
"uses": ["5:3", "7:9", "8:9"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@a",
|
"usr": "c:@a",
|
||||||
"short_name": "a",
|
"short_name": "a",
|
||||||
"qualified_name": "a",
|
"qualified_name": "a",
|
||||||
"definition": "1:7:5",
|
"definition": "7:5",
|
||||||
"uses": ["1:7:5"]
|
"uses": ["7:5"]
|
||||||
}, {
|
}, {
|
||||||
"id": 2,
|
"id": 2,
|
||||||
"usr": "c:@b",
|
"usr": "c:@b",
|
||||||
"short_name": "b",
|
"short_name": "b",
|
||||||
"qualified_name": "b",
|
"qualified_name": "b",
|
||||||
"definition": "1:8:5",
|
"definition": "8:5",
|
||||||
"uses": ["1:8:5"]
|
"uses": ["8:5"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -11,50 +11,50 @@ OUTPUT:
|
|||||||
"usr": "c:@U@vector3",
|
"usr": "c:@U@vector3",
|
||||||
"short_name": "vector3",
|
"short_name": "vector3",
|
||||||
"qualified_name": "vector3",
|
"qualified_name": "vector3",
|
||||||
"definition": "1:1:7",
|
"definition": "1:7",
|
||||||
"vars": [3],
|
"vars": [3],
|
||||||
"uses": ["*1:1:7"]
|
"uses": ["*1:7"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@U@vector3@Sa",
|
"usr": "c:@U@vector3@Sa",
|
||||||
"short_name": "<anonymous>",
|
"short_name": "<anonymous>",
|
||||||
"qualified_name": "vector3::<anonymous>",
|
"qualified_name": "vector3::<anonymous>",
|
||||||
"definition": "1:2:3",
|
"definition": "2:3",
|
||||||
"vars": [0, 1, 2],
|
"vars": [0, 1, 2],
|
||||||
"uses": ["*1:2:3"]
|
"uses": ["*2:3"]
|
||||||
}],
|
}],
|
||||||
"vars": [{
|
"vars": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@U@vector3@Sa@FI@x",
|
"usr": "c:@U@vector3@Sa@FI@x",
|
||||||
"short_name": "x",
|
"short_name": "x",
|
||||||
"qualified_name": "x",
|
"qualified_name": "x",
|
||||||
"definition": "1:2:18",
|
"definition": "2:18",
|
||||||
"declaring_type": 1,
|
"declaring_type": 1,
|
||||||
"uses": ["1:2:18"]
|
"uses": ["2:18"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@U@vector3@Sa@FI@y",
|
"usr": "c:@U@vector3@Sa@FI@y",
|
||||||
"short_name": "y",
|
"short_name": "y",
|
||||||
"qualified_name": "y",
|
"qualified_name": "y",
|
||||||
"definition": "1:2:21",
|
"definition": "2:21",
|
||||||
"declaring_type": 1,
|
"declaring_type": 1,
|
||||||
"uses": ["1:2:21"]
|
"uses": ["2:21"]
|
||||||
}, {
|
}, {
|
||||||
"id": 2,
|
"id": 2,
|
||||||
"usr": "c:@U@vector3@Sa@FI@z",
|
"usr": "c:@U@vector3@Sa@FI@z",
|
||||||
"short_name": "z",
|
"short_name": "z",
|
||||||
"qualified_name": "z",
|
"qualified_name": "z",
|
||||||
"definition": "1:2:24",
|
"definition": "2:24",
|
||||||
"declaring_type": 1,
|
"declaring_type": 1,
|
||||||
"uses": ["1:2:24"]
|
"uses": ["2:24"]
|
||||||
}, {
|
}, {
|
||||||
"id": 3,
|
"id": 3,
|
||||||
"usr": "c:@U@vector3@FI@v",
|
"usr": "c:@U@vector3@FI@v",
|
||||||
"short_name": "v",
|
"short_name": "v",
|
||||||
"qualified_name": "vector3::v",
|
"qualified_name": "vector3::v",
|
||||||
"definition": "1:3:9",
|
"definition": "3:9",
|
||||||
"declaring_type": 0,
|
"declaring_type": 0,
|
||||||
"uses": ["1:3:9"]
|
"uses": ["3:9"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -11,26 +11,26 @@ OUTPUT:
|
|||||||
"usr": "c:@U@Foo",
|
"usr": "c:@U@Foo",
|
||||||
"short_name": "Foo",
|
"short_name": "Foo",
|
||||||
"qualified_name": "Foo",
|
"qualified_name": "Foo",
|
||||||
"definition": "1:1:7",
|
"definition": "1:7",
|
||||||
"vars": [0, 1],
|
"vars": [0, 1],
|
||||||
"uses": ["*1:1:7"]
|
"uses": ["*1:7"]
|
||||||
}],
|
}],
|
||||||
"vars": [{
|
"vars": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@U@Foo@FI@a",
|
"usr": "c:@U@Foo@FI@a",
|
||||||
"short_name": "a",
|
"short_name": "a",
|
||||||
"qualified_name": "Foo::a",
|
"qualified_name": "Foo::a",
|
||||||
"definition": "1:2:7",
|
"definition": "2:7",
|
||||||
"declaring_type": 0,
|
"declaring_type": 0,
|
||||||
"uses": ["1:2:7"]
|
"uses": ["2:7"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@U@Foo@FI@b",
|
"usr": "c:@U@Foo@FI@b",
|
||||||
"short_name": "b",
|
"short_name": "b",
|
||||||
"qualified_name": "Foo::b",
|
"qualified_name": "Foo::b",
|
||||||
"definition": "1:3:8",
|
"definition": "3:8",
|
||||||
"declaring_type": 0,
|
"declaring_type": 0,
|
||||||
"uses": ["1:3:8"]
|
"uses": ["3:8"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -19,43 +19,43 @@ OUTPUT:
|
|||||||
"usr": "c:@U@Foo",
|
"usr": "c:@U@Foo",
|
||||||
"short_name": "Foo",
|
"short_name": "Foo",
|
||||||
"qualified_name": "Foo",
|
"qualified_name": "Foo",
|
||||||
"definition": "1:1:7",
|
"definition": "1:7",
|
||||||
"vars": [0, 1],
|
"vars": [0, 1],
|
||||||
"instantiations": [2],
|
"instantiations": [2],
|
||||||
"uses": ["*1:1:7", "*1:6:1", "*1:8:10"]
|
"uses": ["*1:7", "*6:1", "*8:10"]
|
||||||
}],
|
}],
|
||||||
"funcs": [{
|
"funcs": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@F@act#*$@U@Foo#",
|
"usr": "c:@F@act#*$@U@Foo#",
|
||||||
"short_name": "act",
|
"short_name": "act",
|
||||||
"qualified_name": "act",
|
"qualified_name": "act",
|
||||||
"definition": "1:8:6",
|
"definition": "8:6",
|
||||||
"uses": ["1:8:6"]
|
"uses": ["8:6"]
|
||||||
}],
|
}],
|
||||||
"vars": [{
|
"vars": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@U@Foo@FI@a",
|
"usr": "c:@U@Foo@FI@a",
|
||||||
"short_name": "a",
|
"short_name": "a",
|
||||||
"qualified_name": "Foo::a",
|
"qualified_name": "Foo::a",
|
||||||
"definition": "1:2:7",
|
"definition": "2:7",
|
||||||
"declaring_type": 0,
|
"declaring_type": 0,
|
||||||
"uses": ["1:2:7", "1:9:5"]
|
"uses": ["2:7", "9:5"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@U@Foo@FI@b",
|
"usr": "c:@U@Foo@FI@b",
|
||||||
"short_name": "b",
|
"short_name": "b",
|
||||||
"qualified_name": "Foo::b",
|
"qualified_name": "Foo::b",
|
||||||
"definition": "1:3:8",
|
"definition": "3:8",
|
||||||
"declaring_type": 0,
|
"declaring_type": 0,
|
||||||
"uses": ["1:3:8"]
|
"uses": ["3:8"]
|
||||||
}, {
|
}, {
|
||||||
"id": 2,
|
"id": 2,
|
||||||
"usr": "c:@f",
|
"usr": "c:@f",
|
||||||
"short_name": "f",
|
"short_name": "f",
|
||||||
"qualified_name": "f",
|
"qualified_name": "f",
|
||||||
"definition": "1:6:5",
|
"definition": "6:5",
|
||||||
"variable_type": 0,
|
"variable_type": 0,
|
||||||
"uses": ["1:6:5", "1:9:3"]
|
"uses": ["6:5", "9:3"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -15,33 +15,33 @@ OUTPUT:
|
|||||||
"usr": "c:@F@consume#*v#",
|
"usr": "c:@F@consume#*v#",
|
||||||
"short_name": "consume",
|
"short_name": "consume",
|
||||||
"qualified_name": "consume",
|
"qualified_name": "consume",
|
||||||
"definition": "1:1:6",
|
"definition": "1:6",
|
||||||
"callers": ["2@1:7:3"],
|
"callers": ["2@7:3"],
|
||||||
"uses": ["1:1:6", "1:7:3"]
|
"uses": ["1:6", "7:3"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@F@used#",
|
"usr": "c:@F@used#",
|
||||||
"short_name": "used",
|
"short_name": "used",
|
||||||
"qualified_name": "used",
|
"qualified_name": "used",
|
||||||
"definition": "1:3:6",
|
"definition": "3:6",
|
||||||
"callers": ["2@1:6:13", "2@1:7:12"],
|
"callers": ["2@6:13", "2@7:12"],
|
||||||
"uses": ["1:3:6", "1:6:13", "1:7:12"]
|
"uses": ["3:6", "6:13", "7:12"]
|
||||||
}, {
|
}, {
|
||||||
"id": 2,
|
"id": 2,
|
||||||
"usr": "c:@F@user#",
|
"usr": "c:@F@user#",
|
||||||
"short_name": "user",
|
"short_name": "user",
|
||||||
"qualified_name": "user",
|
"qualified_name": "user",
|
||||||
"definition": "1:5:6",
|
"definition": "5:6",
|
||||||
"callees": ["1@1:6:13", "0@1:7:3", "1@1:7:12"],
|
"callees": ["1@6:13", "0@7:3", "1@7:12"],
|
||||||
"uses": ["1:5:6"]
|
"uses": ["5:6"]
|
||||||
}],
|
}],
|
||||||
"vars": [{
|
"vars": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:func_usage_addr_func.cc@61@F@user#@x",
|
"usr": "c:func_usage_addr_func.cc@61@F@user#@x",
|
||||||
"short_name": "x",
|
"short_name": "x",
|
||||||
"qualified_name": "x",
|
"qualified_name": "x",
|
||||||
"definition": "1:6:8",
|
"definition": "6:8",
|
||||||
"uses": ["1:6:8"]
|
"uses": ["6:8"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -15,35 +15,35 @@ OUTPUT:
|
|||||||
"usr": "c:@S@Foo",
|
"usr": "c:@S@Foo",
|
||||||
"short_name": "Foo",
|
"short_name": "Foo",
|
||||||
"qualified_name": "Foo",
|
"qualified_name": "Foo",
|
||||||
"definition": "1:1:8",
|
"definition": "1:8",
|
||||||
"funcs": [0],
|
"funcs": [0],
|
||||||
"uses": ["*1:1:8", "1:6:13"]
|
"uses": ["*1:8", "6:13"]
|
||||||
}],
|
}],
|
||||||
"funcs": [{
|
"funcs": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@S@Foo@F@Used#",
|
"usr": "c:@S@Foo@F@Used#",
|
||||||
"short_name": "Used",
|
"short_name": "Used",
|
||||||
"qualified_name": "Foo::Used",
|
"qualified_name": "Foo::Used",
|
||||||
"declarations": ["1:2:8"],
|
"declarations": ["2:8"],
|
||||||
"declaring_type": 0,
|
"declaring_type": 0,
|
||||||
"callers": ["1@1:6:18"],
|
"callers": ["1@6:18"],
|
||||||
"uses": ["1:2:8", "1:6:18"]
|
"uses": ["2:8", "6:18"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@F@user#",
|
"usr": "c:@F@user#",
|
||||||
"short_name": "user",
|
"short_name": "user",
|
||||||
"qualified_name": "user",
|
"qualified_name": "user",
|
||||||
"definition": "1:5:6",
|
"definition": "5:6",
|
||||||
"callees": ["0@1:6:18"],
|
"callees": ["0@6:18"],
|
||||||
"uses": ["1:5:6"]
|
"uses": ["5:6"]
|
||||||
}],
|
}],
|
||||||
"vars": [{
|
"vars": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:func_usage_addr_method.cc@53@F@user#@x",
|
"usr": "c:func_usage_addr_method.cc@53@F@user#@x",
|
||||||
"short_name": "x",
|
"short_name": "x",
|
||||||
"qualified_name": "x",
|
"qualified_name": "x",
|
||||||
"definition": "1:6:8",
|
"definition": "6:8",
|
||||||
"uses": ["1:6:8"]
|
"uses": ["6:8"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -11,17 +11,17 @@ OUTPUT:
|
|||||||
"usr": "c:@F@called#",
|
"usr": "c:@F@called#",
|
||||||
"short_name": "called",
|
"short_name": "called",
|
||||||
"qualified_name": "called",
|
"qualified_name": "called",
|
||||||
"definition": "1:1:6",
|
"definition": "1:6",
|
||||||
"callers": ["1@1:3:3"],
|
"callers": ["1@3:3"],
|
||||||
"uses": ["1:1:6", "1:3:3"]
|
"uses": ["1:6", "3:3"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@F@caller#",
|
"usr": "c:@F@caller#",
|
||||||
"short_name": "caller",
|
"short_name": "caller",
|
||||||
"qualified_name": "caller",
|
"qualified_name": "caller",
|
||||||
"definition": "1:2:6",
|
"definition": "2:6",
|
||||||
"callees": ["0@1:3:3"],
|
"callees": ["0@3:3"],
|
||||||
"uses": ["1:2:6"]
|
"uses": ["2:6"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -15,37 +15,37 @@ OUTPUT:
|
|||||||
"usr": "c:@S@Foo",
|
"usr": "c:@S@Foo",
|
||||||
"short_name": "Foo",
|
"short_name": "Foo",
|
||||||
"qualified_name": "Foo",
|
"qualified_name": "Foo",
|
||||||
"definition": "1:1:8",
|
"definition": "1:8",
|
||||||
"funcs": [0],
|
"funcs": [0],
|
||||||
"instantiations": [0],
|
"instantiations": [0],
|
||||||
"uses": ["*1:1:8", "*1:6:3"]
|
"uses": ["*1:8", "*6:3"]
|
||||||
}],
|
}],
|
||||||
"funcs": [{
|
"funcs": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@S@Foo@F@Used#",
|
"usr": "c:@S@Foo@F@Used#",
|
||||||
"short_name": "Used",
|
"short_name": "Used",
|
||||||
"qualified_name": "Foo::Used",
|
"qualified_name": "Foo::Used",
|
||||||
"declarations": ["1:2:8"],
|
"declarations": ["2:8"],
|
||||||
"declaring_type": 0,
|
"declaring_type": 0,
|
||||||
"callers": ["1@1:7:6"],
|
"callers": ["1@7:6"],
|
||||||
"uses": ["1:2:8", "1:7:6"]
|
"uses": ["2:8", "7:6"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@F@user#",
|
"usr": "c:@F@user#",
|
||||||
"short_name": "user",
|
"short_name": "user",
|
||||||
"qualified_name": "user",
|
"qualified_name": "user",
|
||||||
"definition": "1:5:6",
|
"definition": "5:6",
|
||||||
"callees": ["0@1:7:6"],
|
"callees": ["0@7:6"],
|
||||||
"uses": ["1:5:6"]
|
"uses": ["5:6"]
|
||||||
}],
|
}],
|
||||||
"vars": [{
|
"vars": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:func_usage_call_method.cc@53@F@user#@f",
|
"usr": "c:func_usage_call_method.cc@53@F@user#@f",
|
||||||
"short_name": "f",
|
"short_name": "f",
|
||||||
"qualified_name": "f",
|
"qualified_name": "f",
|
||||||
"definition": "1:6:8",
|
"definition": "6:8",
|
||||||
"variable_type": 0,
|
"variable_type": 0,
|
||||||
"uses": ["1:6:8", "1:7:3"]
|
"uses": ["6:8", "7:3"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -14,26 +14,26 @@ OUTPUT:
|
|||||||
"usr": "c:@S@Foo",
|
"usr": "c:@S@Foo",
|
||||||
"short_name": "Foo",
|
"short_name": "Foo",
|
||||||
"qualified_name": "Foo",
|
"qualified_name": "Foo",
|
||||||
"definition": "1:5:7",
|
"definition": "5:7",
|
||||||
"vars": [0],
|
"vars": [0],
|
||||||
"uses": ["*1:5:7"]
|
"uses": ["*5:7"]
|
||||||
}],
|
}],
|
||||||
"funcs": [{
|
"funcs": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:func_usage_class_inline_var_def.cc@F@helper#",
|
"usr": "c:func_usage_class_inline_var_def.cc@F@helper#",
|
||||||
"short_name": "helper",
|
"short_name": "helper",
|
||||||
"qualified_name": "helper",
|
"qualified_name": "helper",
|
||||||
"definition": "1:1:12",
|
"definition": "1:12",
|
||||||
"uses": ["1:1:12", "1:6:11"]
|
"uses": ["1:12", "6:11"]
|
||||||
}],
|
}],
|
||||||
"vars": [{
|
"vars": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@S@Foo@FI@x",
|
"usr": "c:@S@Foo@FI@x",
|
||||||
"short_name": "x",
|
"short_name": "x",
|
||||||
"qualified_name": "Foo::x",
|
"qualified_name": "Foo::x",
|
||||||
"definition": "1:6:7",
|
"definition": "6:7",
|
||||||
"declaring_type": 0,
|
"declaring_type": 0,
|
||||||
"uses": ["1:6:7"]
|
"uses": ["6:7"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -11,17 +11,17 @@ OUTPUT:
|
|||||||
"usr": "c:@F@foo#",
|
"usr": "c:@F@foo#",
|
||||||
"short_name": "foo",
|
"short_name": "foo",
|
||||||
"qualified_name": "foo",
|
"qualified_name": "foo",
|
||||||
"declarations": ["1:1:6"],
|
"declarations": ["1:6"],
|
||||||
"callers": ["1@1:4:3"],
|
"callers": ["1@4:3"],
|
||||||
"uses": ["1:1:6", "1:4:3"]
|
"uses": ["1:6", "4:3"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@F@usage#",
|
"usr": "c:@F@usage#",
|
||||||
"short_name": "usage",
|
"short_name": "usage",
|
||||||
"qualified_name": "usage",
|
"qualified_name": "usage",
|
||||||
"definition": "1:3:6",
|
"definition": "3:6",
|
||||||
"callees": ["0@1:4:3"],
|
"callees": ["0@4:3"],
|
||||||
"uses": ["1:3:6"]
|
"uses": ["3:6"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -14,37 +14,37 @@ OUTPUT:
|
|||||||
"usr": "c:@S@Foo",
|
"usr": "c:@S@Foo",
|
||||||
"short_name": "Foo",
|
"short_name": "Foo",
|
||||||
"qualified_name": "Foo",
|
"qualified_name": "Foo",
|
||||||
"definition": "1:1:8",
|
"definition": "1:8",
|
||||||
"funcs": [0],
|
"funcs": [0],
|
||||||
"instantiations": [0],
|
"instantiations": [0],
|
||||||
"uses": ["*1:1:8", "*1:6:3"]
|
"uses": ["*1:8", "*6:3"]
|
||||||
}],
|
}],
|
||||||
"funcs": [{
|
"funcs": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@S@Foo@F@foo#",
|
"usr": "c:@S@Foo@F@foo#",
|
||||||
"short_name": "foo",
|
"short_name": "foo",
|
||||||
"qualified_name": "Foo::foo",
|
"qualified_name": "Foo::foo",
|
||||||
"declarations": ["1:2:8"],
|
"declarations": ["2:8"],
|
||||||
"declaring_type": 0,
|
"declaring_type": 0,
|
||||||
"callers": ["1@1:7:6"],
|
"callers": ["1@7:6"],
|
||||||
"uses": ["1:2:8", "1:7:6"]
|
"uses": ["2:8", "7:6"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@F@usage#",
|
"usr": "c:@F@usage#",
|
||||||
"short_name": "usage",
|
"short_name": "usage",
|
||||||
"qualified_name": "usage",
|
"qualified_name": "usage",
|
||||||
"definition": "1:5:6",
|
"definition": "5:6",
|
||||||
"callees": ["0@1:7:6"],
|
"callees": ["0@7:6"],
|
||||||
"uses": ["1:5:6"]
|
"uses": ["5:6"]
|
||||||
}],
|
}],
|
||||||
"vars": [{
|
"vars": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:func_usage_forward_decl_method.cc@53@F@usage#@f",
|
"usr": "c:func_usage_forward_decl_method.cc@53@F@usage#@f",
|
||||||
"short_name": "f",
|
"short_name": "f",
|
||||||
"qualified_name": "f",
|
"qualified_name": "f",
|
||||||
"definition": "1:6:8",
|
"definition": "6:8",
|
||||||
"variable_type": 0,
|
"variable_type": 0,
|
||||||
"uses": ["1:6:8", "1:7:3"]
|
"uses": ["6:8", "7:3"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -14,17 +14,17 @@ OUTPUT:
|
|||||||
"usr": "c:@FT@>1#Taccept#t0.0#v#",
|
"usr": "c:@FT@>1#Taccept#t0.0#v#",
|
||||||
"short_name": "accept",
|
"short_name": "accept",
|
||||||
"qualified_name": "accept",
|
"qualified_name": "accept",
|
||||||
"declarations": ["1:2:6"],
|
"declarations": ["2:6"],
|
||||||
"callers": ["1@1:5:3", "1@1:6:3"],
|
"callers": ["1@5:3", "1@6:3"],
|
||||||
"uses": ["1:2:6", "1:5:3", "1:6:3"]
|
"uses": ["2:6", "5:3", "6:3"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@F@foo#",
|
"usr": "c:@F@foo#",
|
||||||
"short_name": "foo",
|
"short_name": "foo",
|
||||||
"qualified_name": "foo",
|
"qualified_name": "foo",
|
||||||
"definition": "1:4:6",
|
"definition": "4:6",
|
||||||
"callees": ["0@1:5:3", "0@1:6:3"],
|
"callees": ["0@5:3", "0@6:3"],
|
||||||
"uses": ["1:4:6"]
|
"uses": ["4:6"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -17,47 +17,47 @@ OUTPUT:
|
|||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@ST>1#T@unique_ptr",
|
"usr": "c:@ST>1#T@unique_ptr",
|
||||||
"instantiations": [0, 1, 2],
|
"instantiations": [0, 1, 2],
|
||||||
"uses": ["1:2:7", "*1:6:8", "*1:7:8", "*1:9:1", "*1:10:3"]
|
"uses": ["2:7", "*6:8", "*7:8", "*9:1", "*10:3"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@S@S",
|
"usr": "c:@S@S",
|
||||||
"short_name": "S",
|
"short_name": "S",
|
||||||
"qualified_name": "S",
|
"qualified_name": "S",
|
||||||
"definition": "1:4:8",
|
"definition": "4:8",
|
||||||
"uses": ["*1:4:8", "*1:7:19", "*1:9:12", "*1:10:14"]
|
"uses": ["*4:8", "*7:19", "*9:12", "*10:14"]
|
||||||
}],
|
}],
|
||||||
"funcs": [{
|
"funcs": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@F@return_type#",
|
"usr": "c:@F@return_type#",
|
||||||
"short_name": "return_type",
|
"short_name": "return_type",
|
||||||
"qualified_name": "return_type",
|
"qualified_name": "return_type",
|
||||||
"definition": "1:9:16",
|
"definition": "9:16",
|
||||||
"uses": ["1:9:16"]
|
"uses": ["9:16"]
|
||||||
}],
|
}],
|
||||||
"vars": [{
|
"vars": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:type_usage_as_template_parameter.cc@f0",
|
"usr": "c:type_usage_as_template_parameter.cc@f0",
|
||||||
"short_name": "f0",
|
"short_name": "f0",
|
||||||
"qualified_name": "f0",
|
"qualified_name": "f0",
|
||||||
"definition": "1:6:25",
|
"definition": "6:25",
|
||||||
"variable_type": 0,
|
"variable_type": 0,
|
||||||
"uses": ["1:6:25"]
|
"uses": ["6:25"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:type_usage_as_template_parameter.cc@f1",
|
"usr": "c:type_usage_as_template_parameter.cc@f1",
|
||||||
"short_name": "f1",
|
"short_name": "f1",
|
||||||
"qualified_name": "f1",
|
"qualified_name": "f1",
|
||||||
"definition": "1:7:22",
|
"definition": "7:22",
|
||||||
"variable_type": 0,
|
"variable_type": 0,
|
||||||
"uses": ["1:7:22"]
|
"uses": ["7:22"]
|
||||||
}, {
|
}, {
|
||||||
"id": 2,
|
"id": 2,
|
||||||
"usr": "c:type_usage_as_template_parameter.cc@150@F@return_type#@local",
|
"usr": "c:type_usage_as_template_parameter.cc@150@F@return_type#@local",
|
||||||
"short_name": "local",
|
"short_name": "local",
|
||||||
"qualified_name": "local",
|
"qualified_name": "local",
|
||||||
"definition": "1:10:18",
|
"definition": "10:18",
|
||||||
"variable_type": 0,
|
"variable_type": 0,
|
||||||
"uses": ["1:10:18"]
|
"uses": ["10:18"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -85,71 +85,71 @@ OUTPUT:
|
|||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@ST>2#T#T@unique_ptr",
|
"usr": "c:@ST>2#T#T@unique_ptr",
|
||||||
"instantiations": [0, 1],
|
"instantiations": [0, 1],
|
||||||
"uses": ["1:2:7", "*1:15:8", "*1:15:19", "*1:33:1", "*1:33:12", "*1:33:52", "*1:54:3", "*1:54:14", "*1:65:3", "*1:79:1"]
|
"uses": ["2:7", "*15:8", "*15:19", "*33:1", "*33:12", "*33:52", "*54:3", "*54:14", "*65:3", "*79:1"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@S@S1",
|
"usr": "c:@S@S1",
|
||||||
"uses": ["1:4:8", "*1:15:30", "*1:33:23", "*1:33:63", "*1:54:25", "*1:65:14", "*1:79:12"]
|
"uses": ["4:8", "*15:30", "*33:23", "*33:63", "*54:25", "*65:14", "*79:12"]
|
||||||
}, {
|
}, {
|
||||||
"id": 2,
|
"id": 2,
|
||||||
"usr": "c:@S@S2",
|
"usr": "c:@S@S2",
|
||||||
"uses": ["1:5:8", "*1:15:34", "*1:15:39", "*1:33:27", "*1:33:32", "*1:33:67", "*1:54:29", "*1:54:34", "*1:65:18", "*1:79:16"]
|
"uses": ["5:8", "*15:34", "*15:39", "*33:27", "*33:32", "*33:67", "*54:29", "*54:34", "*65:18", "*79:16"]
|
||||||
}, {
|
}, {
|
||||||
"id": 3,
|
"id": 3,
|
||||||
"usr": "c:@S@Foo",
|
"usr": "c:@S@Foo",
|
||||||
"short_name": "Foo",
|
"short_name": "Foo",
|
||||||
"qualified_name": "Foo",
|
"qualified_name": "Foo",
|
||||||
"definition": "1:64:7",
|
"definition": "64:7",
|
||||||
"funcs": [3],
|
"funcs": [3],
|
||||||
"uses": ["*1:64:7", "1:79:21"]
|
"uses": ["*64:7", "79:21"]
|
||||||
}],
|
}],
|
||||||
"funcs": [{
|
"funcs": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@F@as_return_type#*$@S@unique_ptr>#$@S@S1#$@S@S2#",
|
"usr": "c:@F@as_return_type#*$@S@unique_ptr>#$@S@S1#$@S@S2#",
|
||||||
"short_name": "as_return_type",
|
"short_name": "as_return_type",
|
||||||
"qualified_name": "as_return_type",
|
"qualified_name": "as_return_type",
|
||||||
"definition": "1:33:37",
|
"definition": "33:37",
|
||||||
"uses": ["1:33:37"]
|
"uses": ["33:37"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@F@no_return_type#I#",
|
"usr": "c:@F@no_return_type#I#",
|
||||||
"short_name": "no_return_type",
|
"short_name": "no_return_type",
|
||||||
"qualified_name": "no_return_type",
|
"qualified_name": "no_return_type",
|
||||||
"definition": "1:40:6",
|
"definition": "40:6",
|
||||||
"uses": ["1:40:6"]
|
"uses": ["40:6"]
|
||||||
}, {
|
}, {
|
||||||
"id": 2,
|
"id": 2,
|
||||||
"usr": "c:@F@empty#",
|
"usr": "c:@F@empty#",
|
||||||
"short_name": "empty",
|
"short_name": "empty",
|
||||||
"qualified_name": "empty",
|
"qualified_name": "empty",
|
||||||
"definition": "1:53:6",
|
"definition": "53:6",
|
||||||
"uses": ["1:53:6"]
|
"uses": ["53:6"]
|
||||||
}, {
|
}, {
|
||||||
"id": 3,
|
"id": 3,
|
||||||
"usr": "c:@S@Foo@F@foo#",
|
"usr": "c:@S@Foo@F@foo#",
|
||||||
"short_name": "foo",
|
"short_name": "foo",
|
||||||
"qualified_name": "Foo::foo",
|
"qualified_name": "Foo::foo",
|
||||||
"declarations": ["1:65:23"],
|
"declarations": ["65:23"],
|
||||||
"definition": "1:79:26",
|
"definition": "79:26",
|
||||||
"declaring_type": 3,
|
"declaring_type": 3,
|
||||||
"uses": ["1:65:23", "1:79:26"]
|
"uses": ["65:23", "79:26"]
|
||||||
}],
|
}],
|
||||||
"vars": [{
|
"vars": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@f",
|
"usr": "c:@f",
|
||||||
"short_name": "f",
|
"short_name": "f",
|
||||||
"qualified_name": "f",
|
"qualified_name": "f",
|
||||||
"declaration": "1:15:43",
|
"declaration": "15:43",
|
||||||
"variable_type": 0,
|
"variable_type": 0,
|
||||||
"uses": ["1:15:43"]
|
"uses": ["15:43"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:type_usage_as_template_parameter_complex.cc@1062@F@empty#@local",
|
"usr": "c:type_usage_as_template_parameter_complex.cc@1062@F@empty#@local",
|
||||||
"short_name": "local",
|
"short_name": "local",
|
||||||
"qualified_name": "local",
|
"qualified_name": "local",
|
||||||
"definition": "1:54:39",
|
"definition": "54:39",
|
||||||
"variable_type": 0,
|
"variable_type": 0,
|
||||||
"uses": ["1:54:39"]
|
"uses": ["54:39"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -13,22 +13,22 @@ OUTPUT:
|
|||||||
"usr": "c:@ST>1#T@unique_ptr",
|
"usr": "c:@ST>1#T@unique_ptr",
|
||||||
"short_name": "unique_ptr",
|
"short_name": "unique_ptr",
|
||||||
"qualified_name": "unique_ptr",
|
"qualified_name": "unique_ptr",
|
||||||
"definition": "1:2:7",
|
"definition": "2:7",
|
||||||
"instantiations": [0],
|
"instantiations": [0],
|
||||||
"uses": ["*1:2:7", "*1:6:8"]
|
"uses": ["*2:7", "*6:8"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@S@S",
|
"usr": "c:@S@S",
|
||||||
"uses": ["1:4:8", "*1:6:19"]
|
"uses": ["4:8", "*6:19"]
|
||||||
}],
|
}],
|
||||||
"vars": [{
|
"vars": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:type_usage_as_template_parameter_simple.cc@foo",
|
"usr": "c:type_usage_as_template_parameter_simple.cc@foo",
|
||||||
"short_name": "foo",
|
"short_name": "foo",
|
||||||
"qualified_name": "foo",
|
"qualified_name": "foo",
|
||||||
"definition": "1:6:22",
|
"definition": "6:22",
|
||||||
"variable_type": 0,
|
"variable_type": 0,
|
||||||
"uses": ["1:6:22"]
|
"uses": ["6:22"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -9,18 +9,18 @@ OUTPUT:
|
|||||||
"usr": "c:@S@T",
|
"usr": "c:@S@T",
|
||||||
"short_name": "T",
|
"short_name": "T",
|
||||||
"qualified_name": "T",
|
"qualified_name": "T",
|
||||||
"definition": "1:1:8",
|
"definition": "1:8",
|
||||||
"instantiations": [0],
|
"instantiations": [0],
|
||||||
"uses": ["*1:1:8", "*1:3:8"]
|
"uses": ["*1:8", "*3:8"]
|
||||||
}],
|
}],
|
||||||
"vars": [{
|
"vars": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@t",
|
"usr": "c:@t",
|
||||||
"short_name": "t",
|
"short_name": "t",
|
||||||
"qualified_name": "t",
|
"qualified_name": "t",
|
||||||
"declaration": "1:3:10",
|
"declaration": "3:10",
|
||||||
"variable_type": 0,
|
"variable_type": 0,
|
||||||
"uses": ["1:3:10"]
|
"uses": ["3:10"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -13,42 +13,42 @@ OUTPUT:
|
|||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@S@ForwardType",
|
"usr": "c:@S@ForwardType",
|
||||||
"instantiations": [0],
|
"instantiations": [0],
|
||||||
"uses": ["1:1:8", "*1:5:3"]
|
"uses": ["1:8", "*5:3"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@S@ImplementedType",
|
"usr": "c:@S@ImplementedType",
|
||||||
"short_name": "ImplementedType",
|
"short_name": "ImplementedType",
|
||||||
"qualified_name": "ImplementedType",
|
"qualified_name": "ImplementedType",
|
||||||
"definition": "1:2:8",
|
"definition": "2:8",
|
||||||
"instantiations": [1],
|
"instantiations": [1],
|
||||||
"uses": ["*1:2:8", "*1:6:3"]
|
"uses": ["*2:8", "*6:3"]
|
||||||
}, {
|
}, {
|
||||||
"id": 2,
|
"id": 2,
|
||||||
"usr": "c:@S@Foo",
|
"usr": "c:@S@Foo",
|
||||||
"short_name": "Foo",
|
"short_name": "Foo",
|
||||||
"qualified_name": "Foo",
|
"qualified_name": "Foo",
|
||||||
"definition": "1:4:8",
|
"definition": "4:8",
|
||||||
"vars": [0, 1],
|
"vars": [0, 1],
|
||||||
"uses": ["*1:4:8"]
|
"uses": ["*4:8"]
|
||||||
}],
|
}],
|
||||||
"vars": [{
|
"vars": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@S@Foo@FI@a",
|
"usr": "c:@S@Foo@FI@a",
|
||||||
"short_name": "a",
|
"short_name": "a",
|
||||||
"qualified_name": "Foo::a",
|
"qualified_name": "Foo::a",
|
||||||
"definition": "1:5:16",
|
"definition": "5:16",
|
||||||
"variable_type": 0,
|
"variable_type": 0,
|
||||||
"declaring_type": 2,
|
"declaring_type": 2,
|
||||||
"uses": ["1:5:16"]
|
"uses": ["5:16"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@S@Foo@FI@b",
|
"usr": "c:@S@Foo@FI@b",
|
||||||
"short_name": "b",
|
"short_name": "b",
|
||||||
"qualified_name": "Foo::b",
|
"qualified_name": "Foo::b",
|
||||||
"definition": "1:6:19",
|
"definition": "6:19",
|
||||||
"variable_type": 1,
|
"variable_type": 1,
|
||||||
"declaring_type": 2,
|
"declaring_type": 2,
|
||||||
"uses": ["1:6:19"]
|
"uses": ["6:19"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -13,40 +13,40 @@ OUTPUT:
|
|||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@S@ForwardType",
|
"usr": "c:@S@ForwardType",
|
||||||
"instantiations": [0],
|
"instantiations": [0],
|
||||||
"uses": ["1:1:8", "*1:5:3"]
|
"uses": ["1:8", "*5:3"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@S@ImplementedType",
|
"usr": "c:@S@ImplementedType",
|
||||||
"short_name": "ImplementedType",
|
"short_name": "ImplementedType",
|
||||||
"qualified_name": "ImplementedType",
|
"qualified_name": "ImplementedType",
|
||||||
"definition": "1:2:8",
|
"definition": "2:8",
|
||||||
"instantiations": [1],
|
"instantiations": [1],
|
||||||
"uses": ["*1:2:8", "*1:6:3"]
|
"uses": ["*2:8", "*6:3"]
|
||||||
}],
|
}],
|
||||||
"funcs": [{
|
"funcs": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@F@Foo#",
|
"usr": "c:@F@Foo#",
|
||||||
"short_name": "Foo",
|
"short_name": "Foo",
|
||||||
"qualified_name": "Foo",
|
"qualified_name": "Foo",
|
||||||
"definition": "1:4:6",
|
"definition": "4:6",
|
||||||
"uses": ["1:4:6"]
|
"uses": ["4:6"]
|
||||||
}],
|
}],
|
||||||
"vars": [{
|
"vars": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:type_usage_declare_local.cc@67@F@Foo#@a",
|
"usr": "c:type_usage_declare_local.cc@67@F@Foo#@a",
|
||||||
"short_name": "a",
|
"short_name": "a",
|
||||||
"qualified_name": "a",
|
"qualified_name": "a",
|
||||||
"definition": "1:5:16",
|
"definition": "5:16",
|
||||||
"variable_type": 0,
|
"variable_type": 0,
|
||||||
"uses": ["1:5:16"]
|
"uses": ["5:16"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:type_usage_declare_local.cc@86@F@Foo#@b",
|
"usr": "c:type_usage_declare_local.cc@86@F@Foo#@b",
|
||||||
"short_name": "b",
|
"short_name": "b",
|
||||||
"qualified_name": "b",
|
"qualified_name": "b",
|
||||||
"definition": "1:6:19",
|
"definition": "6:19",
|
||||||
"variable_type": 1,
|
"variable_type": 1,
|
||||||
"uses": ["1:6:19"]
|
"uses": ["6:19"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -10,40 +10,40 @@ OUTPUT:
|
|||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@S@ForwardType",
|
"usr": "c:@S@ForwardType",
|
||||||
"instantiations": [0],
|
"instantiations": [0],
|
||||||
"uses": ["1:1:8", "*1:4:10"]
|
"uses": ["1:8", "*4:10"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@S@ImplementedType",
|
"usr": "c:@S@ImplementedType",
|
||||||
"short_name": "ImplementedType",
|
"short_name": "ImplementedType",
|
||||||
"qualified_name": "ImplementedType",
|
"qualified_name": "ImplementedType",
|
||||||
"definition": "1:2:8",
|
"definition": "2:8",
|
||||||
"instantiations": [1],
|
"instantiations": [1],
|
||||||
"uses": ["*1:2:8", "*1:4:26"]
|
"uses": ["*2:8", "*4:26"]
|
||||||
}],
|
}],
|
||||||
"funcs": [{
|
"funcs": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@F@foo#*$@S@ForwardType#$@S@ImplementedType#",
|
"usr": "c:@F@foo#*$@S@ForwardType#$@S@ImplementedType#",
|
||||||
"short_name": "foo",
|
"short_name": "foo",
|
||||||
"qualified_name": "foo",
|
"qualified_name": "foo",
|
||||||
"definition": "1:4:6",
|
"definition": "4:6",
|
||||||
"uses": ["1:4:6"]
|
"uses": ["4:6"]
|
||||||
}],
|
}],
|
||||||
"vars": [{
|
"vars": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:type_usage_declare_param.cc@60@F@foo#*$@S@ForwardType#$@S@ImplementedType#@f",
|
"usr": "c:type_usage_declare_param.cc@60@F@foo#*$@S@ForwardType#$@S@ImplementedType#@f",
|
||||||
"short_name": "f",
|
"short_name": "f",
|
||||||
"qualified_name": "f",
|
"qualified_name": "f",
|
||||||
"definition": "1:4:23",
|
"definition": "4:23",
|
||||||
"variable_type": 0,
|
"variable_type": 0,
|
||||||
"uses": ["1:4:23"]
|
"uses": ["4:23"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:type_usage_declare_param.cc@76@F@foo#*$@S@ForwardType#$@S@ImplementedType#@a",
|
"usr": "c:type_usage_declare_param.cc@76@F@foo#*$@S@ForwardType#$@S@ImplementedType#@a",
|
||||||
"short_name": "a",
|
"short_name": "a",
|
||||||
"qualified_name": "a",
|
"qualified_name": "a",
|
||||||
"definition": "1:4:42",
|
"definition": "4:42",
|
||||||
"variable_type": 1,
|
"variable_type": 1,
|
||||||
"uses": ["1:4:42"]
|
"uses": ["4:42"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -15,25 +15,25 @@ OUTPUT:
|
|||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@S@Foo",
|
"usr": "c:@S@Foo",
|
||||||
"instantiations": [0],
|
"instantiations": [0],
|
||||||
"uses": ["1:1:8", "1:3:10", "1:3:18", "*1:4:10", "*1:4:18"]
|
"uses": ["1:8", "3:10", "3:18", "*4:10", "*4:18"]
|
||||||
}],
|
}],
|
||||||
"funcs": [{
|
"funcs": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@F@foo#*$@S@Foo#S0_#",
|
"usr": "c:@F@foo#*$@S@Foo#S0_#",
|
||||||
"short_name": "foo",
|
"short_name": "foo",
|
||||||
"qualified_name": "foo",
|
"qualified_name": "foo",
|
||||||
"declarations": ["1:3:6"],
|
"declarations": ["3:6"],
|
||||||
"definition": "1:4:6",
|
"definition": "4:6",
|
||||||
"uses": ["1:3:6", "1:4:6"]
|
"uses": ["3:6", "4:6"]
|
||||||
}],
|
}],
|
||||||
"vars": [{
|
"vars": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:type_usage_declare_param_prototype.cc@49@F@foo#*$@S@Foo#S0_#@f",
|
"usr": "c:type_usage_declare_param_prototype.cc@49@F@foo#*$@S@Foo#S0_#@f",
|
||||||
"short_name": "f",
|
"short_name": "f",
|
||||||
"qualified_name": "f",
|
"qualified_name": "f",
|
||||||
"definition": "1:4:15",
|
"definition": "4:15",
|
||||||
"variable_type": 0,
|
"variable_type": 0,
|
||||||
"uses": ["1:4:15"]
|
"uses": ["4:15"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -6,15 +6,15 @@ OUTPUT:
|
|||||||
"types": [{
|
"types": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@S@ForwardType",
|
"usr": "c:@S@ForwardType",
|
||||||
"uses": ["1:1:8", "*1:2:10"]
|
"uses": ["1:8", "*2:10"]
|
||||||
}],
|
}],
|
||||||
"funcs": [{
|
"funcs": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@F@foo#*$@S@ForwardType#",
|
"usr": "c:@F@foo#*$@S@ForwardType#",
|
||||||
"short_name": "foo",
|
"short_name": "foo",
|
||||||
"qualified_name": "foo",
|
"qualified_name": "foo",
|
||||||
"definition": "1:2:6",
|
"definition": "2:6",
|
||||||
"uses": ["1:2:6"]
|
"uses": ["2:6"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -14,66 +14,66 @@ OUTPUT:
|
|||||||
"usr": "c:@S@Type",
|
"usr": "c:@S@Type",
|
||||||
"short_name": "Type",
|
"short_name": "Type",
|
||||||
"qualified_name": "Type",
|
"qualified_name": "Type",
|
||||||
"definition": "1:1:8",
|
"definition": "1:8",
|
||||||
"instantiations": [0, 1, 2, 3, 4, 5],
|
"instantiations": [0, 1, 2, 3, 4, 5],
|
||||||
"uses": ["*1:1:8", "*1:3:10", "*1:3:26", "*1:4:3", "*1:5:3", "*1:6:9", "*1:7:9"]
|
"uses": ["*1:8", "*3:10", "*3:26", "*4:3", "*5:3", "*6:9", "*7:9"]
|
||||||
}],
|
}],
|
||||||
"funcs": [{
|
"funcs": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@F@foo#&$@S@Type#&1S1_#",
|
"usr": "c:@F@foo#&$@S@Type#&1S1_#",
|
||||||
"short_name": "foo",
|
"short_name": "foo",
|
||||||
"qualified_name": "foo",
|
"qualified_name": "foo",
|
||||||
"definition": "1:3:6",
|
"definition": "3:6",
|
||||||
"uses": ["1:3:6"]
|
"uses": ["3:6"]
|
||||||
}],
|
}],
|
||||||
"vars": [{
|
"vars": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:type_usage_declare_qualifiers.cc@28@F@foo#&$@S@Type#&1S1_#@a0",
|
"usr": "c:type_usage_declare_qualifiers.cc@28@F@foo#&$@S@Type#&1S1_#@a0",
|
||||||
"short_name": "a0",
|
"short_name": "a0",
|
||||||
"qualified_name": "a0",
|
"qualified_name": "a0",
|
||||||
"definition": "1:3:16",
|
"definition": "3:16",
|
||||||
"variable_type": 0,
|
"variable_type": 0,
|
||||||
"uses": ["1:3:16"]
|
"uses": ["3:16"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:type_usage_declare_qualifiers.cc@38@F@foo#&$@S@Type#&1S1_#@a1",
|
"usr": "c:type_usage_declare_qualifiers.cc@38@F@foo#&$@S@Type#&1S1_#@a1",
|
||||||
"short_name": "a1",
|
"short_name": "a1",
|
||||||
"qualified_name": "a1",
|
"qualified_name": "a1",
|
||||||
"definition": "1:3:32",
|
"definition": "3:32",
|
||||||
"variable_type": 0,
|
"variable_type": 0,
|
||||||
"uses": ["1:3:32"]
|
"uses": ["3:32"]
|
||||||
}, {
|
}, {
|
||||||
"id": 2,
|
"id": 2,
|
||||||
"usr": "c:type_usage_declare_qualifiers.cc@59@F@foo#&$@S@Type#&1S1_#@a2",
|
"usr": "c:type_usage_declare_qualifiers.cc@59@F@foo#&$@S@Type#&1S1_#@a2",
|
||||||
"short_name": "a2",
|
"short_name": "a2",
|
||||||
"qualified_name": "a2",
|
"qualified_name": "a2",
|
||||||
"definition": "1:4:8",
|
"definition": "4:8",
|
||||||
"variable_type": 0,
|
"variable_type": 0,
|
||||||
"uses": ["1:4:8"]
|
"uses": ["4:8"]
|
||||||
}, {
|
}, {
|
||||||
"id": 3,
|
"id": 3,
|
||||||
"usr": "c:type_usage_declare_qualifiers.cc@71@F@foo#&$@S@Type#&1S1_#@a3",
|
"usr": "c:type_usage_declare_qualifiers.cc@71@F@foo#&$@S@Type#&1S1_#@a3",
|
||||||
"short_name": "a3",
|
"short_name": "a3",
|
||||||
"qualified_name": "a3",
|
"qualified_name": "a3",
|
||||||
"definition": "1:5:9",
|
"definition": "5:9",
|
||||||
"variable_type": 0,
|
"variable_type": 0,
|
||||||
"uses": ["1:5:9"]
|
"uses": ["5:9"]
|
||||||
}, {
|
}, {
|
||||||
"id": 4,
|
"id": 4,
|
||||||
"usr": "c:type_usage_declare_qualifiers.cc@84@F@foo#&$@S@Type#&1S1_#@a4",
|
"usr": "c:type_usage_declare_qualifiers.cc@84@F@foo#&$@S@Type#&1S1_#@a4",
|
||||||
"short_name": "a4",
|
"short_name": "a4",
|
||||||
"qualified_name": "a4",
|
"qualified_name": "a4",
|
||||||
"definition": "1:6:15",
|
"definition": "6:15",
|
||||||
"variable_type": 0,
|
"variable_type": 0,
|
||||||
"uses": ["1:6:15"]
|
"uses": ["6:15"]
|
||||||
}, {
|
}, {
|
||||||
"id": 5,
|
"id": 5,
|
||||||
"usr": "c:type_usage_declare_qualifiers.cc@103@F@foo#&$@S@Type#&1S1_#@a5",
|
"usr": "c:type_usage_declare_qualifiers.cc@103@F@foo#&$@S@Type#&1S1_#@a5",
|
||||||
"short_name": "a5",
|
"short_name": "a5",
|
||||||
"qualified_name": "a5",
|
"qualified_name": "a5",
|
||||||
"definition": "1:7:21",
|
"definition": "7:21",
|
||||||
"variable_type": 0,
|
"variable_type": 0,
|
||||||
"uses": ["1:7:21"]
|
"uses": ["7:21"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7,16 +7,16 @@ OUTPUT:
|
|||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@S@Type",
|
"usr": "c:@S@Type",
|
||||||
"instantiations": [0],
|
"instantiations": [0],
|
||||||
"uses": ["1:1:8", "*1:2:8"]
|
"uses": ["1:8", "*2:8"]
|
||||||
}],
|
}],
|
||||||
"vars": [{
|
"vars": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:type_usage_declare_static.cc@t",
|
"usr": "c:type_usage_declare_static.cc@t",
|
||||||
"short_name": "t",
|
"short_name": "t",
|
||||||
"qualified_name": "t",
|
"qualified_name": "t",
|
||||||
"definition": "1:2:13",
|
"definition": "2:13",
|
||||||
"variable_type": 0,
|
"variable_type": 0,
|
||||||
"uses": ["1:2:13"]
|
"uses": ["2:13"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -23,57 +23,57 @@ OUTPUT:
|
|||||||
"types": [{
|
"types": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@S@Type",
|
"usr": "c:@S@Type",
|
||||||
"uses": ["1:1:8", "*1:3:1", "*1:4:1", "*1:5:1", "*1:8:3", "*1:12:1", "*1:15:14", "*1:17:8", "*1:18:8"]
|
"uses": ["1:8", "*3:1", "*4:1", "*5:1", "*8:3", "*12:1", "*15:14", "*17:8", "*18:8"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@S@Foo",
|
"usr": "c:@S@Foo",
|
||||||
"short_name": "Foo",
|
"short_name": "Foo",
|
||||||
"qualified_name": "Foo",
|
"qualified_name": "Foo",
|
||||||
"definition": "1:7:7",
|
"definition": "7:7",
|
||||||
"funcs": [1, 2],
|
"funcs": [1, 2],
|
||||||
"uses": ["*1:7:7", "1:12:7", "1:13:6"]
|
"uses": ["*7:7", "12:7", "13:6"]
|
||||||
}],
|
}],
|
||||||
"funcs": [{
|
"funcs": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@F@foo#",
|
"usr": "c:@F@foo#",
|
||||||
"short_name": "foo",
|
"short_name": "foo",
|
||||||
"qualified_name": "foo",
|
"qualified_name": "foo",
|
||||||
"declarations": ["1:3:7", "1:4:7"],
|
"declarations": ["3:7", "4:7"],
|
||||||
"definition": "1:5:7",
|
"definition": "5:7",
|
||||||
"uses": ["1:3:7", "1:4:7", "1:5:7"]
|
"uses": ["3:7", "4:7", "5:7"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@S@Foo@F@Get#I#",
|
"usr": "c:@S@Foo@F@Get#I#",
|
||||||
"short_name": "Get",
|
"short_name": "Get",
|
||||||
"qualified_name": "Foo::Get",
|
"qualified_name": "Foo::Get",
|
||||||
"declarations": ["1:8:9"],
|
"declarations": ["8:9"],
|
||||||
"definition": "1:12:12",
|
"definition": "12:12",
|
||||||
"declaring_type": 1,
|
"declaring_type": 1,
|
||||||
"uses": ["1:8:9", "1:12:12"]
|
"uses": ["8:9", "12:12"]
|
||||||
}, {
|
}, {
|
||||||
"id": 2,
|
"id": 2,
|
||||||
"usr": "c:@S@Foo@F@Empty#",
|
"usr": "c:@S@Foo@F@Empty#",
|
||||||
"short_name": "Empty",
|
"short_name": "Empty",
|
||||||
"qualified_name": "Foo::Empty",
|
"qualified_name": "Foo::Empty",
|
||||||
"declarations": ["1:9:8"],
|
"declarations": ["9:8"],
|
||||||
"definition": "1:13:11",
|
"definition": "13:11",
|
||||||
"declaring_type": 1,
|
"declaring_type": 1,
|
||||||
"uses": ["1:9:8", "1:13:11"]
|
"uses": ["9:8", "13:11"]
|
||||||
}, {
|
}, {
|
||||||
"id": 3,
|
"id": 3,
|
||||||
"usr": "c:@F@external#",
|
"usr": "c:@F@external#",
|
||||||
"short_name": "external",
|
"short_name": "external",
|
||||||
"qualified_name": "external",
|
"qualified_name": "external",
|
||||||
"declarations": ["1:15:20"],
|
"declarations": ["15:20"],
|
||||||
"uses": ["1:15:20"]
|
"uses": ["15:20"]
|
||||||
}, {
|
}, {
|
||||||
"id": 4,
|
"id": 4,
|
||||||
"usr": "c:type_usage_on_return_type.cc@F@bar#",
|
"usr": "c:type_usage_on_return_type.cc@F@bar#",
|
||||||
"short_name": "bar",
|
"short_name": "bar",
|
||||||
"qualified_name": "bar",
|
"qualified_name": "bar",
|
||||||
"declarations": ["1:17:14"],
|
"declarations": ["17:14"],
|
||||||
"definition": "1:18:14",
|
"definition": "18:14",
|
||||||
"uses": ["1:17:14", "1:18:14"]
|
"uses": ["17:14", "18:14"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -16,67 +16,67 @@ OUTPUT:
|
|||||||
"types": [{
|
"types": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@S@Foo",
|
"usr": "c:@S@Foo",
|
||||||
"uses": ["1:1:8", "*1:2:14", "*1:3:9", "*1:7:13"]
|
"uses": ["1:8", "*2:14", "*3:9", "*7:13"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@Foo1",
|
"usr": "c:@Foo1",
|
||||||
"short_name": "Foo1",
|
"short_name": "Foo1",
|
||||||
"qualified_name": "Foo1",
|
"qualified_name": "Foo1",
|
||||||
"definition": "1:2:7",
|
"definition": "2:7",
|
||||||
"alias_of": 0,
|
"alias_of": 0,
|
||||||
"uses": ["*1:2:7", "*1:4:14", "*1:8:14"]
|
"uses": ["*2:7", "*4:14", "*8:14"]
|
||||||
}, {
|
}, {
|
||||||
"id": 2,
|
"id": 2,
|
||||||
"usr": "c:type_usage_typedef_and_using.cc@T@Foo2",
|
"usr": "c:type_usage_typedef_and_using.cc@T@Foo2",
|
||||||
"short_name": "Foo2",
|
"short_name": "Foo2",
|
||||||
"qualified_name": "Foo2",
|
"qualified_name": "Foo2",
|
||||||
"definition": "1:3:13",
|
"definition": "3:13",
|
||||||
"alias_of": 0,
|
"alias_of": 0,
|
||||||
"uses": ["*1:3:13", "*1:9:14"]
|
"uses": ["*3:13", "*9:14"]
|
||||||
}, {
|
}, {
|
||||||
"id": 3,
|
"id": 3,
|
||||||
"usr": "c:@Foo3",
|
"usr": "c:@Foo3",
|
||||||
"short_name": "Foo3",
|
"short_name": "Foo3",
|
||||||
"qualified_name": "Foo3",
|
"qualified_name": "Foo3",
|
||||||
"definition": "1:4:7",
|
"definition": "4:7",
|
||||||
"alias_of": 1,
|
"alias_of": 1,
|
||||||
"uses": ["*1:4:7", "*1:10:14"]
|
"uses": ["*4:7", "*10:14"]
|
||||||
}, {
|
}, {
|
||||||
"id": 4,
|
"id": 4,
|
||||||
"usr": "c:@Foo4",
|
"usr": "c:@Foo4",
|
||||||
"short_name": "Foo4",
|
"short_name": "Foo4",
|
||||||
"qualified_name": "Foo4",
|
"qualified_name": "Foo4",
|
||||||
"definition": "1:5:7",
|
"definition": "5:7",
|
||||||
"uses": ["*1:5:7"]
|
"uses": ["*5:7"]
|
||||||
}],
|
}],
|
||||||
"funcs": [{
|
"funcs": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@F@accept#*$@S@Foo#",
|
"usr": "c:@F@accept#*$@S@Foo#",
|
||||||
"short_name": "accept",
|
"short_name": "accept",
|
||||||
"qualified_name": "accept",
|
"qualified_name": "accept",
|
||||||
"definition": "1:7:6",
|
"definition": "7:6",
|
||||||
"uses": ["1:7:6"]
|
"uses": ["7:6"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@F@accept1#**$@S@Foo#",
|
"usr": "c:@F@accept1#**$@S@Foo#",
|
||||||
"short_name": "accept1",
|
"short_name": "accept1",
|
||||||
"qualified_name": "accept1",
|
"qualified_name": "accept1",
|
||||||
"definition": "1:8:6",
|
"definition": "8:6",
|
||||||
"uses": ["1:8:6"]
|
"uses": ["8:6"]
|
||||||
}, {
|
}, {
|
||||||
"id": 2,
|
"id": 2,
|
||||||
"usr": "c:@F@accept2#*$@S@Foo#",
|
"usr": "c:@F@accept2#*$@S@Foo#",
|
||||||
"short_name": "accept2",
|
"short_name": "accept2",
|
||||||
"qualified_name": "accept2",
|
"qualified_name": "accept2",
|
||||||
"definition": "1:9:6",
|
"definition": "9:6",
|
||||||
"uses": ["1:9:6"]
|
"uses": ["9:6"]
|
||||||
}, {
|
}, {
|
||||||
"id": 3,
|
"id": 3,
|
||||||
"usr": "c:@F@accept3#**$@S@Foo#",
|
"usr": "c:@F@accept3#**$@S@Foo#",
|
||||||
"short_name": "accept3",
|
"short_name": "accept3",
|
||||||
"qualified_name": "accept3",
|
"qualified_name": "accept3",
|
||||||
"definition": "1:10:6",
|
"definition": "10:6",
|
||||||
"uses": ["1:10:6"]
|
"uses": ["10:6"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -10,23 +10,23 @@ OUTPUT:
|
|||||||
"types": [{
|
"types": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@ST>1#T@Foo",
|
"usr": "c:@ST>1#T@Foo",
|
||||||
"uses": ["1:2:8", "*1:4:14", "*1:5:9"]
|
"uses": ["2:8", "*4:14", "*5:9"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@Foo1",
|
"usr": "c:@Foo1",
|
||||||
"short_name": "Foo1",
|
"short_name": "Foo1",
|
||||||
"qualified_name": "Foo1",
|
"qualified_name": "Foo1",
|
||||||
"definition": "1:4:7",
|
"definition": "4:7",
|
||||||
"alias_of": 0,
|
"alias_of": 0,
|
||||||
"uses": ["*1:4:7", "*1:5:13"]
|
"uses": ["*4:7", "*5:13"]
|
||||||
}, {
|
}, {
|
||||||
"id": 2,
|
"id": 2,
|
||||||
"usr": "c:type_usage_typedef_and_using_template.cc@T@Foo2",
|
"usr": "c:type_usage_typedef_and_using_template.cc@T@Foo2",
|
||||||
"short_name": "Foo2",
|
"short_name": "Foo2",
|
||||||
"qualified_name": "Foo2",
|
"qualified_name": "Foo2",
|
||||||
"definition": "1:5:19",
|
"definition": "5:19",
|
||||||
"alias_of": 0,
|
"alias_of": 0,
|
||||||
"uses": ["*1:5:19"]
|
"uses": ["*5:19"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -17,37 +17,37 @@ OUTPUT:
|
|||||||
"usr": "c:@S@Foo",
|
"usr": "c:@S@Foo",
|
||||||
"short_name": "Foo",
|
"short_name": "Foo",
|
||||||
"qualified_name": "Foo",
|
"qualified_name": "Foo",
|
||||||
"definition": "1:1:7",
|
"definition": "1:7",
|
||||||
"funcs": [0],
|
"funcs": [0],
|
||||||
"instantiations": [0, 1],
|
"instantiations": [0, 1],
|
||||||
"uses": ["*1:1:7", "*1:2:3", "*1:5:1", "1:5:6", "*1:6:3", "*1:10:8"]
|
"uses": ["*1:7", "*2:3", "*5:1", "5:6", "*6:3", "*10:8"]
|
||||||
}],
|
}],
|
||||||
"funcs": [{
|
"funcs": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@S@Foo@F@make#",
|
"usr": "c:@S@Foo@F@make#",
|
||||||
"short_name": "make",
|
"short_name": "make",
|
||||||
"qualified_name": "Foo::make",
|
"qualified_name": "Foo::make",
|
||||||
"declarations": ["1:2:8"],
|
"declarations": ["2:8"],
|
||||||
"definition": "1:5:11",
|
"definition": "5:11",
|
||||||
"declaring_type": 0,
|
"declaring_type": 0,
|
||||||
"uses": ["1:2:8", "1:5:11"]
|
"uses": ["2:8", "5:11"]
|
||||||
}],
|
}],
|
||||||
"vars": [{
|
"vars": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:type_usage_various.cc@57@S@Foo@F@make#@f",
|
"usr": "c:type_usage_various.cc@57@S@Foo@F@make#@f",
|
||||||
"short_name": "f",
|
"short_name": "f",
|
||||||
"qualified_name": "f",
|
"qualified_name": "f",
|
||||||
"definition": "1:6:7",
|
"definition": "6:7",
|
||||||
"variable_type": 0,
|
"variable_type": 0,
|
||||||
"uses": ["1:6:7"]
|
"uses": ["6:7"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@foo",
|
"usr": "c:@foo",
|
||||||
"short_name": "foo",
|
"short_name": "foo",
|
||||||
"qualified_name": "foo",
|
"qualified_name": "foo",
|
||||||
"declaration": "1:10:12",
|
"declaration": "10:12",
|
||||||
"variable_type": 0,
|
"variable_type": 0,
|
||||||
"uses": ["1:10:12"]
|
"uses": ["10:12"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -22,59 +22,59 @@ OUTPUT:
|
|||||||
"usr": "c:@S@Foo",
|
"usr": "c:@S@Foo",
|
||||||
"short_name": "Foo",
|
"short_name": "Foo",
|
||||||
"qualified_name": "Foo",
|
"qualified_name": "Foo",
|
||||||
"definition": "1:5:8",
|
"definition": "5:8",
|
||||||
"vars": [1, 0],
|
"vars": [1, 0],
|
||||||
"uses": ["*1:5:8", "1:10:5", "1:14:22", "1:14:40"]
|
"uses": ["*5:8", "10:5", "14:22", "14:40"]
|
||||||
}],
|
}],
|
||||||
"funcs": [{
|
"funcs": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@F@called#I#",
|
"usr": "c:@F@called#I#",
|
||||||
"short_name": "called",
|
"short_name": "called",
|
||||||
"qualified_name": "called",
|
"qualified_name": "called",
|
||||||
"declarations": ["1:1:6"],
|
"declarations": ["1:6"],
|
||||||
"callers": ["2@1:14:3"],
|
"callers": ["2@14:3"],
|
||||||
"uses": ["1:1:6", "1:14:3"]
|
"uses": ["1:6", "14:3"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@F@gen#",
|
"usr": "c:@F@gen#",
|
||||||
"short_name": "gen",
|
"short_name": "gen",
|
||||||
"qualified_name": "gen",
|
"qualified_name": "gen",
|
||||||
"declarations": ["1:3:5"],
|
"declarations": ["3:5"],
|
||||||
"callers": ["2@1:14:14"],
|
"callers": ["2@14:14"],
|
||||||
"uses": ["1:3:5", "1:14:14"]
|
"uses": ["3:5", "14:14"]
|
||||||
}, {
|
}, {
|
||||||
"id": 2,
|
"id": 2,
|
||||||
"usr": "c:@F@foo#",
|
"usr": "c:@F@foo#",
|
||||||
"short_name": "foo",
|
"short_name": "foo",
|
||||||
"qualified_name": "foo",
|
"qualified_name": "foo",
|
||||||
"definition": "1:12:6",
|
"definition": "12:6",
|
||||||
"callees": ["0@1:14:3", "1@1:14:14"],
|
"callees": ["0@14:3", "1@14:14"],
|
||||||
"uses": ["1:12:6"]
|
"uses": ["12:6"]
|
||||||
}],
|
}],
|
||||||
"vars": [{
|
"vars": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@S@Foo@static_var",
|
"usr": "c:@S@Foo@static_var",
|
||||||
"short_name": "static_var",
|
"short_name": "static_var",
|
||||||
"qualified_name": "Foo::static_var",
|
"qualified_name": "Foo::static_var",
|
||||||
"declaration": "1:6:14",
|
"declaration": "6:14",
|
||||||
"definition": "1:10:10",
|
"definition": "10:10",
|
||||||
"declaring_type": 0,
|
"declaring_type": 0,
|
||||||
"uses": ["1:6:14", "1:10:10", "1:14:45"]
|
"uses": ["6:14", "10:10", "14:45"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@S@Foo@FI@field_var",
|
"usr": "c:@S@Foo@FI@field_var",
|
||||||
"short_name": "field_var",
|
"short_name": "field_var",
|
||||||
"qualified_name": "Foo::field_var",
|
"qualified_name": "Foo::field_var",
|
||||||
"definition": "1:7:7",
|
"definition": "7:7",
|
||||||
"declaring_type": 0,
|
"declaring_type": 0,
|
||||||
"uses": ["1:7:7", "1:14:28"]
|
"uses": ["7:7", "14:28"]
|
||||||
}, {
|
}, {
|
||||||
"id": 2,
|
"id": 2,
|
||||||
"usr": "c:usage_inside_of_call.cc@145@F@foo#@a",
|
"usr": "c:usage_inside_of_call.cc@145@F@foo#@a",
|
||||||
"short_name": "a",
|
"short_name": "a",
|
||||||
"qualified_name": "a",
|
"qualified_name": "a",
|
||||||
"definition": "1:13:7",
|
"definition": "13:7",
|
||||||
"uses": ["1:13:7", "1:14:10"]
|
"uses": ["13:7", "14:10"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -14,25 +14,25 @@ OUTPUT:
|
|||||||
"usr": "c:@F@called#I#",
|
"usr": "c:@F@called#I#",
|
||||||
"short_name": "called",
|
"short_name": "called",
|
||||||
"qualified_name": "called",
|
"qualified_name": "called",
|
||||||
"declarations": ["1:1:6"],
|
"declarations": ["1:6"],
|
||||||
"callers": ["2@1:6:3"],
|
"callers": ["2@6:3"],
|
||||||
"uses": ["1:1:6", "1:6:3"]
|
"uses": ["1:6", "6:3"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@F@gen#",
|
"usr": "c:@F@gen#",
|
||||||
"short_name": "gen",
|
"short_name": "gen",
|
||||||
"qualified_name": "gen",
|
"qualified_name": "gen",
|
||||||
"definition": "1:3:5",
|
"definition": "3:5",
|
||||||
"callers": ["2@1:6:10", "2@1:6:18"],
|
"callers": ["2@6:10", "2@6:18"],
|
||||||
"uses": ["1:3:5", "1:6:10", "1:6:18"]
|
"uses": ["3:5", "6:10", "6:18"]
|
||||||
}, {
|
}, {
|
||||||
"id": 2,
|
"id": 2,
|
||||||
"usr": "c:@F@foo#",
|
"usr": "c:@F@foo#",
|
||||||
"short_name": "foo",
|
"short_name": "foo",
|
||||||
"qualified_name": "foo",
|
"qualified_name": "foo",
|
||||||
"definition": "1:5:6",
|
"definition": "5:6",
|
||||||
"callees": ["0@1:6:3", "1@1:6:10", "1@1:6:18"],
|
"callees": ["0@6:3", "1@6:10", "1@6:18"],
|
||||||
"uses": ["1:5:6"]
|
"uses": ["5:6"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -15,25 +15,25 @@ OUTPUT:
|
|||||||
"usr": "c:@F@called#",
|
"usr": "c:@F@called#",
|
||||||
"short_name": "called",
|
"short_name": "called",
|
||||||
"qualified_name": "called",
|
"qualified_name": "called",
|
||||||
"definition": "1:1:6",
|
"definition": "1:6",
|
||||||
"callers": ["1@1:4:13", "1@1:7:3"],
|
"callers": ["1@4:13", "1@7:3"],
|
||||||
"uses": ["1:1:6", "1:4:13", "1:7:3"]
|
"uses": ["1:6", "4:13", "7:3"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@F@caller#",
|
"usr": "c:@F@caller#",
|
||||||
"short_name": "caller",
|
"short_name": "caller",
|
||||||
"qualified_name": "caller",
|
"qualified_name": "caller",
|
||||||
"definition": "1:3:6",
|
"definition": "3:6",
|
||||||
"callees": ["0@1:4:13", "0@1:7:3"],
|
"callees": ["0@4:13", "0@7:3"],
|
||||||
"uses": ["1:3:6"]
|
"uses": ["3:6"]
|
||||||
}],
|
}],
|
||||||
"vars": [{
|
"vars": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:var_usage_call_function.cc@39@F@caller#@x",
|
"usr": "c:var_usage_call_function.cc@39@F@caller#@x",
|
||||||
"short_name": "x",
|
"short_name": "x",
|
||||||
"qualified_name": "x",
|
"qualified_name": "x",
|
||||||
"definition": "1:4:8",
|
"definition": "4:8",
|
||||||
"uses": ["1:4:8", "1:5:3"]
|
"uses": ["4:8", "5:3"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -25,60 +25,60 @@ OUTPUT:
|
|||||||
"usr": "c:@S@Foo",
|
"usr": "c:@S@Foo",
|
||||||
"short_name": "Foo",
|
"short_name": "Foo",
|
||||||
"qualified_name": "Foo",
|
"qualified_name": "Foo",
|
||||||
"definition": "1:1:7",
|
"definition": "1:7",
|
||||||
"vars": [0, 1],
|
"vars": [0, 1],
|
||||||
"instantiations": [2],
|
"instantiations": [2],
|
||||||
"uses": ["*1:1:7", "*1:11:3"]
|
"uses": ["*1:7", "*11:3"]
|
||||||
}],
|
}],
|
||||||
"funcs": [{
|
"funcs": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@F@accept#I#",
|
"usr": "c:@F@accept#I#",
|
||||||
"short_name": "accept",
|
"short_name": "accept",
|
||||||
"qualified_name": "accept",
|
"qualified_name": "accept",
|
||||||
"declarations": ["1:7:6"],
|
"declarations": ["7:6"],
|
||||||
"callers": ["2@1:14:3", "2@1:15:3", "2@1:17:3"],
|
"callers": ["2@14:3", "2@15:3", "2@17:3"],
|
||||||
"uses": ["1:7:6", "1:14:3", "1:15:3", "1:17:3"]
|
"uses": ["7:6", "14:3", "15:3", "17:3"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@F@accept#*I#",
|
"usr": "c:@F@accept#*I#",
|
||||||
"short_name": "accept",
|
"short_name": "accept",
|
||||||
"qualified_name": "accept",
|
"qualified_name": "accept",
|
||||||
"declarations": ["1:8:6"],
|
"declarations": ["8:6"],
|
||||||
"callers": ["2@1:16:3"],
|
"callers": ["2@16:3"],
|
||||||
"uses": ["1:8:6", "1:16:3"]
|
"uses": ["8:6", "16:3"]
|
||||||
}, {
|
}, {
|
||||||
"id": 2,
|
"id": 2,
|
||||||
"usr": "c:@F@foo#",
|
"usr": "c:@F@foo#",
|
||||||
"short_name": "foo",
|
"short_name": "foo",
|
||||||
"qualified_name": "foo",
|
"qualified_name": "foo",
|
||||||
"definition": "1:10:6",
|
"definition": "10:6",
|
||||||
"callees": ["0@1:14:3", "0@1:15:3", "1@1:16:3", "0@1:17:3"],
|
"callees": ["0@14:3", "0@15:3", "1@16:3", "0@17:3"],
|
||||||
"uses": ["1:10:6"]
|
"uses": ["10:6"]
|
||||||
}],
|
}],
|
||||||
"vars": [{
|
"vars": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@S@Foo@FI@x",
|
"usr": "c:@S@Foo@FI@x",
|
||||||
"short_name": "x",
|
"short_name": "x",
|
||||||
"qualified_name": "Foo::x",
|
"qualified_name": "Foo::x",
|
||||||
"definition": "1:3:7",
|
"definition": "3:7",
|
||||||
"declaring_type": 0,
|
"declaring_type": 0,
|
||||||
"uses": ["1:3:7", "1:12:5", "1:13:5", "1:14:12", "1:15:12", "1:16:13"]
|
"uses": ["3:7", "12:5", "13:5", "14:12", "15:12", "16:13"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@S@Foo@FI@y",
|
"usr": "c:@S@Foo@FI@y",
|
||||||
"short_name": "y",
|
"short_name": "y",
|
||||||
"qualified_name": "Foo::y",
|
"qualified_name": "Foo::y",
|
||||||
"definition": "1:4:7",
|
"definition": "4:7",
|
||||||
"declaring_type": 0,
|
"declaring_type": 0,
|
||||||
"uses": ["1:4:7", "1:17:12"]
|
"uses": ["4:7", "17:12"]
|
||||||
}, {
|
}, {
|
||||||
"id": 2,
|
"id": 2,
|
||||||
"usr": "c:var_usage_class_member.cc@105@F@foo#@f",
|
"usr": "c:var_usage_class_member.cc@105@F@foo#@f",
|
||||||
"short_name": "f",
|
"short_name": "f",
|
||||||
"qualified_name": "f",
|
"qualified_name": "f",
|
||||||
"definition": "1:11:7",
|
"definition": "11:7",
|
||||||
"variable_type": 0,
|
"variable_type": 0,
|
||||||
"uses": ["1:11:7", "1:12:3", "1:13:3", "1:14:10", "1:15:10", "1:16:11", "1:17:10"]
|
"uses": ["11:7", "12:3", "13:3", "14:10", "15:10", "16:11", "17:10"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -16,33 +16,33 @@ OUTPUT:
|
|||||||
"usr": "c:@S@Foo",
|
"usr": "c:@S@Foo",
|
||||||
"short_name": "Foo",
|
"short_name": "Foo",
|
||||||
"qualified_name": "Foo",
|
"qualified_name": "Foo",
|
||||||
"definition": "1:1:8",
|
"definition": "1:8",
|
||||||
"uses": ["*1:1:8", "1:8:10"]
|
"uses": ["*1:8", "8:10"]
|
||||||
}],
|
}],
|
||||||
"funcs": [{
|
"funcs": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@F@accept#I#",
|
"usr": "c:@F@accept#I#",
|
||||||
"short_name": "accept",
|
"short_name": "accept",
|
||||||
"qualified_name": "accept",
|
"qualified_name": "accept",
|
||||||
"declarations": ["1:5:6"],
|
"declarations": ["5:6"],
|
||||||
"callers": ["1@1:8:3"],
|
"callers": ["1@8:3"],
|
||||||
"uses": ["1:5:6", "1:8:3"]
|
"uses": ["5:6", "8:3"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@F@foo#",
|
"usr": "c:@F@foo#",
|
||||||
"short_name": "foo",
|
"short_name": "foo",
|
||||||
"qualified_name": "foo",
|
"qualified_name": "foo",
|
||||||
"definition": "1:7:6",
|
"definition": "7:6",
|
||||||
"callees": ["0@1:8:3"],
|
"callees": ["0@8:3"],
|
||||||
"uses": ["1:7:6"]
|
"uses": ["7:6"]
|
||||||
}],
|
}],
|
||||||
"vars": [{
|
"vars": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@S@Foo@x",
|
"usr": "c:@S@Foo@x",
|
||||||
"short_name": "x",
|
"short_name": "x",
|
||||||
"qualified_name": "Foo::x",
|
"qualified_name": "Foo::x",
|
||||||
"declaration": "1:2:14",
|
"declaration": "2:14",
|
||||||
"uses": ["1:2:14", "1:8:15"]
|
"uses": ["2:14", "8:15"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -15,28 +15,28 @@ OUTPUT:
|
|||||||
"usr": "c:@E@VarType",
|
"usr": "c:@E@VarType",
|
||||||
"short_name": "VarType",
|
"short_name": "VarType",
|
||||||
"qualified_name": "VarType",
|
"qualified_name": "VarType",
|
||||||
"definition": "1:1:6",
|
"definition": "1:6",
|
||||||
"instantiations": [0],
|
"instantiations": [0],
|
||||||
"uses": ["*1:1:6", "*1:4:20", "*1:4:42", "*1:7:7"]
|
"uses": ["*1:6", "*4:20", "*4:42", "*7:7"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:@S@Holder",
|
"usr": "c:@S@Holder",
|
||||||
"short_name": "Holder",
|
"short_name": "Holder",
|
||||||
"qualified_name": "Holder",
|
"qualified_name": "Holder",
|
||||||
"definition": "1:3:8",
|
"definition": "3:8",
|
||||||
"vars": [0],
|
"vars": [0],
|
||||||
"uses": ["*1:3:8", "1:7:15"]
|
"uses": ["*3:8", "7:15"]
|
||||||
}],
|
}],
|
||||||
"vars": [{
|
"vars": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@S@Holder@static_var",
|
"usr": "c:@S@Holder@static_var",
|
||||||
"short_name": "static_var",
|
"short_name": "static_var",
|
||||||
"qualified_name": "Holder::static_var",
|
"qualified_name": "Holder::static_var",
|
||||||
"declaration": "1:4:28",
|
"declaration": "4:28",
|
||||||
"definition": "1:7:23",
|
"definition": "7:23",
|
||||||
"variable_type": 0,
|
"variable_type": 0,
|
||||||
"declaring_type": 1,
|
"declaring_type": 1,
|
||||||
"uses": ["1:4:28", "1:7:23"]
|
"uses": ["4:28", "7:23"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -11,16 +11,16 @@ OUTPUT:
|
|||||||
"usr": "c:@F@foo#",
|
"usr": "c:@F@foo#",
|
||||||
"short_name": "foo",
|
"short_name": "foo",
|
||||||
"qualified_name": "foo",
|
"qualified_name": "foo",
|
||||||
"definition": "1:3:6",
|
"definition": "3:6",
|
||||||
"uses": ["1:3:6"]
|
"uses": ["3:6"]
|
||||||
}],
|
}],
|
||||||
"vars": [{
|
"vars": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@a",
|
"usr": "c:@a",
|
||||||
"short_name": "a",
|
"short_name": "a",
|
||||||
"qualified_name": "a",
|
"qualified_name": "a",
|
||||||
"declaration": "1:1:12",
|
"declaration": "1:12",
|
||||||
"uses": ["1:1:12", "1:4:3"]
|
"uses": ["1:12", "4:3"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -9,16 +9,16 @@ OUTPUT:
|
|||||||
"usr": "c:@F@foo#I#",
|
"usr": "c:@F@foo#I#",
|
||||||
"short_name": "foo",
|
"short_name": "foo",
|
||||||
"qualified_name": "foo",
|
"qualified_name": "foo",
|
||||||
"definition": "1:1:6",
|
"definition": "1:6",
|
||||||
"uses": ["1:1:6"]
|
"uses": ["1:6"]
|
||||||
}],
|
}],
|
||||||
"vars": [{
|
"vars": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:var_usage_func_parameter.cc@9@F@foo#I#@a",
|
"usr": "c:var_usage_func_parameter.cc@9@F@foo#I#@a",
|
||||||
"short_name": "a",
|
"short_name": "a",
|
||||||
"qualified_name": "a",
|
"qualified_name": "a",
|
||||||
"definition": "1:1:14",
|
"definition": "1:14",
|
||||||
"uses": ["1:1:14", "1:2:3"]
|
"uses": ["1:14", "2:3"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -10,16 +10,16 @@ OUTPUT:
|
|||||||
"usr": "c:@F@foo#",
|
"usr": "c:@F@foo#",
|
||||||
"short_name": "foo",
|
"short_name": "foo",
|
||||||
"qualified_name": "foo",
|
"qualified_name": "foo",
|
||||||
"definition": "1:1:6",
|
"definition": "1:6",
|
||||||
"uses": ["1:1:6"]
|
"uses": ["1:6"]
|
||||||
}],
|
}],
|
||||||
"vars": [{
|
"vars": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:var_usage_local.cc@16@F@foo#@x",
|
"usr": "c:var_usage_local.cc@16@F@foo#@x",
|
||||||
"short_name": "x",
|
"short_name": "x",
|
||||||
"qualified_name": "x",
|
"qualified_name": "x",
|
||||||
"definition": "1:2:7",
|
"definition": "2:7",
|
||||||
"uses": ["1:2:7", "1:3:3"]
|
"uses": ["2:7", "3:3"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -15,23 +15,23 @@ OUTPUT:
|
|||||||
"usr": "c:@F@foo#",
|
"usr": "c:@F@foo#",
|
||||||
"short_name": "foo",
|
"short_name": "foo",
|
||||||
"qualified_name": "foo",
|
"qualified_name": "foo",
|
||||||
"definition": "1:1:6",
|
"definition": "1:6",
|
||||||
"uses": ["1:1:6"]
|
"uses": ["1:6"]
|
||||||
}],
|
}],
|
||||||
"vars": [{
|
"vars": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:var_usage_shadowed_local.cc@16@F@foo#@a",
|
"usr": "c:var_usage_shadowed_local.cc@16@F@foo#@a",
|
||||||
"short_name": "a",
|
"short_name": "a",
|
||||||
"qualified_name": "a",
|
"qualified_name": "a",
|
||||||
"definition": "1:2:7",
|
"definition": "2:7",
|
||||||
"uses": ["1:2:7", "1:3:3", "1:8:3"]
|
"uses": ["2:7", "3:3", "8:3"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:var_usage_shadowed_local.cc@43@F@foo#@a",
|
"usr": "c:var_usage_shadowed_local.cc@43@F@foo#@a",
|
||||||
"short_name": "a",
|
"short_name": "a",
|
||||||
"qualified_name": "a",
|
"qualified_name": "a",
|
||||||
"definition": "1:5:9",
|
"definition": "5:9",
|
||||||
"uses": ["1:5:9", "1:6:5"]
|
"uses": ["5:9", "6:5"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -15,23 +15,23 @@ OUTPUT:
|
|||||||
"usr": "c:@F@foo#I#",
|
"usr": "c:@F@foo#I#",
|
||||||
"short_name": "foo",
|
"short_name": "foo",
|
||||||
"qualified_name": "foo",
|
"qualified_name": "foo",
|
||||||
"definition": "1:1:6",
|
"definition": "1:6",
|
||||||
"uses": ["1:1:6"]
|
"uses": ["1:6"]
|
||||||
}],
|
}],
|
||||||
"vars": [{
|
"vars": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:var_usage_shadowed_parameter.cc@9@F@foo#I#@a",
|
"usr": "c:var_usage_shadowed_parameter.cc@9@F@foo#I#@a",
|
||||||
"short_name": "a",
|
"short_name": "a",
|
||||||
"qualified_name": "a",
|
"qualified_name": "a",
|
||||||
"definition": "1:1:14",
|
"definition": "1:14",
|
||||||
"uses": ["1:1:14", "1:2:3", "1:7:3"]
|
"uses": ["1:14", "2:3", "7:3"]
|
||||||
}, {
|
}, {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"usr": "c:var_usage_shadowed_parameter.cc@38@F@foo#I#@a",
|
"usr": "c:var_usage_shadowed_parameter.cc@38@F@foo#I#@a",
|
||||||
"short_name": "a",
|
"short_name": "a",
|
||||||
"qualified_name": "a",
|
"qualified_name": "a",
|
||||||
"definition": "1:4:9",
|
"definition": "4:9",
|
||||||
"uses": ["1:4:9", "1:5:5"]
|
"uses": ["4:9", "5:5"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -12,16 +12,16 @@ OUTPUT:
|
|||||||
"usr": "c:@F@foo#",
|
"usr": "c:@F@foo#",
|
||||||
"short_name": "foo",
|
"short_name": "foo",
|
||||||
"qualified_name": "foo",
|
"qualified_name": "foo",
|
||||||
"definition": "1:3:6",
|
"definition": "3:6",
|
||||||
"uses": ["1:3:6"]
|
"uses": ["3:6"]
|
||||||
}],
|
}],
|
||||||
"vars": [{
|
"vars": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:var_usage_static.cc@a",
|
"usr": "c:var_usage_static.cc@a",
|
||||||
"short_name": "a",
|
"short_name": "a",
|
||||||
"qualified_name": "a",
|
"qualified_name": "a",
|
||||||
"definition": "1:1:12",
|
"definition": "1:12",
|
||||||
"uses": ["1:1:12", "1:4:3"]
|
"uses": ["1:12", "4:3"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -9,20 +9,20 @@ OUTPUT:
|
|||||||
"usr": "c:@S@Foo",
|
"usr": "c:@S@Foo",
|
||||||
"short_name": "Foo",
|
"short_name": "Foo",
|
||||||
"qualified_name": "Foo",
|
"qualified_name": "Foo",
|
||||||
"definition": "1:1:7",
|
"definition": "1:7",
|
||||||
"vars": [0],
|
"vars": [0],
|
||||||
"instantiations": [0],
|
"instantiations": [0],
|
||||||
"uses": ["*1:1:7", "*1:2:3"]
|
"uses": ["*1:7", "*2:3"]
|
||||||
}],
|
}],
|
||||||
"vars": [{
|
"vars": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@S@Foo@FI@member",
|
"usr": "c:@S@Foo@FI@member",
|
||||||
"short_name": "member",
|
"short_name": "member",
|
||||||
"qualified_name": "Foo::member",
|
"qualified_name": "Foo::member",
|
||||||
"definition": "1:2:8",
|
"definition": "2:8",
|
||||||
"variable_type": 0,
|
"variable_type": 0,
|
||||||
"declaring_type": 0,
|
"declaring_type": 0,
|
||||||
"uses": ["1:2:8"]
|
"uses": ["2:8"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
@ -11,21 +11,21 @@ OUTPUT:
|
|||||||
"usr": "c:@S@Foo",
|
"usr": "c:@S@Foo",
|
||||||
"short_name": "Foo",
|
"short_name": "Foo",
|
||||||
"qualified_name": "Foo",
|
"qualified_name": "Foo",
|
||||||
"definition": "1:1:7",
|
"definition": "1:7",
|
||||||
"vars": [0],
|
"vars": [0],
|
||||||
"instantiations": [0],
|
"instantiations": [0],
|
||||||
"uses": ["*1:1:7", "*1:2:10", "*1:4:1", "1:4:6"]
|
"uses": ["*1:7", "*2:10", "*4:1", "4:6"]
|
||||||
}],
|
}],
|
||||||
"vars": [{
|
"vars": [{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"usr": "c:@S@Foo@member",
|
"usr": "c:@S@Foo@member",
|
||||||
"short_name": "member",
|
"short_name": "member",
|
||||||
"qualified_name": "Foo::member",
|
"qualified_name": "Foo::member",
|
||||||
"declaration": "1:2:15",
|
"declaration": "2:15",
|
||||||
"definition": "1:4:11",
|
"definition": "4:11",
|
||||||
"variable_type": 0,
|
"variable_type": 0,
|
||||||
"declaring_type": 0,
|
"declaring_type": 0,
|
||||||
"uses": ["1:2:15", "1:4:11"]
|
"uses": ["2:15", "4:11"]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user