mirror of
				https://github.com/MaskRay/ccls.git
				synced 2025-11-03 22:04:24 +00:00 
			
		
		
		
	Rename qualified_name to detailed_name.
This commit is contained in:
		
							parent
							
								
									e55124b7be
								
							
						
					
					
						commit
						f4e16067b7
					
				@ -133,11 +133,11 @@ optional<QueryableLocation> GetDefinitionSpellingOfSymbol(QueryableDatabase* db,
 | 
				
			|||||||
std::string GetHoverForSymbol(QueryableDatabase* db, const SymbolIdx& symbol) {
 | 
					std::string GetHoverForSymbol(QueryableDatabase* db, const SymbolIdx& symbol) {
 | 
				
			||||||
  switch (symbol.kind) {
 | 
					  switch (symbol.kind) {
 | 
				
			||||||
  case SymbolKind::Type:
 | 
					  case SymbolKind::Type:
 | 
				
			||||||
    return db->types[symbol.idx].def.qualified_name;
 | 
					    return db->types[symbol.idx].def.detailed_name;
 | 
				
			||||||
  case SymbolKind::Func:
 | 
					  case SymbolKind::Func:
 | 
				
			||||||
    return db->funcs[symbol.idx].def.qualified_name;
 | 
					    return db->funcs[symbol.idx].def.detailed_name;
 | 
				
			||||||
  case SymbolKind::Var:
 | 
					  case SymbolKind::Var:
 | 
				
			||||||
    return db->vars[symbol.idx].def.qualified_name;
 | 
					    return db->vars[symbol.idx].def.detailed_name;
 | 
				
			||||||
  case SymbolKind::File:
 | 
					  case SymbolKind::File:
 | 
				
			||||||
  case SymbolKind::Invalid: {
 | 
					  case SymbolKind::Invalid: {
 | 
				
			||||||
    assert(false && "unexpected");
 | 
					    assert(false && "unexpected");
 | 
				
			||||||
@ -352,17 +352,17 @@ lsSymbolInformation GetSymbolInfo(QueryableDatabase* db, WorkingFiles* working_f
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
    case SymbolKind::Type: {
 | 
					    case SymbolKind::Type: {
 | 
				
			||||||
      QueryableTypeDef* def = symbol.ResolveType(db);
 | 
					      QueryableTypeDef* def = symbol.ResolveType(db);
 | 
				
			||||||
      info.name = def->def.qualified_name;
 | 
					      info.name = def->def.detailed_name;
 | 
				
			||||||
      info.kind = lsSymbolKind::Class;
 | 
					      info.kind = lsSymbolKind::Class;
 | 
				
			||||||
      break;
 | 
					      break;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    case SymbolKind::Func: {
 | 
					    case SymbolKind::Func: {
 | 
				
			||||||
      QueryableFuncDef* def = symbol.ResolveFunc(db);
 | 
					      QueryableFuncDef* def = symbol.ResolveFunc(db);
 | 
				
			||||||
      
 | 
					      
 | 
				
			||||||
      info.name = def->def.qualified_name;
 | 
					      info.name = def->def.detailed_name;
 | 
				
			||||||
      if (def->def.declaring_type.has_value()) {
 | 
					      if (def->def.declaring_type.has_value()) {
 | 
				
			||||||
        info.kind = lsSymbolKind::Method;
 | 
					        info.kind = lsSymbolKind::Method;
 | 
				
			||||||
        info.containerName = db->types[def->def.declaring_type->id].def.qualified_name;
 | 
					        info.containerName = db->types[def->def.declaring_type->id].def.detailed_name;
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
      else {
 | 
					      else {
 | 
				
			||||||
        info.kind = lsSymbolKind::Function;
 | 
					        info.kind = lsSymbolKind::Function;
 | 
				
			||||||
@ -371,7 +371,7 @@ lsSymbolInformation GetSymbolInfo(QueryableDatabase* db, WorkingFiles* working_f
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
    case SymbolKind::Var: {
 | 
					    case SymbolKind::Var: {
 | 
				
			||||||
      QueryableVarDef* def = symbol.ResolveVar(db);
 | 
					      QueryableVarDef* def = symbol.ResolveVar(db);
 | 
				
			||||||
      info.name += def->def.qualified_name;
 | 
					      info.name += def->def.detailed_name;
 | 
				
			||||||
      info.kind = lsSymbolKind::Variable;
 | 
					      info.kind = lsSymbolKind::Variable;
 | 
				
			||||||
      break;
 | 
					      break;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@ -1235,17 +1235,17 @@ void QueryDbMainLoop(
 | 
				
			|||||||
      response.id = msg->id;
 | 
					      response.id = msg->id;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      std::cerr << "- Considering " << db->qualified_names.size()
 | 
					      std::cerr << "- Considering " << db->detailed_names.size()
 | 
				
			||||||
        << " candidates for query " << msg->params.query << std::endl;
 | 
					        << " candidates for query " << msg->params.query << std::endl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      std::string query = msg->params.query;
 | 
					      std::string query = msg->params.query;
 | 
				
			||||||
      for (int i = 0; i < db->qualified_names.size(); ++i) {
 | 
					      for (int i = 0; i < db->detailed_names.size(); ++i) {
 | 
				
			||||||
        if (response.result.size() > kMaxWorkspaceSearchResults) {
 | 
					        if (response.result.size() > kMaxWorkspaceSearchResults) {
 | 
				
			||||||
          std::cerr << "Query exceeded maximum number of responses (" << kMaxWorkspaceSearchResults << "), output may not contain all results" << std::endl;
 | 
					          std::cerr << "Query exceeded maximum number of responses (" << kMaxWorkspaceSearchResults << "), output may not contain all results" << std::endl;
 | 
				
			||||||
          break;
 | 
					          break;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (db->qualified_names[i].find(query) != std::string::npos) {
 | 
					        if (db->detailed_names[i].find(query) != std::string::npos) {
 | 
				
			||||||
          lsSymbolInformation info = GetSymbolInfo(db, working_files, db->symbols[i]);
 | 
					          lsSymbolInformation info = GetSymbolInfo(db, working_files, db->symbols[i]);
 | 
				
			||||||
          optional<QueryableLocation> location = GetDefinitionExtentOfSymbol(db, db->symbols[i]);
 | 
					          optional<QueryableLocation> location = GetDefinitionExtentOfSymbol(db, db->symbols[i]);
 | 
				
			||||||
          if (!location) {
 | 
					          if (!location) {
 | 
				
			||||||
 | 
				
			|||||||
@ -779,13 +779,13 @@ void indexDeclaration(CXClientData client_data, const CXIdxDeclInfo* decl) {
 | 
				
			|||||||
      // TODO: Verify this gets called multiple times
 | 
					      // TODO: Verify this gets called multiple times
 | 
				
			||||||
      // if (!decl->isRedeclaration) {
 | 
					      // if (!decl->isRedeclaration) {
 | 
				
			||||||
      var_def->def.short_name = decl->entityInfo->name;
 | 
					      var_def->def.short_name = decl->entityInfo->name;
 | 
				
			||||||
      var_def->def.qualified_name =
 | 
					      var_def->def.detailed_name =
 | 
				
			||||||
          ns->QualifiedName(decl->semanticContainer, var_def->def.short_name);
 | 
					          ns->QualifiedName(decl->semanticContainer, var_def->def.short_name);
 | 
				
			||||||
      std::string hover = clang::ToString(clang_getTypeSpelling(clang_getCursorType(decl->cursor)));
 | 
					      std::string hover = clang::ToString(clang_getTypeSpelling(clang_getCursorType(decl->cursor)));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      // Include type in qualified name.
 | 
					      // Include type in qualified name.
 | 
				
			||||||
      if (!hover.empty())
 | 
					      if (!hover.empty())
 | 
				
			||||||
        var_def->def.qualified_name = hover + " " + var_def->def.qualified_name;
 | 
					        var_def->def.detailed_name = hover + " " + var_def->def.detailed_name;
 | 
				
			||||||
      //}
 | 
					      //}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      if (decl->isDefinition) {
 | 
					      if (decl->isDefinition) {
 | 
				
			||||||
@ -886,7 +886,7 @@ void indexDeclaration(CXClientData client_data, const CXIdxDeclInfo* decl) {
 | 
				
			|||||||
        // this may shadow.
 | 
					        // this may shadow.
 | 
				
			||||||
        // if (!decl->isRedeclaration) {
 | 
					        // if (!decl->isRedeclaration) {
 | 
				
			||||||
        func_def->def.short_name = decl->entityInfo->name;
 | 
					        func_def->def.short_name = decl->entityInfo->name;
 | 
				
			||||||
        func_def->def.qualified_name = ns->QualifiedName(
 | 
					        func_def->def.detailed_name = ns->QualifiedName(
 | 
				
			||||||
            decl->semanticContainer, func_def->def.short_name);
 | 
					            decl->semanticContainer, func_def->def.short_name);
 | 
				
			||||||
        //}
 | 
					        //}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -899,11 +899,11 @@ void indexDeclaration(CXClientData client_data, const CXIdxDeclInfo* decl) {
 | 
				
			|||||||
        auto it = std::find(hover.begin(), hover.end(), '(');
 | 
					        auto it = std::find(hover.begin(), hover.end(), '(');
 | 
				
			||||||
        if (it != hover.end()) {
 | 
					        if (it != hover.end()) {
 | 
				
			||||||
          std::string new_qualified_name;
 | 
					          std::string new_qualified_name;
 | 
				
			||||||
          new_qualified_name.resize(hover.size() + func_def->def.qualified_name.size());
 | 
					          new_qualified_name.resize(hover.size() + func_def->def.detailed_name.size());
 | 
				
			||||||
          std::copy(hover.begin(), it, new_qualified_name.begin());
 | 
					          std::copy(hover.begin(), it, new_qualified_name.begin());
 | 
				
			||||||
          std::copy(func_def->def.qualified_name.begin(), func_def->def.qualified_name.end(), new_qualified_name.begin() + std::distance(hover.begin(), it));
 | 
					          std::copy(func_def->def.detailed_name.begin(), func_def->def.detailed_name.end(), new_qualified_name.begin() + std::distance(hover.begin(), it));
 | 
				
			||||||
          std::copy(it, hover.end(), new_qualified_name.begin() + std::distance(hover.begin(), it) + func_def->def.qualified_name.size());
 | 
					          std::copy(it, hover.end(), new_qualified_name.begin() + std::distance(hover.begin(), it) + func_def->def.detailed_name.size());
 | 
				
			||||||
          func_def->def.qualified_name = new_qualified_name;
 | 
					          func_def->def.detailed_name = new_qualified_name;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // TODO: return type
 | 
					        // TODO: return type
 | 
				
			||||||
@ -1037,7 +1037,7 @@ void indexDeclaration(CXClientData client_data, const CXIdxDeclInfo* decl) {
 | 
				
			|||||||
        type_def->def.alias_of = alias_of.value();
 | 
					        type_def->def.alias_of = alias_of.value();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      type_def->def.short_name = decl->entityInfo->name;
 | 
					      type_def->def.short_name = decl->entityInfo->name;
 | 
				
			||||||
      type_def->def.qualified_name =
 | 
					      type_def->def.detailed_name =
 | 
				
			||||||
          ns->QualifiedName(decl->semanticContainer, type_def->def.short_name);
 | 
					          ns->QualifiedName(decl->semanticContainer, type_def->def.short_name);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      type_def->def.definition_spelling = db->id_cache.ResolveSpelling(decl->cursor, false /*interesting*/);
 | 
					      type_def->def.definition_spelling = db->id_cache.ResolveSpelling(decl->cursor, false /*interesting*/);
 | 
				
			||||||
@ -1073,7 +1073,7 @@ void indexDeclaration(CXClientData client_data, const CXIdxDeclInfo* decl) {
 | 
				
			|||||||
        type_def->def.short_name = "<anonymous>";
 | 
					        type_def->def.short_name = "<anonymous>";
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      type_def->def.qualified_name =
 | 
					      type_def->def.detailed_name =
 | 
				
			||||||
          ns->QualifiedName(decl->semanticContainer, type_def->def.short_name);
 | 
					          ns->QualifiedName(decl->semanticContainer, type_def->def.short_name);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      // }
 | 
					      // }
 | 
				
			||||||
 | 
				
			|||||||
@ -113,7 +113,7 @@ struct TypeDefDefinitionData {
 | 
				
			|||||||
  // General metadata.
 | 
					  // General metadata.
 | 
				
			||||||
  std::string usr;
 | 
					  std::string usr;
 | 
				
			||||||
  std::string short_name;
 | 
					  std::string short_name;
 | 
				
			||||||
  std::string qualified_name;
 | 
					  std::string detailed_name;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // While a class/type can technically have a separate declaration/definition,
 | 
					  // While a class/type can technically have a separate declaration/definition,
 | 
				
			||||||
  // it doesn't really happen in practice. The declaration never contains
 | 
					  // it doesn't really happen in practice. The declaration never contains
 | 
				
			||||||
@ -145,7 +145,7 @@ struct TypeDefDefinitionData {
 | 
				
			|||||||
  bool operator==(const TypeDefDefinitionData<TypeId, FuncId, VarId, Range>&
 | 
					  bool operator==(const TypeDefDefinitionData<TypeId, FuncId, VarId, 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 &&
 | 
					           detailed_name == other.detailed_name &&
 | 
				
			||||||
           definition_spelling == other.definition_spelling &&
 | 
					           definition_spelling == other.definition_spelling &&
 | 
				
			||||||
           definition_extent == other.definition_extent &&
 | 
					           definition_extent == other.definition_extent &&
 | 
				
			||||||
           alias_of == other.alias_of &&
 | 
					           alias_of == other.alias_of &&
 | 
				
			||||||
@ -168,7 +168,7 @@ void Reflect(TVisitor& visitor,
 | 
				
			|||||||
  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(detailed_name);
 | 
				
			||||||
  REFLECT_MEMBER(definition);
 | 
					  REFLECT_MEMBER(definition);
 | 
				
			||||||
  REFLECT_MEMBER(alias_of);
 | 
					  REFLECT_MEMBER(alias_of);
 | 
				
			||||||
  REFLECT_MEMBER(parents);
 | 
					  REFLECT_MEMBER(parents);
 | 
				
			||||||
@ -225,7 +225,7 @@ 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 detailed_name;
 | 
				
			||||||
  optional<Range> definition_spelling;
 | 
					  optional<Range> definition_spelling;
 | 
				
			||||||
  optional<Range> definition_extent;
 | 
					  optional<Range> definition_extent;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -250,7 +250,7 @@ struct FuncDefDefinitionData {
 | 
				
			|||||||
      const FuncDefDefinitionData<TypeId, FuncId, VarId, FuncRef, Range>&
 | 
					      const FuncDefDefinitionData<TypeId, FuncId, VarId, FuncRef, 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 &&
 | 
					           detailed_name == other.detailed_name &&
 | 
				
			||||||
           definition_spelling == other.definition_spelling &&
 | 
					           definition_spelling == other.definition_spelling &&
 | 
				
			||||||
           definition_extent == other.definition_extent &&
 | 
					           definition_extent == other.definition_extent &&
 | 
				
			||||||
           declaring_type == other.declaring_type && base == other.base &&
 | 
					           declaring_type == other.declaring_type && base == other.base &&
 | 
				
			||||||
@ -275,7 +275,7 @@ void Reflect(
 | 
				
			|||||||
  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(detailed_name);
 | 
				
			||||||
  REFLECT_MEMBER(definition);
 | 
					  REFLECT_MEMBER(definition);
 | 
				
			||||||
  REFLECT_MEMBER(declaring_type);
 | 
					  REFLECT_MEMBER(declaring_type);
 | 
				
			||||||
  REFLECT_MEMBER(base);
 | 
					  REFLECT_MEMBER(base);
 | 
				
			||||||
@ -332,7 +332,7 @@ 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 detailed_name;
 | 
				
			||||||
  optional<Range> declaration;
 | 
					  optional<Range> declaration;
 | 
				
			||||||
  // TODO: definitions should be a list of ranges, since there can be more
 | 
					  // TODO: definitions should be a list of ranges, since there can be more
 | 
				
			||||||
  //       than one - when??
 | 
					  //       than one - when??
 | 
				
			||||||
@ -351,7 +351,7 @@ struct VarDefDefinitionData {
 | 
				
			|||||||
  bool operator==(const VarDefDefinitionData<TypeId, FuncId, VarId, Range>&
 | 
					  bool operator==(const VarDefDefinitionData<TypeId, FuncId, VarId, 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 &&
 | 
					           detailed_name == other.detailed_name &&
 | 
				
			||||||
           declaration == other.declaration &&
 | 
					           declaration == other.declaration &&
 | 
				
			||||||
           definition_spelling == other.definition_spelling &&
 | 
					           definition_spelling == other.definition_spelling &&
 | 
				
			||||||
           definition_extent == other.definition_extent &&
 | 
					           definition_extent == other.definition_extent &&
 | 
				
			||||||
@ -374,7 +374,7 @@ void Reflect(TVisitor& visitor,
 | 
				
			|||||||
  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(detailed_name);
 | 
				
			||||||
  REFLECT_MEMBER(definition_spelling);
 | 
					  REFLECT_MEMBER(definition_spelling);
 | 
				
			||||||
  REFLECT_MEMBER(definition_extent);
 | 
					  REFLECT_MEMBER(definition_extent);
 | 
				
			||||||
  REFLECT_MEMBER(variable_type);
 | 
					  REFLECT_MEMBER(variable_type);
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										26
									
								
								src/query.cc
									
									
									
									
									
								
							
							
						
						
									
										26
									
								
								src/query.cc
									
									
									
									
									
								
							@ -20,7 +20,7 @@ QueryableTypeDef::DefUpdate ToQuery(const IdMap& id_map, const IndexedTypeDef::D
 | 
				
			|||||||
  assert(!type.short_name.empty());
 | 
					  assert(!type.short_name.empty());
 | 
				
			||||||
  QueryableTypeDef::DefUpdate result(type.usr);
 | 
					  QueryableTypeDef::DefUpdate result(type.usr);
 | 
				
			||||||
  result.short_name = type.short_name;
 | 
					  result.short_name = type.short_name;
 | 
				
			||||||
  result.qualified_name = type.qualified_name;
 | 
					  result.detailed_name = type.detailed_name;
 | 
				
			||||||
  result.definition_spelling = id_map.ToQuery(type.definition_spelling);
 | 
					  result.definition_spelling = id_map.ToQuery(type.definition_spelling);
 | 
				
			||||||
  result.definition_extent = id_map.ToQuery(type.definition_extent);
 | 
					  result.definition_extent = id_map.ToQuery(type.definition_extent);
 | 
				
			||||||
  result.alias_of = id_map.ToQuery(type.alias_of);
 | 
					  result.alias_of = id_map.ToQuery(type.alias_of);
 | 
				
			||||||
@ -35,7 +35,7 @@ QueryableFuncDef::DefUpdate ToQuery(const IdMap& id_map, const IndexedFuncDef::D
 | 
				
			|||||||
  assert(!func.short_name.empty());
 | 
					  assert(!func.short_name.empty());
 | 
				
			||||||
  QueryableFuncDef::DefUpdate result(func.usr);
 | 
					  QueryableFuncDef::DefUpdate result(func.usr);
 | 
				
			||||||
  result.short_name = func.short_name;
 | 
					  result.short_name = func.short_name;
 | 
				
			||||||
  result.qualified_name = func.qualified_name;
 | 
					  result.detailed_name = func.detailed_name;
 | 
				
			||||||
  result.definition_spelling = id_map.ToQuery(func.definition_spelling);
 | 
					  result.definition_spelling = id_map.ToQuery(func.definition_spelling);
 | 
				
			||||||
  result.definition_extent = id_map.ToQuery(func.definition_extent);
 | 
					  result.definition_extent = id_map.ToQuery(func.definition_extent);
 | 
				
			||||||
  result.declaring_type = id_map.ToQuery(func.declaring_type);
 | 
					  result.declaring_type = id_map.ToQuery(func.declaring_type);
 | 
				
			||||||
@ -49,7 +49,7 @@ QueryableVarDef::DefUpdate ToQuery(const IdMap& id_map, const IndexedVarDef::Def
 | 
				
			|||||||
  assert(!var.short_name.empty());
 | 
					  assert(!var.short_name.empty());
 | 
				
			||||||
  QueryableVarDef::DefUpdate result(var.usr);
 | 
					  QueryableVarDef::DefUpdate result(var.usr);
 | 
				
			||||||
  result.short_name = var.short_name;
 | 
					  result.short_name = var.short_name;
 | 
				
			||||||
  result.qualified_name = var.qualified_name;
 | 
					  result.detailed_name = var.detailed_name;
 | 
				
			||||||
  result.declaration = id_map.ToQuery(var.declaration);
 | 
					  result.declaration = id_map.ToQuery(var.declaration);
 | 
				
			||||||
  result.definition_spelling = id_map.ToQuery(var.definition_spelling);
 | 
					  result.definition_spelling = id_map.ToQuery(var.definition_spelling);
 | 
				
			||||||
  result.definition_extent = id_map.ToQuery(var.definition_extent);
 | 
					  result.definition_extent = id_map.ToQuery(var.definition_extent);
 | 
				
			||||||
@ -588,14 +588,14 @@ void IndexUpdate::Merge(const IndexUpdate& update) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void SetQualifiedNameForWorkspaceSearch(QueryableDatabase* db, size_t* qualified_name_index, SymbolKind kind, size_t symbol_index, const std::string& name) {
 | 
					void SetDetailedNameForWorkspaceSearch(QueryableDatabase* db, size_t* qualified_name_index, SymbolKind kind, size_t symbol_index, const std::string& name) {
 | 
				
			||||||
  if (*qualified_name_index == -1) {
 | 
					  if (*qualified_name_index == -1) {
 | 
				
			||||||
    db->qualified_names.push_back(name);
 | 
					    db->detailed_names.push_back(name);
 | 
				
			||||||
    db->symbols.push_back(SymbolIdx(kind, symbol_index));
 | 
					    db->symbols.push_back(SymbolIdx(kind, symbol_index));
 | 
				
			||||||
    *qualified_name_index = db->qualified_names.size() - 1;
 | 
					    *qualified_name_index = db->detailed_names.size() - 1;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  else {
 | 
					  else {
 | 
				
			||||||
    db->qualified_names[*qualified_name_index] = name;
 | 
					    db->detailed_names[*qualified_name_index] = name;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -623,7 +623,7 @@ void QueryableDatabase::ImportOrUpdate(const std::vector<QueryableFile::DefUpdat
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void QueryableDatabase::ImportOrUpdate(const std::vector<QueryableTypeDef::DefUpdate>& updates) {
 | 
					void QueryableDatabase::ImportOrUpdate(const std::vector<QueryableTypeDef::DefUpdate>& updates) {
 | 
				
			||||||
  for (auto& def : updates) {
 | 
					  for (auto& def : updates) {
 | 
				
			||||||
    if (def.qualified_name.empty())
 | 
					    if (def.detailed_name.empty())
 | 
				
			||||||
      continue;
 | 
					      continue;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    auto it = usr_to_symbol.find(def.usr);
 | 
					    auto it = usr_to_symbol.find(def.usr);
 | 
				
			||||||
@ -634,13 +634,13 @@ void QueryableDatabase::ImportOrUpdate(const std::vector<QueryableTypeDef::DefUp
 | 
				
			|||||||
      continue;
 | 
					      continue;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    existing.def = def;
 | 
					    existing.def = def;
 | 
				
			||||||
    SetQualifiedNameForWorkspaceSearch(this, &existing.qualified_name_idx, SymbolKind::Type, it->second.idx, def.qualified_name);
 | 
					    SetDetailedNameForWorkspaceSearch(this, &existing.detailed_name_idx, SymbolKind::Type, it->second.idx, def.detailed_name);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void QueryableDatabase::ImportOrUpdate(const std::vector<QueryableFuncDef::DefUpdate>& updates) {
 | 
					void QueryableDatabase::ImportOrUpdate(const std::vector<QueryableFuncDef::DefUpdate>& updates) {
 | 
				
			||||||
  for (auto& def : updates) {
 | 
					  for (auto& def : updates) {
 | 
				
			||||||
    if (def.qualified_name.empty())
 | 
					    if (def.detailed_name.empty())
 | 
				
			||||||
      continue;
 | 
					      continue;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    auto it = usr_to_symbol.find(def.usr);
 | 
					    auto it = usr_to_symbol.find(def.usr);
 | 
				
			||||||
@ -651,13 +651,13 @@ void QueryableDatabase::ImportOrUpdate(const std::vector<QueryableFuncDef::DefUp
 | 
				
			|||||||
      continue;
 | 
					      continue;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    existing.def = def;
 | 
					    existing.def = def;
 | 
				
			||||||
    SetQualifiedNameForWorkspaceSearch(this, &existing.qualified_name_idx, SymbolKind::Func, it->second.idx, def.qualified_name);
 | 
					    SetDetailedNameForWorkspaceSearch(this, &existing.detailed_name_idx, SymbolKind::Func, it->second.idx, def.detailed_name);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void QueryableDatabase::ImportOrUpdate(const std::vector<QueryableVarDef::DefUpdate>& updates) {
 | 
					void QueryableDatabase::ImportOrUpdate(const std::vector<QueryableVarDef::DefUpdate>& updates) {
 | 
				
			||||||
  for (auto& def : updates) {
 | 
					  for (auto& def : updates) {
 | 
				
			||||||
    if (def.qualified_name.empty())
 | 
					    if (def.detailed_name.empty())
 | 
				
			||||||
      continue;
 | 
					      continue;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    auto it = usr_to_symbol.find(def.usr);
 | 
					    auto it = usr_to_symbol.find(def.usr);
 | 
				
			||||||
@ -669,7 +669,7 @@ void QueryableDatabase::ImportOrUpdate(const std::vector<QueryableVarDef::DefUpd
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    existing.def = def;
 | 
					    existing.def = def;
 | 
				
			||||||
    if (def.declaring_type)
 | 
					    if (def.declaring_type)
 | 
				
			||||||
      SetQualifiedNameForWorkspaceSearch(this, &existing.qualified_name_idx, SymbolKind::Var, it->second.idx, def.qualified_name);
 | 
					      SetDetailedNameForWorkspaceSearch(this, &existing.detailed_name_idx, SymbolKind::Var, it->second.idx, def.detailed_name);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										12
									
								
								src/query.h
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								src/query.h
									
									
									
									
									
								
							@ -158,7 +158,7 @@ struct QueryableFile {
 | 
				
			|||||||
  using DefUpdate = Def;
 | 
					  using DefUpdate = Def;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  DefUpdate def;
 | 
					  DefUpdate def;
 | 
				
			||||||
  size_t qualified_name_idx = -1;
 | 
					  size_t detailed_name_idx = -1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  QueryableFile(const Usr& usr) { def.usr = usr; }
 | 
					  QueryableFile(const Usr& usr) { def.usr = usr; }
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
@ -173,7 +173,7 @@ struct QueryableTypeDef {
 | 
				
			|||||||
  std::vector<QueryTypeId> derived;
 | 
					  std::vector<QueryTypeId> derived;
 | 
				
			||||||
  std::vector<QueryVarId> instantiations;
 | 
					  std::vector<QueryVarId> instantiations;
 | 
				
			||||||
  std::vector<QueryableLocation> uses;
 | 
					  std::vector<QueryableLocation> uses;
 | 
				
			||||||
  size_t qualified_name_idx = -1;
 | 
					  size_t detailed_name_idx = -1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  QueryableTypeDef(const Usr& usr) : def(usr) {}
 | 
					  QueryableTypeDef(const Usr& usr) : def(usr) {}
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
@ -188,7 +188,7 @@ struct QueryableFuncDef {
 | 
				
			|||||||
  std::vector<QueryableLocation> declarations;
 | 
					  std::vector<QueryableLocation> declarations;
 | 
				
			||||||
  std::vector<QueryFuncId> derived;
 | 
					  std::vector<QueryFuncId> derived;
 | 
				
			||||||
  std::vector<QueryFuncRef> callers;
 | 
					  std::vector<QueryFuncRef> callers;
 | 
				
			||||||
  size_t qualified_name_idx = -1;
 | 
					  size_t detailed_name_idx = -1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  QueryableFuncDef(const Usr& usr) : def(usr) {}
 | 
					  QueryableFuncDef(const Usr& usr) : def(usr) {}
 | 
				
			||||||
  QueryableFuncDef(const DefUpdate& def) : def(def) {}
 | 
					  QueryableFuncDef(const DefUpdate& def) : def(def) {}
 | 
				
			||||||
@ -200,7 +200,7 @@ struct QueryableVarDef {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  DefUpdate def;
 | 
					  DefUpdate def;
 | 
				
			||||||
  std::vector<QueryableLocation> uses;
 | 
					  std::vector<QueryableLocation> uses;
 | 
				
			||||||
  size_t qualified_name_idx = -1;
 | 
					  size_t detailed_name_idx = -1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  QueryableVarDef(const Usr& usr) : def(usr) {}
 | 
					  QueryableVarDef(const Usr& usr) : def(usr) {}
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
@ -249,8 +249,8 @@ struct IndexUpdate {
 | 
				
			|||||||
// in-memory.
 | 
					// in-memory.
 | 
				
			||||||
struct QueryableDatabase {
 | 
					struct QueryableDatabase {
 | 
				
			||||||
  // Indicies between lookup vectors are related to symbols, ie, index 5 in
 | 
					  // Indicies between lookup vectors are related to symbols, ie, index 5 in
 | 
				
			||||||
  // |qualified_names| matches index 5 in |symbols|.
 | 
					  // |detailed_names| matches index 5 in |symbols|.
 | 
				
			||||||
  std::vector<std::string> qualified_names;
 | 
					  std::vector<std::string> detailed_names;
 | 
				
			||||||
  std::vector<SymbolIdx> symbols;
 | 
					  std::vector<SymbolIdx> symbols;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Raw data storage.
 | 
					  // Raw data storage.
 | 
				
			||||||
 | 
				
			|||||||
@ -116,7 +116,7 @@ void Reflect(TVisitor& visitor, IndexedTypeDef& value) {
 | 
				
			|||||||
  REFLECT_MEMBER2("id", value.id);
 | 
					  REFLECT_MEMBER2("id", value.id);
 | 
				
			||||||
  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("detailed_name", value.def.detailed_name);
 | 
				
			||||||
  REFLECT_MEMBER2("definition_spelling", value.def.definition_spelling);
 | 
					  REFLECT_MEMBER2("definition_spelling", value.def.definition_spelling);
 | 
				
			||||||
  REFLECT_MEMBER2("definition_extent", value.def.definition_extent);
 | 
					  REFLECT_MEMBER2("definition_extent", value.def.definition_extent);
 | 
				
			||||||
  REFLECT_MEMBER2("alias_of", value.def.alias_of);
 | 
					  REFLECT_MEMBER2("alias_of", value.def.alias_of);
 | 
				
			||||||
@ -152,7 +152,7 @@ void Reflect(TVisitor& visitor, IndexedFuncDef& value) {
 | 
				
			|||||||
  REFLECT_MEMBER2("id", value.id);
 | 
					  REFLECT_MEMBER2("id", value.id);
 | 
				
			||||||
  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("detailed_name", value.def.detailed_name);
 | 
				
			||||||
  REFLECT_MEMBER2("declarations", value.declarations);
 | 
					  REFLECT_MEMBER2("declarations", value.declarations);
 | 
				
			||||||
  REFLECT_MEMBER2("definition_spelling", value.def.definition_spelling);
 | 
					  REFLECT_MEMBER2("definition_spelling", value.def.definition_spelling);
 | 
				
			||||||
  REFLECT_MEMBER2("definition_extent", value.def.definition_extent);
 | 
					  REFLECT_MEMBER2("definition_extent", value.def.definition_extent);
 | 
				
			||||||
@ -187,7 +187,7 @@ void Reflect(TVisitor& visitor, IndexedVarDef& value) {
 | 
				
			|||||||
  REFLECT_MEMBER2("id", value.id);
 | 
					  REFLECT_MEMBER2("id", value.id);
 | 
				
			||||||
  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("detailed_name", value.def.detailed_name);
 | 
				
			||||||
  REFLECT_MEMBER2("declaration", value.def.declaration);
 | 
					  REFLECT_MEMBER2("declaration", value.def.declaration);
 | 
				
			||||||
  REFLECT_MEMBER2("definition_spelling", value.def.definition_spelling);
 | 
					  REFLECT_MEMBER2("definition_spelling", value.def.definition_spelling);
 | 
				
			||||||
  REFLECT_MEMBER2("definition_extent", value.def.definition_extent);
 | 
					  REFLECT_MEMBER2("definition_extent", value.def.definition_extent);
 | 
				
			||||||
 | 
				
			|||||||
@ -10,7 +10,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@S@Foo",
 | 
					      "usr": "c:@S@Foo",
 | 
				
			||||||
      "short_name": "Foo",
 | 
					      "short_name": "Foo",
 | 
				
			||||||
      "qualified_name": "Foo",
 | 
					      "detailed_name": "Foo",
 | 
				
			||||||
      "definition_spelling": "3:7-3:10",
 | 
					      "definition_spelling": "3:7-3:10",
 | 
				
			||||||
      "definition_extent": "3:1-3:13",
 | 
					      "definition_extent": "3:1-3:13",
 | 
				
			||||||
      "uses": ["1:7-1:10", "2:7-2:10", "*3:7-3:10", "4:7-4:10"]
 | 
					      "uses": ["1:7-1:10", "2:7-2:10", "*3:7-3:10", "4:7-4:10"]
 | 
				
			||||||
 | 
				
			|||||||
@ -15,7 +15,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@S@Foo",
 | 
					      "usr": "c:@S@Foo",
 | 
				
			||||||
      "short_name": "Foo",
 | 
					      "short_name": "Foo",
 | 
				
			||||||
      "qualified_name": "Foo",
 | 
					      "detailed_name": "Foo",
 | 
				
			||||||
      "definition_spelling": "1:7-1:10",
 | 
					      "definition_spelling": "1:7-1:10",
 | 
				
			||||||
      "definition_extent": "1:1-4:2",
 | 
					      "definition_extent": "1:1-4:2",
 | 
				
			||||||
      "funcs": [0],
 | 
					      "funcs": [0],
 | 
				
			||||||
@ -26,7 +26,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@S@Foo@F@Foo#",
 | 
					      "usr": "c:@S@Foo@F@Foo#",
 | 
				
			||||||
      "short_name": "Foo",
 | 
					      "short_name": "Foo",
 | 
				
			||||||
      "qualified_name": "void Foo::Foo()",
 | 
					      "detailed_name": "void Foo::Foo()",
 | 
				
			||||||
      "definition_spelling": "3:3-3:6",
 | 
					      "definition_spelling": "3:3-3:6",
 | 
				
			||||||
      "definition_extent": "3:3-3:11",
 | 
					      "definition_extent": "3:3-3:11",
 | 
				
			||||||
      "declaring_type": 0,
 | 
					      "declaring_type": 0,
 | 
				
			||||||
@ -35,7 +35,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@F@foo#",
 | 
					      "usr": "c:@F@foo#",
 | 
				
			||||||
      "short_name": "foo",
 | 
					      "short_name": "foo",
 | 
				
			||||||
      "qualified_name": "void foo()",
 | 
					      "detailed_name": "void foo()",
 | 
				
			||||||
      "definition_spelling": "6:6-6:9",
 | 
					      "definition_spelling": "6:6-6:9",
 | 
				
			||||||
      "definition_extent": "6:1-9:2",
 | 
					      "definition_extent": "6:1-9:2",
 | 
				
			||||||
      "callees": ["0@7:7-7:8", "0@8:17-8:20"]
 | 
					      "callees": ["0@7:7-7:8", "0@8:17-8:20"]
 | 
				
			||||||
@ -44,7 +44,7 @@ OUTPUT:
 | 
				
			|||||||
      "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": "Foo f",
 | 
					      "detailed_name": "Foo f",
 | 
				
			||||||
      "definition_spelling": "7:7-7:8",
 | 
					      "definition_spelling": "7:7-7:8",
 | 
				
			||||||
      "definition_extent": "7:3-7:8",
 | 
					      "definition_extent": "7:3-7:8",
 | 
				
			||||||
      "variable_type": 0,
 | 
					      "variable_type": 0,
 | 
				
			||||||
@ -53,7 +53,7 @@ OUTPUT:
 | 
				
			|||||||
      "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": "Foo * f2",
 | 
					      "detailed_name": "Foo * f2",
 | 
				
			||||||
      "definition_spelling": "8:8-8:10",
 | 
					      "definition_spelling": "8:8-8:10",
 | 
				
			||||||
      "definition_extent": "8:3-8:22",
 | 
					      "definition_extent": "8:3-8:22",
 | 
				
			||||||
      "variable_type": 0,
 | 
					      "variable_type": 0,
 | 
				
			||||||
 | 
				
			|||||||
@ -20,7 +20,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@S@Foo",
 | 
					      "usr": "c:@S@Foo",
 | 
				
			||||||
      "short_name": "Foo",
 | 
					      "short_name": "Foo",
 | 
				
			||||||
      "qualified_name": "Foo",
 | 
					      "detailed_name": "Foo",
 | 
				
			||||||
      "definition_spelling": "1:7-1:10",
 | 
					      "definition_spelling": "1:7-1:10",
 | 
				
			||||||
      "definition_extent": "1:1-5:2",
 | 
					      "definition_extent": "1:1-5:2",
 | 
				
			||||||
      "funcs": [0, 1],
 | 
					      "funcs": [0, 1],
 | 
				
			||||||
@ -31,7 +31,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@S@Foo@F@Foo#",
 | 
					      "usr": "c:@S@Foo@F@Foo#",
 | 
				
			||||||
      "short_name": "Foo",
 | 
					      "short_name": "Foo",
 | 
				
			||||||
      "qualified_name": "void Foo::Foo()",
 | 
					      "detailed_name": "void Foo::Foo()",
 | 
				
			||||||
      "definition_spelling": "3:3-3:6",
 | 
					      "definition_spelling": "3:3-3:6",
 | 
				
			||||||
      "definition_extent": "3:3-3:11",
 | 
					      "definition_extent": "3:3-3:11",
 | 
				
			||||||
      "declaring_type": 0,
 | 
					      "declaring_type": 0,
 | 
				
			||||||
@ -40,7 +40,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@S@Foo@F@~Foo#",
 | 
					      "usr": "c:@S@Foo@F@~Foo#",
 | 
				
			||||||
      "short_name": "~Foo",
 | 
					      "short_name": "~Foo",
 | 
				
			||||||
      "qualified_name": "void Foo::~Foo() noexcept",
 | 
					      "detailed_name": "void Foo::~Foo() noexcept",
 | 
				
			||||||
      "definition_spelling": "4:3-4:7",
 | 
					      "definition_spelling": "4:3-4:7",
 | 
				
			||||||
      "definition_extent": "4:3-4:12",
 | 
					      "definition_extent": "4:3-4:12",
 | 
				
			||||||
      "declaring_type": 0
 | 
					      "declaring_type": 0
 | 
				
			||||||
@ -48,7 +48,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 2,
 | 
					      "id": 2,
 | 
				
			||||||
      "usr": "c:@F@foo#",
 | 
					      "usr": "c:@F@foo#",
 | 
				
			||||||
      "short_name": "foo",
 | 
					      "short_name": "foo",
 | 
				
			||||||
      "qualified_name": "void foo()",
 | 
					      "detailed_name": "void foo()",
 | 
				
			||||||
      "definition_spelling": "7:6-7:9",
 | 
					      "definition_spelling": "7:6-7:9",
 | 
				
			||||||
      "definition_extent": "7:1-9:2",
 | 
					      "definition_extent": "7:1-9:2",
 | 
				
			||||||
      "callees": ["0@8:7-8:8"]
 | 
					      "callees": ["0@8:7-8:8"]
 | 
				
			||||||
@ -57,7 +57,7 @@ OUTPUT:
 | 
				
			|||||||
      "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": "Foo f",
 | 
					      "detailed_name": "Foo f",
 | 
				
			||||||
      "definition_spelling": "8:7-8:8",
 | 
					      "definition_spelling": "8:7-8:8",
 | 
				
			||||||
      "definition_extent": "8:3-8:8",
 | 
					      "definition_extent": "8:3-8:8",
 | 
				
			||||||
      "variable_type": 0,
 | 
					      "variable_type": 0,
 | 
				
			||||||
 | 
				
			|||||||
@ -10,7 +10,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@S@Foo",
 | 
					      "usr": "c:@S@Foo",
 | 
				
			||||||
      "short_name": "Foo",
 | 
					      "short_name": "Foo",
 | 
				
			||||||
      "qualified_name": "Foo",
 | 
					      "detailed_name": "Foo",
 | 
				
			||||||
      "definition_spelling": "1:8-1:11",
 | 
					      "definition_spelling": "1:8-1:11",
 | 
				
			||||||
      "definition_extent": "1:1-1:14",
 | 
					      "definition_extent": "1:1-1:14",
 | 
				
			||||||
      "funcs": [0],
 | 
					      "funcs": [0],
 | 
				
			||||||
@ -20,7 +20,7 @@ OUTPUT:
 | 
				
			|||||||
      "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": "void Foo::Foo()",
 | 
					      "detailed_name": "void Foo::Foo()",
 | 
				
			||||||
      "definition_spelling": "4:6-4:9",
 | 
					      "definition_spelling": "4:6-4:9",
 | 
				
			||||||
      "definition_extent": "4:1-4:11",
 | 
					      "definition_extent": "4:1-4:11",
 | 
				
			||||||
      "declaring_type": 0
 | 
					      "declaring_type": 0
 | 
				
			||||||
 | 
				
			|||||||
@ -12,7 +12,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@S@Foo",
 | 
					      "usr": "c:@S@Foo",
 | 
				
			||||||
      "short_name": "Foo",
 | 
					      "short_name": "Foo",
 | 
				
			||||||
      "qualified_name": "Foo",
 | 
					      "detailed_name": "Foo",
 | 
				
			||||||
      "definition_spelling": "3:7-3:10",
 | 
					      "definition_spelling": "3:7-3:10",
 | 
				
			||||||
      "definition_extent": "3:1-3:13",
 | 
					      "definition_extent": "3:1-3:13",
 | 
				
			||||||
      "uses": ["1:7-1:10", "2:7-2:10", "*3:7-3:10", "4:7-4:10"]
 | 
					      "uses": ["1:7-1:10", "2:7-2:10", "*3:7-3:10", "4:7-4:10"]
 | 
				
			||||||
 | 
				
			|||||||
@ -9,7 +9,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@S@Foo",
 | 
					      "usr": "c:@S@Foo",
 | 
				
			||||||
      "short_name": "Foo",
 | 
					      "short_name": "Foo",
 | 
				
			||||||
      "qualified_name": "Foo",
 | 
					      "detailed_name": "Foo",
 | 
				
			||||||
      "definition_spelling": "1:7-1:10",
 | 
					      "definition_spelling": "1:7-1:10",
 | 
				
			||||||
      "definition_extent": "1:1-3:2",
 | 
					      "definition_extent": "1:1-3:2",
 | 
				
			||||||
      "vars": [0],
 | 
					      "vars": [0],
 | 
				
			||||||
@ -19,7 +19,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@S@Foo@FI@foo",
 | 
					      "usr": "c:@S@Foo@FI@foo",
 | 
				
			||||||
      "short_name": "foo",
 | 
					      "short_name": "foo",
 | 
				
			||||||
      "qualified_name": "int Foo::foo",
 | 
					      "detailed_name": "int Foo::foo",
 | 
				
			||||||
      "definition_spelling": "2:7-2:10",
 | 
					      "definition_spelling": "2:7-2:10",
 | 
				
			||||||
      "definition_extent": "2:3-2:10",
 | 
					      "definition_extent": "2:3-2:10",
 | 
				
			||||||
      "declaring_type": 0,
 | 
					      "declaring_type": 0,
 | 
				
			||||||
 | 
				
			|||||||
@ -11,7 +11,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@S@Foo",
 | 
					      "usr": "c:@S@Foo",
 | 
				
			||||||
      "short_name": "Foo",
 | 
					      "short_name": "Foo",
 | 
				
			||||||
      "qualified_name": "Foo",
 | 
					      "detailed_name": "Foo",
 | 
				
			||||||
      "definition_spelling": "1:7-1:10",
 | 
					      "definition_spelling": "1:7-1:10",
 | 
				
			||||||
      "definition_extent": "1:1-3:2",
 | 
					      "definition_extent": "1:1-3:2",
 | 
				
			||||||
      "vars": [0],
 | 
					      "vars": [0],
 | 
				
			||||||
@ -21,7 +21,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@S@Foo@foo",
 | 
					      "usr": "c:@S@Foo@foo",
 | 
				
			||||||
      "short_name": "foo",
 | 
					      "short_name": "foo",
 | 
				
			||||||
      "qualified_name": "int Foo::foo",
 | 
					      "detailed_name": "int Foo::foo",
 | 
				
			||||||
      "declaration": "2:14-2:17",
 | 
					      "declaration": "2:14-2:17",
 | 
				
			||||||
      "definition_spelling": "5:10-5:13",
 | 
					      "definition_spelling": "5:10-5:13",
 | 
				
			||||||
      "definition_extent": "5:1-5:13",
 | 
					      "definition_extent": "5:1-5:13",
 | 
				
			||||||
 | 
				
			|||||||
@ -11,7 +11,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@F@foo#",
 | 
					      "usr": "c:@F@foo#",
 | 
				
			||||||
      "short_name": "foo",
 | 
					      "short_name": "foo",
 | 
				
			||||||
      "qualified_name": "void foo()",
 | 
					      "detailed_name": "void foo()",
 | 
				
			||||||
      "declarations": ["1:6-1:9", "2:6-2:9", "4:6-4:9"],
 | 
					      "declarations": ["1:6-1:9", "2:6-2:9", "4:6-4:9"],
 | 
				
			||||||
      "definition_spelling": "3:6-3:9",
 | 
					      "definition_spelling": "3:6-3:9",
 | 
				
			||||||
      "definition_extent": "3:1-3:14"
 | 
					      "definition_extent": "3:1-3:14"
 | 
				
			||||||
 | 
				
			|||||||
@ -13,7 +13,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@S@Foo",
 | 
					      "usr": "c:@S@Foo",
 | 
				
			||||||
      "short_name": "Foo",
 | 
					      "short_name": "Foo",
 | 
				
			||||||
      "qualified_name": "Foo",
 | 
					      "detailed_name": "Foo",
 | 
				
			||||||
      "definition_spelling": "1:7-1:10",
 | 
					      "definition_spelling": "1:7-1:10",
 | 
				
			||||||
      "definition_extent": "1:1-5:2",
 | 
					      "definition_extent": "1:1-5:2",
 | 
				
			||||||
      "funcs": [0, 1, 2],
 | 
					      "funcs": [0, 1, 2],
 | 
				
			||||||
@ -23,21 +23,21 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@S@Foo@F@declonly#",
 | 
					      "usr": "c:@S@Foo@F@declonly#",
 | 
				
			||||||
      "short_name": "declonly",
 | 
					      "short_name": "declonly",
 | 
				
			||||||
      "qualified_name": "void Foo::declonly()",
 | 
					      "detailed_name": "void Foo::declonly()",
 | 
				
			||||||
      "declarations": ["2:8-2:16"],
 | 
					      "declarations": ["2:8-2:16"],
 | 
				
			||||||
      "declaring_type": 0
 | 
					      "declaring_type": 0
 | 
				
			||||||
    }, {
 | 
					    }, {
 | 
				
			||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@S@Foo@F@purevirtual#",
 | 
					      "usr": "c:@S@Foo@F@purevirtual#",
 | 
				
			||||||
      "short_name": "purevirtual",
 | 
					      "short_name": "purevirtual",
 | 
				
			||||||
      "qualified_name": "void Foo::purevirtual()",
 | 
					      "detailed_name": "void Foo::purevirtual()",
 | 
				
			||||||
      "declarations": ["3:16-3:27"],
 | 
					      "declarations": ["3:16-3:27"],
 | 
				
			||||||
      "declaring_type": 0
 | 
					      "declaring_type": 0
 | 
				
			||||||
    }, {
 | 
					    }, {
 | 
				
			||||||
      "id": 2,
 | 
					      "id": 2,
 | 
				
			||||||
      "usr": "c:@S@Foo@F@def#",
 | 
					      "usr": "c:@S@Foo@F@def#",
 | 
				
			||||||
      "short_name": "def",
 | 
					      "short_name": "def",
 | 
				
			||||||
      "qualified_name": "void Foo::def()",
 | 
					      "detailed_name": "void Foo::def()",
 | 
				
			||||||
      "declarations": ["4:8-4:11"],
 | 
					      "declarations": ["4:8-4:11"],
 | 
				
			||||||
      "definition_spelling": "7:11-7:14",
 | 
					      "definition_spelling": "7:11-7:14",
 | 
				
			||||||
      "definition_extent": "7:1-7:19",
 | 
					      "definition_extent": "7:1-7:19",
 | 
				
			||||||
 | 
				
			|||||||
@ -10,7 +10,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@E@Foo",
 | 
					      "usr": "c:@E@Foo",
 | 
				
			||||||
      "short_name": "Foo",
 | 
					      "short_name": "Foo",
 | 
				
			||||||
      "qualified_name": "Foo",
 | 
					      "detailed_name": "Foo",
 | 
				
			||||||
      "definition_spelling": "1:12-1:15",
 | 
					      "definition_spelling": "1:12-1:15",
 | 
				
			||||||
      "definition_extent": "1:1-4:2",
 | 
					      "definition_extent": "1:1-4:2",
 | 
				
			||||||
      "vars": [0, 1],
 | 
					      "vars": [0, 1],
 | 
				
			||||||
@ -20,7 +20,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@E@Foo@A",
 | 
					      "usr": "c:@E@Foo@A",
 | 
				
			||||||
      "short_name": "A",
 | 
					      "short_name": "A",
 | 
				
			||||||
      "qualified_name": "Foo Foo::A",
 | 
					      "detailed_name": "Foo Foo::A",
 | 
				
			||||||
      "definition_spelling": "2:3-2:4",
 | 
					      "definition_spelling": "2:3-2:4",
 | 
				
			||||||
      "definition_extent": "2:3-2:4",
 | 
					      "definition_extent": "2:3-2:4",
 | 
				
			||||||
      "variable_type": 0,
 | 
					      "variable_type": 0,
 | 
				
			||||||
@ -30,7 +30,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@E@Foo@B",
 | 
					      "usr": "c:@E@Foo@B",
 | 
				
			||||||
      "short_name": "B",
 | 
					      "short_name": "B",
 | 
				
			||||||
      "qualified_name": "Foo Foo::B",
 | 
					      "detailed_name": "Foo Foo::B",
 | 
				
			||||||
      "definition_spelling": "3:3-3:4",
 | 
					      "definition_spelling": "3:3-3:4",
 | 
				
			||||||
      "definition_extent": "3:3-3:9",
 | 
					      "definition_extent": "3:3-3:9",
 | 
				
			||||||
      "variable_type": 0,
 | 
					      "variable_type": 0,
 | 
				
			||||||
 | 
				
			|||||||
@ -10,7 +10,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@E@Foo",
 | 
					      "usr": "c:@E@Foo",
 | 
				
			||||||
      "short_name": "Foo",
 | 
					      "short_name": "Foo",
 | 
				
			||||||
      "qualified_name": "Foo",
 | 
					      "detailed_name": "Foo",
 | 
				
			||||||
      "definition_spelling": "1:6-1:9",
 | 
					      "definition_spelling": "1:6-1:9",
 | 
				
			||||||
      "definition_extent": "1:1-4:2",
 | 
					      "definition_extent": "1:1-4:2",
 | 
				
			||||||
      "vars": [0, 1],
 | 
					      "vars": [0, 1],
 | 
				
			||||||
@ -20,7 +20,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@E@Foo@A",
 | 
					      "usr": "c:@E@Foo@A",
 | 
				
			||||||
      "short_name": "A",
 | 
					      "short_name": "A",
 | 
				
			||||||
      "qualified_name": "Foo Foo::A",
 | 
					      "detailed_name": "Foo Foo::A",
 | 
				
			||||||
      "definition_spelling": "2:3-2:4",
 | 
					      "definition_spelling": "2:3-2:4",
 | 
				
			||||||
      "definition_extent": "2:3-2:4",
 | 
					      "definition_extent": "2:3-2:4",
 | 
				
			||||||
      "variable_type": 0,
 | 
					      "variable_type": 0,
 | 
				
			||||||
@ -30,7 +30,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@E@Foo@B",
 | 
					      "usr": "c:@E@Foo@B",
 | 
				
			||||||
      "short_name": "B",
 | 
					      "short_name": "B",
 | 
				
			||||||
      "qualified_name": "Foo Foo::B",
 | 
					      "detailed_name": "Foo Foo::B",
 | 
				
			||||||
      "definition_spelling": "3:3-3:4",
 | 
					      "definition_spelling": "3:3-3:4",
 | 
				
			||||||
      "definition_extent": "3:3-3:9",
 | 
					      "definition_extent": "3:3-3:9",
 | 
				
			||||||
      "variable_type": 0,
 | 
					      "variable_type": 0,
 | 
				
			||||||
 | 
				
			|||||||
@ -10,7 +10,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@E@Foo",
 | 
					      "usr": "c:@E@Foo",
 | 
				
			||||||
      "short_name": "Foo",
 | 
					      "short_name": "Foo",
 | 
				
			||||||
      "qualified_name": "Foo",
 | 
					      "detailed_name": "Foo",
 | 
				
			||||||
      "definition_spelling": "1:6-1:9",
 | 
					      "definition_spelling": "1:6-1:9",
 | 
				
			||||||
      "definition_extent": "1:1-4:2",
 | 
					      "definition_extent": "1:1-4:2",
 | 
				
			||||||
      "vars": [0, 1],
 | 
					      "vars": [0, 1],
 | 
				
			||||||
@ -20,7 +20,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@E@Foo@A",
 | 
					      "usr": "c:@E@Foo@A",
 | 
				
			||||||
      "short_name": "A",
 | 
					      "short_name": "A",
 | 
				
			||||||
      "qualified_name": "Foo Foo::A",
 | 
					      "detailed_name": "Foo Foo::A",
 | 
				
			||||||
      "definition_spelling": "2:3-2:4",
 | 
					      "definition_spelling": "2:3-2:4",
 | 
				
			||||||
      "definition_extent": "2:3-2:4",
 | 
					      "definition_extent": "2:3-2:4",
 | 
				
			||||||
      "variable_type": 0,
 | 
					      "variable_type": 0,
 | 
				
			||||||
@ -30,7 +30,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@E@Foo@B",
 | 
					      "usr": "c:@E@Foo@B",
 | 
				
			||||||
      "short_name": "B",
 | 
					      "short_name": "B",
 | 
				
			||||||
      "qualified_name": "Foo Foo::B",
 | 
					      "detailed_name": "Foo Foo::B",
 | 
				
			||||||
      "definition_spelling": "3:3-3:4",
 | 
					      "definition_spelling": "3:3-3:4",
 | 
				
			||||||
      "definition_extent": "3:3-3:9",
 | 
					      "definition_extent": "3:3-3:9",
 | 
				
			||||||
      "variable_type": 0,
 | 
					      "variable_type": 0,
 | 
				
			||||||
 | 
				
			|||||||
@ -12,7 +12,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@E@Foo",
 | 
					      "usr": "c:@E@Foo",
 | 
				
			||||||
      "short_name": "Foo",
 | 
					      "short_name": "Foo",
 | 
				
			||||||
      "qualified_name": "Foo",
 | 
					      "detailed_name": "Foo",
 | 
				
			||||||
      "definition_spelling": "1:12-1:15",
 | 
					      "definition_spelling": "1:12-1:15",
 | 
				
			||||||
      "definition_extent": "1:1-4:2",
 | 
					      "definition_extent": "1:1-4:2",
 | 
				
			||||||
      "vars": [0, 1],
 | 
					      "vars": [0, 1],
 | 
				
			||||||
@ -23,7 +23,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@E@Foo@A",
 | 
					      "usr": "c:@E@Foo@A",
 | 
				
			||||||
      "short_name": "A",
 | 
					      "short_name": "A",
 | 
				
			||||||
      "qualified_name": "Foo Foo::A",
 | 
					      "detailed_name": "Foo Foo::A",
 | 
				
			||||||
      "definition_spelling": "2:3-2:4",
 | 
					      "definition_spelling": "2:3-2:4",
 | 
				
			||||||
      "definition_extent": "2:3-2:4",
 | 
					      "definition_extent": "2:3-2:4",
 | 
				
			||||||
      "variable_type": 0,
 | 
					      "variable_type": 0,
 | 
				
			||||||
@ -33,7 +33,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@E@Foo@B",
 | 
					      "usr": "c:@E@Foo@B",
 | 
				
			||||||
      "short_name": "B",
 | 
					      "short_name": "B",
 | 
				
			||||||
      "qualified_name": "Foo Foo::B",
 | 
					      "detailed_name": "Foo Foo::B",
 | 
				
			||||||
      "definition_spelling": "3:3-3:4",
 | 
					      "definition_spelling": "3:3-3:4",
 | 
				
			||||||
      "definition_extent": "3:3-3:9",
 | 
					      "definition_extent": "3:3-3:9",
 | 
				
			||||||
      "variable_type": 0,
 | 
					      "variable_type": 0,
 | 
				
			||||||
@ -43,7 +43,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 2,
 | 
					      "id": 2,
 | 
				
			||||||
      "usr": "c:@x",
 | 
					      "usr": "c:@x",
 | 
				
			||||||
      "short_name": "x",
 | 
					      "short_name": "x",
 | 
				
			||||||
      "qualified_name": "Foo x",
 | 
					      "detailed_name": "Foo x",
 | 
				
			||||||
      "definition_spelling": "6:5-6:6",
 | 
					      "definition_spelling": "6:5-6:6",
 | 
				
			||||||
      "definition_extent": "6:1-6:15",
 | 
					      "definition_extent": "6:1-6:15",
 | 
				
			||||||
      "variable_type": 0,
 | 
					      "variable_type": 0,
 | 
				
			||||||
 | 
				
			|||||||
@ -15,7 +15,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@E@A",
 | 
					      "usr": "c:@E@A",
 | 
				
			||||||
      "short_name": "A",
 | 
					      "short_name": "A",
 | 
				
			||||||
      "qualified_name": "A",
 | 
					      "detailed_name": "A",
 | 
				
			||||||
      "definition_spelling": "1:6-1:7",
 | 
					      "definition_spelling": "1:6-1:7",
 | 
				
			||||||
      "definition_extent": "1:1-1:10",
 | 
					      "definition_extent": "1:1-1:10",
 | 
				
			||||||
      "uses": ["*1:6-1:7", "*9:5-9:6"]
 | 
					      "uses": ["*1:6-1:7", "*9:5-9:6"]
 | 
				
			||||||
@ -23,7 +23,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@E@B",
 | 
					      "usr": "c:@E@B",
 | 
				
			||||||
      "short_name": "B",
 | 
					      "short_name": "B",
 | 
				
			||||||
      "qualified_name": "B",
 | 
					      "detailed_name": "B",
 | 
				
			||||||
      "definition_spelling": "2:6-2:7",
 | 
					      "definition_spelling": "2:6-2:7",
 | 
				
			||||||
      "definition_extent": "2:1-2:10",
 | 
					      "definition_extent": "2:1-2:10",
 | 
				
			||||||
      "uses": ["*2:6-2:7", "*10:5-10:6"]
 | 
					      "uses": ["*2:6-2:7", "*10:5-10:6"]
 | 
				
			||||||
@ -31,7 +31,7 @@ OUTPUT:
 | 
				
			|||||||
      "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",
 | 
					      "detailed_name": "Foo",
 | 
				
			||||||
      "definition_spelling": "5:8-5:11",
 | 
					      "definition_spelling": "5:8-5:11",
 | 
				
			||||||
      "definition_extent": "5:1-7:2",
 | 
					      "definition_extent": "5:1-7:2",
 | 
				
			||||||
      "instantiations": [1],
 | 
					      "instantiations": [1],
 | 
				
			||||||
@ -40,7 +40,7 @@ OUTPUT:
 | 
				
			|||||||
      "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",
 | 
					      "detailed_name": "Foo::Inner",
 | 
				
			||||||
      "definition_spelling": "6:10-6:15",
 | 
					      "definition_spelling": "6:10-6:15",
 | 
				
			||||||
      "definition_extent": "6:3-6:18",
 | 
					      "definition_extent": "6:3-6:18",
 | 
				
			||||||
      "instantiations": [0],
 | 
					      "instantiations": [0],
 | 
				
			||||||
@ -50,7 +50,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@a",
 | 
					      "usr": "c:@a",
 | 
				
			||||||
      "short_name": "a",
 | 
					      "short_name": "a",
 | 
				
			||||||
      "qualified_name": "Foo<A>::Inner a",
 | 
					      "detailed_name": "Foo<A>::Inner a",
 | 
				
			||||||
      "definition_spelling": "9:15-9:16",
 | 
					      "definition_spelling": "9:15-9:16",
 | 
				
			||||||
      "definition_extent": "9:1-9:16",
 | 
					      "definition_extent": "9:1-9:16",
 | 
				
			||||||
      "variable_type": 3,
 | 
					      "variable_type": 3,
 | 
				
			||||||
@ -59,7 +59,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@b",
 | 
					      "usr": "c:@b",
 | 
				
			||||||
      "short_name": "b",
 | 
					      "short_name": "b",
 | 
				
			||||||
      "qualified_name": "Foo<B> b",
 | 
					      "detailed_name": "Foo<B> b",
 | 
				
			||||||
      "definition_spelling": "10:8-10:9",
 | 
					      "definition_spelling": "10:8-10:9",
 | 
				
			||||||
      "definition_extent": "10:1-10:9",
 | 
					      "definition_extent": "10:1-10:9",
 | 
				
			||||||
      "variable_type": 2,
 | 
					      "variable_type": 2,
 | 
				
			||||||
 | 
				
			|||||||
@ -7,7 +7,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@F@foo#I#I#",
 | 
					      "usr": "c:@F@foo#I#I#",
 | 
				
			||||||
      "short_name": "foo",
 | 
					      "short_name": "foo",
 | 
				
			||||||
      "qualified_name": "void foo(int, int)",
 | 
					      "detailed_name": "void foo(int, int)",
 | 
				
			||||||
      "declarations": ["1:6-1:9"]
 | 
					      "declarations": ["1:6-1:9"]
 | 
				
			||||||
    }]
 | 
					    }]
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -9,7 +9,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@F@foo#",
 | 
					      "usr": "c:@F@foo#",
 | 
				
			||||||
      "short_name": "foo",
 | 
					      "short_name": "foo",
 | 
				
			||||||
      "qualified_name": "void foo()",
 | 
					      "detailed_name": "void foo()",
 | 
				
			||||||
      "declarations": ["1:6-1:9"],
 | 
					      "declarations": ["1:6-1:9"],
 | 
				
			||||||
      "definition_spelling": "3:6-3:9",
 | 
					      "definition_spelling": "3:6-3:9",
 | 
				
			||||||
      "definition_extent": "3:1-3:14"
 | 
					      "definition_extent": "3:1-3:14"
 | 
				
			||||||
 | 
				
			|||||||
@ -7,7 +7,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@F@foo#",
 | 
					      "usr": "c:@F@foo#",
 | 
				
			||||||
      "short_name": "foo",
 | 
					      "short_name": "foo",
 | 
				
			||||||
      "qualified_name": "void foo()",
 | 
					      "detailed_name": "void foo()",
 | 
				
			||||||
      "definition_spelling": "1:6-1:9",
 | 
					      "definition_spelling": "1:6-1:9",
 | 
				
			||||||
      "definition_extent": "1:1-1:14"
 | 
					      "definition_extent": "1:1-1:14"
 | 
				
			||||||
    }]
 | 
					    }]
 | 
				
			||||||
 | 
				
			|||||||
@ -8,7 +8,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@S@Parent",
 | 
					      "usr": "c:@S@Parent",
 | 
				
			||||||
      "short_name": "Parent",
 | 
					      "short_name": "Parent",
 | 
				
			||||||
      "qualified_name": "Parent",
 | 
					      "detailed_name": "Parent",
 | 
				
			||||||
      "definition_spelling": "1:7-1:13",
 | 
					      "definition_spelling": "1:7-1:13",
 | 
				
			||||||
      "definition_extent": "1:1-1:16",
 | 
					      "definition_extent": "1:1-1:16",
 | 
				
			||||||
      "derived": [1],
 | 
					      "derived": [1],
 | 
				
			||||||
@ -17,7 +17,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@S@Derived",
 | 
					      "usr": "c:@S@Derived",
 | 
				
			||||||
      "short_name": "Derived",
 | 
					      "short_name": "Derived",
 | 
				
			||||||
      "qualified_name": "Derived",
 | 
					      "detailed_name": "Derived",
 | 
				
			||||||
      "definition_spelling": "2:7-2:14",
 | 
					      "definition_spelling": "2:7-2:14",
 | 
				
			||||||
      "definition_extent": "2:1-2:33",
 | 
					      "definition_extent": "2:1-2:33",
 | 
				
			||||||
      "parents": [0],
 | 
					      "parents": [0],
 | 
				
			||||||
 | 
				
			|||||||
@ -19,7 +19,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@ST>1#Ni@Base1",
 | 
					      "usr": "c:@ST>1#Ni@Base1",
 | 
				
			||||||
      "short_name": "Base1",
 | 
					      "short_name": "Base1",
 | 
				
			||||||
      "qualified_name": "Base1",
 | 
					      "detailed_name": "Base1",
 | 
				
			||||||
      "definition_spelling": "2:7-2:12",
 | 
					      "definition_spelling": "2:7-2:12",
 | 
				
			||||||
      "definition_extent": "2:1-2:15",
 | 
					      "definition_extent": "2:1-2:15",
 | 
				
			||||||
      "derived": [2, 5],
 | 
					      "derived": [2, 5],
 | 
				
			||||||
@ -28,7 +28,7 @@ OUTPUT:
 | 
				
			|||||||
      "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",
 | 
					      "detailed_name": "Base2",
 | 
				
			||||||
      "definition_spelling": "5:7-5:12",
 | 
					      "definition_spelling": "5:7-5:12",
 | 
				
			||||||
      "definition_extent": "5:1-5:15",
 | 
					      "definition_extent": "5:1-5:15",
 | 
				
			||||||
      "derived": [3, 5],
 | 
					      "derived": [3, 5],
 | 
				
			||||||
@ -37,7 +37,7 @@ OUTPUT:
 | 
				
			|||||||
      "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",
 | 
					      "detailed_name": "Derived1",
 | 
				
			||||||
      "definition_spelling": "8:7-8:15",
 | 
					      "definition_spelling": "8:7-8:15",
 | 
				
			||||||
      "definition_extent": "8:1-8:29",
 | 
					      "definition_extent": "8:1-8:29",
 | 
				
			||||||
      "parents": [0],
 | 
					      "parents": [0],
 | 
				
			||||||
@ -47,7 +47,7 @@ OUTPUT:
 | 
				
			|||||||
      "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",
 | 
					      "detailed_name": "Derived2",
 | 
				
			||||||
      "definition_spelling": "11:7-11:15",
 | 
					      "definition_spelling": "11:7-11:15",
 | 
				
			||||||
      "definition_extent": "11:1-11:29",
 | 
					      "definition_extent": "11:1-11:29",
 | 
				
			||||||
      "parents": [1],
 | 
					      "parents": [1],
 | 
				
			||||||
@ -61,7 +61,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 5,
 | 
					      "id": 5,
 | 
				
			||||||
      "usr": "c:@S@Derived",
 | 
					      "usr": "c:@S@Derived",
 | 
				
			||||||
      "short_name": "Derived",
 | 
					      "short_name": "Derived",
 | 
				
			||||||
      "qualified_name": "Derived",
 | 
					      "detailed_name": "Derived",
 | 
				
			||||||
      "definition_spelling": "13:7-13:14",
 | 
					      "definition_spelling": "13:7-13:14",
 | 
				
			||||||
      "definition_extent": "13:1-13:76",
 | 
					      "definition_extent": "13:1-13:76",
 | 
				
			||||||
      "parents": [0, 1, 2, 3],
 | 
					      "parents": [0, 1, 2, 3],
 | 
				
			||||||
 | 
				
			|||||||
@ -10,7 +10,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@S@Root",
 | 
					      "usr": "c:@S@Root",
 | 
				
			||||||
      "short_name": "Root",
 | 
					      "short_name": "Root",
 | 
				
			||||||
      "qualified_name": "Root",
 | 
					      "detailed_name": "Root",
 | 
				
			||||||
      "definition_spelling": "1:7-1:11",
 | 
					      "definition_spelling": "1:7-1:11",
 | 
				
			||||||
      "definition_extent": "1:1-1:14",
 | 
					      "definition_extent": "1:1-1:14",
 | 
				
			||||||
      "derived": [1, 2],
 | 
					      "derived": [1, 2],
 | 
				
			||||||
@ -19,7 +19,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@S@MiddleA",
 | 
					      "usr": "c:@S@MiddleA",
 | 
				
			||||||
      "short_name": "MiddleA",
 | 
					      "short_name": "MiddleA",
 | 
				
			||||||
      "qualified_name": "MiddleA",
 | 
					      "detailed_name": "MiddleA",
 | 
				
			||||||
      "definition_spelling": "2:7-2:14",
 | 
					      "definition_spelling": "2:7-2:14",
 | 
				
			||||||
      "definition_extent": "2:1-2:31",
 | 
					      "definition_extent": "2:1-2:31",
 | 
				
			||||||
      "parents": [0],
 | 
					      "parents": [0],
 | 
				
			||||||
@ -29,7 +29,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 2,
 | 
					      "id": 2,
 | 
				
			||||||
      "usr": "c:@S@MiddleB",
 | 
					      "usr": "c:@S@MiddleB",
 | 
				
			||||||
      "short_name": "MiddleB",
 | 
					      "short_name": "MiddleB",
 | 
				
			||||||
      "qualified_name": "MiddleB",
 | 
					      "detailed_name": "MiddleB",
 | 
				
			||||||
      "definition_spelling": "3:7-3:14",
 | 
					      "definition_spelling": "3:7-3:14",
 | 
				
			||||||
      "definition_extent": "3:1-3:31",
 | 
					      "definition_extent": "3:1-3:31",
 | 
				
			||||||
      "parents": [0],
 | 
					      "parents": [0],
 | 
				
			||||||
@ -39,7 +39,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 3,
 | 
					      "id": 3,
 | 
				
			||||||
      "usr": "c:@S@Derived",
 | 
					      "usr": "c:@S@Derived",
 | 
				
			||||||
      "short_name": "Derived",
 | 
					      "short_name": "Derived",
 | 
				
			||||||
      "qualified_name": "Derived",
 | 
					      "detailed_name": "Derived",
 | 
				
			||||||
      "definition_spelling": "4:7-4:14",
 | 
					      "definition_spelling": "4:7-4:14",
 | 
				
			||||||
      "definition_extent": "4:1-4:50",
 | 
					      "definition_extent": "4:1-4:50",
 | 
				
			||||||
      "parents": [1, 2],
 | 
					      "parents": [1, 2],
 | 
				
			||||||
 | 
				
			|||||||
@ -12,7 +12,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@S@Root",
 | 
					      "usr": "c:@S@Root",
 | 
				
			||||||
      "short_name": "Root",
 | 
					      "short_name": "Root",
 | 
				
			||||||
      "qualified_name": "Root",
 | 
					      "detailed_name": "Root",
 | 
				
			||||||
      "definition_spelling": "1:7-1:11",
 | 
					      "definition_spelling": "1:7-1:11",
 | 
				
			||||||
      "definition_extent": "1:1-3:2",
 | 
					      "definition_extent": "1:1-3:2",
 | 
				
			||||||
      "derived": [1],
 | 
					      "derived": [1],
 | 
				
			||||||
@ -22,7 +22,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@S@Derived",
 | 
					      "usr": "c:@S@Derived",
 | 
				
			||||||
      "short_name": "Derived",
 | 
					      "short_name": "Derived",
 | 
				
			||||||
      "qualified_name": "Derived",
 | 
					      "detailed_name": "Derived",
 | 
				
			||||||
      "definition_spelling": "4:7-4:14",
 | 
					      "definition_spelling": "4:7-4:14",
 | 
				
			||||||
      "definition_extent": "4:1-6:2",
 | 
					      "definition_extent": "4:1-6:2",
 | 
				
			||||||
      "parents": [0],
 | 
					      "parents": [0],
 | 
				
			||||||
@ -33,7 +33,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@S@Root@F@foo#",
 | 
					      "usr": "c:@S@Root@F@foo#",
 | 
				
			||||||
      "short_name": "foo",
 | 
					      "short_name": "foo",
 | 
				
			||||||
      "qualified_name": "void Root::foo()",
 | 
					      "detailed_name": "void Root::foo()",
 | 
				
			||||||
      "declarations": ["2:16-2:19"],
 | 
					      "declarations": ["2:16-2:19"],
 | 
				
			||||||
      "declaring_type": 0,
 | 
					      "declaring_type": 0,
 | 
				
			||||||
      "derived": [1]
 | 
					      "derived": [1]
 | 
				
			||||||
@ -41,7 +41,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@S@Derived@F@foo#",
 | 
					      "usr": "c:@S@Derived@F@foo#",
 | 
				
			||||||
      "short_name": "foo",
 | 
					      "short_name": "foo",
 | 
				
			||||||
      "qualified_name": "void Derived::foo()",
 | 
					      "detailed_name": "void Derived::foo()",
 | 
				
			||||||
      "definition_spelling": "5:8-5:11",
 | 
					      "definition_spelling": "5:8-5:11",
 | 
				
			||||||
      "definition_extent": "5:3-5:25",
 | 
					      "definition_extent": "5:3-5:25",
 | 
				
			||||||
      "declaring_type": 1,
 | 
					      "declaring_type": 1,
 | 
				
			||||||
 | 
				
			|||||||
@ -9,7 +9,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@S@IFoo",
 | 
					      "usr": "c:@S@IFoo",
 | 
				
			||||||
      "short_name": "IFoo",
 | 
					      "short_name": "IFoo",
 | 
				
			||||||
      "qualified_name": "IFoo",
 | 
					      "detailed_name": "IFoo",
 | 
				
			||||||
      "definition_spelling": "1:7-1:11",
 | 
					      "definition_spelling": "1:7-1:11",
 | 
				
			||||||
      "definition_extent": "1:1-3:2",
 | 
					      "definition_extent": "1:1-3:2",
 | 
				
			||||||
      "funcs": [0],
 | 
					      "funcs": [0],
 | 
				
			||||||
@ -19,7 +19,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@S@IFoo@F@foo#",
 | 
					      "usr": "c:@S@IFoo@F@foo#",
 | 
				
			||||||
      "short_name": "foo",
 | 
					      "short_name": "foo",
 | 
				
			||||||
      "qualified_name": "void IFoo::foo()",
 | 
					      "detailed_name": "void IFoo::foo()",
 | 
				
			||||||
      "definition_spelling": "2:16-2:19",
 | 
					      "definition_spelling": "2:16-2:19",
 | 
				
			||||||
      "definition_extent": "2:3-2:28",
 | 
					      "definition_extent": "2:3-2:28",
 | 
				
			||||||
      "declaring_type": 0
 | 
					      "declaring_type": 0
 | 
				
			||||||
 | 
				
			|||||||
@ -13,7 +13,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@S@Foo",
 | 
					      "usr": "c:@S@Foo",
 | 
				
			||||||
      "short_name": "Foo",
 | 
					      "short_name": "Foo",
 | 
				
			||||||
      "qualified_name": "Foo",
 | 
					      "detailed_name": "Foo",
 | 
				
			||||||
      "definition_spelling": "1:7-1:10",
 | 
					      "definition_spelling": "1:7-1:10",
 | 
				
			||||||
      "definition_extent": "1:1-3:2",
 | 
					      "definition_extent": "1:1-3:2",
 | 
				
			||||||
      "funcs": [0],
 | 
					      "funcs": [0],
 | 
				
			||||||
@ -23,7 +23,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@S@Foo@F@foo#",
 | 
					      "usr": "c:@S@Foo@F@foo#",
 | 
				
			||||||
      "short_name": "foo",
 | 
					      "short_name": "foo",
 | 
				
			||||||
      "qualified_name": "void Foo::foo()",
 | 
					      "detailed_name": "void Foo::foo()",
 | 
				
			||||||
      "declarations": ["2:8-2:11"],
 | 
					      "declarations": ["2:8-2:11"],
 | 
				
			||||||
      "declaring_type": 0
 | 
					      "declaring_type": 0
 | 
				
			||||||
    }]
 | 
					    }]
 | 
				
			||||||
 | 
				
			|||||||
@ -11,7 +11,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@S@Foo",
 | 
					      "usr": "c:@S@Foo",
 | 
				
			||||||
      "short_name": "Foo",
 | 
					      "short_name": "Foo",
 | 
				
			||||||
      "qualified_name": "Foo",
 | 
					      "detailed_name": "Foo",
 | 
				
			||||||
      "definition_spelling": "1:7-1:10",
 | 
					      "definition_spelling": "1:7-1:10",
 | 
				
			||||||
      "definition_extent": "1:1-3:2",
 | 
					      "definition_extent": "1:1-3:2",
 | 
				
			||||||
      "funcs": [0],
 | 
					      "funcs": [0],
 | 
				
			||||||
@ -21,7 +21,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@S@Foo@F@foo#",
 | 
					      "usr": "c:@S@Foo@F@foo#",
 | 
				
			||||||
      "short_name": "foo",
 | 
					      "short_name": "foo",
 | 
				
			||||||
      "qualified_name": "void Foo::foo()",
 | 
					      "detailed_name": "void Foo::foo()",
 | 
				
			||||||
      "declarations": ["2:8-2:11"],
 | 
					      "declarations": ["2:8-2:11"],
 | 
				
			||||||
      "definition_spelling": "5:11-5:14",
 | 
					      "definition_spelling": "5:11-5:14",
 | 
				
			||||||
      "definition_extent": "5:1-5:19",
 | 
					      "definition_extent": "5:1-5:19",
 | 
				
			||||||
 | 
				
			|||||||
@ -9,7 +9,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@S@Foo",
 | 
					      "usr": "c:@S@Foo",
 | 
				
			||||||
      "short_name": "Foo",
 | 
					      "short_name": "Foo",
 | 
				
			||||||
      "qualified_name": "Foo",
 | 
					      "detailed_name": "Foo",
 | 
				
			||||||
      "definition_spelling": "1:7-1:10",
 | 
					      "definition_spelling": "1:7-1:10",
 | 
				
			||||||
      "definition_extent": "1:1-3:2",
 | 
					      "definition_extent": "1:1-3:2",
 | 
				
			||||||
      "funcs": [0],
 | 
					      "funcs": [0],
 | 
				
			||||||
@ -19,7 +19,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@S@Foo@F@foo#",
 | 
					      "usr": "c:@S@Foo@F@foo#",
 | 
				
			||||||
      "short_name": "foo",
 | 
					      "short_name": "foo",
 | 
				
			||||||
      "qualified_name": "void Foo::foo()",
 | 
					      "detailed_name": "void Foo::foo()",
 | 
				
			||||||
      "definition_spelling": "2:8-2:11",
 | 
					      "definition_spelling": "2:8-2:11",
 | 
				
			||||||
      "definition_extent": "2:3-2:16",
 | 
					      "definition_extent": "2:3-2:16",
 | 
				
			||||||
      "declaring_type": 0
 | 
					      "declaring_type": 0
 | 
				
			||||||
 | 
				
			|||||||
@ -11,7 +11,7 @@ OUTPUT: header.h
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@S@Base",
 | 
					      "usr": "c:@S@Base",
 | 
				
			||||||
      "short_name": "Base",
 | 
					      "short_name": "Base",
 | 
				
			||||||
      "qualified_name": "Base",
 | 
					      "detailed_name": "Base",
 | 
				
			||||||
      "definition_spelling": "3:8-3:12",
 | 
					      "definition_spelling": "3:8-3:12",
 | 
				
			||||||
      "definition_extent": "3:1-3:15",
 | 
					      "definition_extent": "3:1-3:15",
 | 
				
			||||||
      "derived": [1],
 | 
					      "derived": [1],
 | 
				
			||||||
@ -20,7 +20,7 @@ OUTPUT: header.h
 | 
				
			|||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@S@SameFileDerived",
 | 
					      "usr": "c:@S@SameFileDerived",
 | 
				
			||||||
      "short_name": "SameFileDerived",
 | 
					      "short_name": "SameFileDerived",
 | 
				
			||||||
      "qualified_name": "SameFileDerived",
 | 
					      "detailed_name": "SameFileDerived",
 | 
				
			||||||
      "definition_spelling": "5:8-5:23",
 | 
					      "definition_spelling": "5:8-5:23",
 | 
				
			||||||
      "definition_extent": "5:1-5:33",
 | 
					      "definition_extent": "5:1-5:33",
 | 
				
			||||||
      "parents": [0],
 | 
					      "parents": [0],
 | 
				
			||||||
@ -29,7 +29,7 @@ OUTPUT: header.h
 | 
				
			|||||||
      "id": 2,
 | 
					      "id": 2,
 | 
				
			||||||
      "usr": "c:@Foo0",
 | 
					      "usr": "c:@Foo0",
 | 
				
			||||||
      "short_name": "Foo0",
 | 
					      "short_name": "Foo0",
 | 
				
			||||||
      "qualified_name": "Foo0",
 | 
					      "detailed_name": "Foo0",
 | 
				
			||||||
      "definition_spelling": "7:7-7:11",
 | 
					      "definition_spelling": "7:7-7:11",
 | 
				
			||||||
      "definition_extent": "7:1-7:29",
 | 
					      "definition_extent": "7:1-7:29",
 | 
				
			||||||
      "alias_of": 1,
 | 
					      "alias_of": 1,
 | 
				
			||||||
@ -38,7 +38,7 @@ OUTPUT: header.h
 | 
				
			|||||||
      "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",
 | 
					      "detailed_name": "Foo2",
 | 
				
			||||||
      "definition_spelling": "13:8-13:12",
 | 
					      "definition_spelling": "13:8-13:12",
 | 
				
			||||||
      "definition_extent": "13:1-13:15",
 | 
					      "definition_extent": "13:1-13:15",
 | 
				
			||||||
      "uses": ["*13:8-13:12"]
 | 
					      "uses": ["*13:8-13:12"]
 | 
				
			||||||
@ -46,7 +46,7 @@ OUTPUT: header.h
 | 
				
			|||||||
      "id": 4,
 | 
					      "id": 4,
 | 
				
			||||||
      "usr": "c:@E@Foo3",
 | 
					      "usr": "c:@E@Foo3",
 | 
				
			||||||
      "short_name": "Foo3",
 | 
					      "short_name": "Foo3",
 | 
				
			||||||
      "qualified_name": "Foo3",
 | 
					      "detailed_name": "Foo3",
 | 
				
			||||||
      "definition_spelling": "15:6-15:10",
 | 
					      "definition_spelling": "15:6-15:10",
 | 
				
			||||||
      "definition_extent": "15:1-15:22",
 | 
					      "definition_extent": "15:1-15:22",
 | 
				
			||||||
      "vars": [0, 1, 2],
 | 
					      "vars": [0, 1, 2],
 | 
				
			||||||
@ -56,7 +56,7 @@ OUTPUT: header.h
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@FT@>1#TFoo1#v#",
 | 
					      "usr": "c:@FT@>1#TFoo1#v#",
 | 
				
			||||||
      "short_name": "Foo1",
 | 
					      "short_name": "Foo1",
 | 
				
			||||||
      "qualified_name": "void Foo1()",
 | 
					      "detailed_name": "void Foo1()",
 | 
				
			||||||
      "definition_spelling": "10:6-10:10",
 | 
					      "definition_spelling": "10:6-10:10",
 | 
				
			||||||
      "definition_extent": "10:1-10:15"
 | 
					      "definition_extent": "10:1-10:15"
 | 
				
			||||||
    }],
 | 
					    }],
 | 
				
			||||||
@ -64,7 +64,7 @@ OUTPUT: header.h
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@E@Foo3@A",
 | 
					      "usr": "c:@E@Foo3@A",
 | 
				
			||||||
      "short_name": "A",
 | 
					      "short_name": "A",
 | 
				
			||||||
      "qualified_name": "Foo3 Foo3::A",
 | 
					      "detailed_name": "Foo3 Foo3::A",
 | 
				
			||||||
      "definition_spelling": "15:13-15:14",
 | 
					      "definition_spelling": "15:13-15:14",
 | 
				
			||||||
      "definition_extent": "15:13-15:14",
 | 
					      "definition_extent": "15:13-15:14",
 | 
				
			||||||
      "variable_type": 4,
 | 
					      "variable_type": 4,
 | 
				
			||||||
@ -74,7 +74,7 @@ OUTPUT: header.h
 | 
				
			|||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@E@Foo3@B",
 | 
					      "usr": "c:@E@Foo3@B",
 | 
				
			||||||
      "short_name": "B",
 | 
					      "short_name": "B",
 | 
				
			||||||
      "qualified_name": "Foo3 Foo3::B",
 | 
					      "detailed_name": "Foo3 Foo3::B",
 | 
				
			||||||
      "definition_spelling": "15:16-15:17",
 | 
					      "definition_spelling": "15:16-15:17",
 | 
				
			||||||
      "definition_extent": "15:16-15:17",
 | 
					      "definition_extent": "15:16-15:17",
 | 
				
			||||||
      "variable_type": 4,
 | 
					      "variable_type": 4,
 | 
				
			||||||
@ -84,7 +84,7 @@ OUTPUT: header.h
 | 
				
			|||||||
      "id": 2,
 | 
					      "id": 2,
 | 
				
			||||||
      "usr": "c:@E@Foo3@C",
 | 
					      "usr": "c:@E@Foo3@C",
 | 
				
			||||||
      "short_name": "C",
 | 
					      "short_name": "C",
 | 
				
			||||||
      "qualified_name": "Foo3 Foo3::C",
 | 
					      "detailed_name": "Foo3 Foo3::C",
 | 
				
			||||||
      "definition_spelling": "15:19-15:20",
 | 
					      "definition_spelling": "15:19-15:20",
 | 
				
			||||||
      "definition_extent": "15:19-15:20",
 | 
					      "definition_extent": "15:19-15:20",
 | 
				
			||||||
      "variable_type": 4,
 | 
					      "variable_type": 4,
 | 
				
			||||||
@ -94,7 +94,7 @@ OUTPUT: header.h
 | 
				
			|||||||
      "id": 3,
 | 
					      "id": 3,
 | 
				
			||||||
      "usr": "c:@Foo4",
 | 
					      "usr": "c:@Foo4",
 | 
				
			||||||
      "short_name": "Foo4",
 | 
					      "short_name": "Foo4",
 | 
				
			||||||
      "qualified_name": "int Foo4",
 | 
					      "detailed_name": "int Foo4",
 | 
				
			||||||
      "definition_spelling": "17:5-17:9",
 | 
					      "definition_spelling": "17:5-17:9",
 | 
				
			||||||
      "definition_extent": "17:1-17:9",
 | 
					      "definition_extent": "17:1-17:9",
 | 
				
			||||||
      "uses": ["17:5-17:9"]
 | 
					      "uses": ["17:5-17:9"]
 | 
				
			||||||
@ -102,7 +102,7 @@ OUTPUT: header.h
 | 
				
			|||||||
      "id": 4,
 | 
					      "id": 4,
 | 
				
			||||||
      "usr": "c:header.h@Foo5",
 | 
					      "usr": "c:header.h@Foo5",
 | 
				
			||||||
      "short_name": "Foo5",
 | 
					      "short_name": "Foo5",
 | 
				
			||||||
      "qualified_name": "int Foo5",
 | 
					      "detailed_name": "int Foo5",
 | 
				
			||||||
      "definition_spelling": "18:12-18:16",
 | 
					      "definition_spelling": "18:12-18:16",
 | 
				
			||||||
      "definition_extent": "18:1-18:16",
 | 
					      "definition_extent": "18:1-18:16",
 | 
				
			||||||
      "uses": ["18:12-18:16"]
 | 
					      "uses": ["18:12-18:16"]
 | 
				
			||||||
@ -115,7 +115,7 @@ OUTPUT: impl.cc
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@F@Impl#",
 | 
					      "usr": "c:@F@Impl#",
 | 
				
			||||||
      "short_name": "Impl",
 | 
					      "short_name": "Impl",
 | 
				
			||||||
      "qualified_name": "void Impl()",
 | 
					      "detailed_name": "void Impl()",
 | 
				
			||||||
      "definition_spelling": "3:6-3:10",
 | 
					      "definition_spelling": "3:6-3:10",
 | 
				
			||||||
      "definition_extent": "3:1-5:2",
 | 
					      "definition_extent": "3:1-5:2",
 | 
				
			||||||
      "callees": ["1@4:3-4:7"]
 | 
					      "callees": ["1@4:3-4:7"]
 | 
				
			||||||
 | 
				
			|||||||
@ -11,7 +11,7 @@ OUTPUT: simple_header.h
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@F@header#",
 | 
					      "usr": "c:@F@header#",
 | 
				
			||||||
      "short_name": "header",
 | 
					      "short_name": "header",
 | 
				
			||||||
      "qualified_name": "void header()",
 | 
					      "detailed_name": "void header()",
 | 
				
			||||||
      "declarations": ["3:6-3:12"]
 | 
					      "declarations": ["3:6-3:12"]
 | 
				
			||||||
    }]
 | 
					    }]
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -22,7 +22,7 @@ OUTPUT: simple_impl.cc
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@F@impl#",
 | 
					      "usr": "c:@F@impl#",
 | 
				
			||||||
      "short_name": "impl",
 | 
					      "short_name": "impl",
 | 
				
			||||||
      "qualified_name": "void impl()",
 | 
					      "detailed_name": "void impl()",
 | 
				
			||||||
      "definition_spelling": "3:6-3:10",
 | 
					      "definition_spelling": "3:6-3:10",
 | 
				
			||||||
      "definition_extent": "3:1-5:2",
 | 
					      "definition_extent": "3:1-5:2",
 | 
				
			||||||
      "callees": ["1@4:3-4:9"]
 | 
					      "callees": ["1@4:3-4:9"]
 | 
				
			||||||
 | 
				
			|||||||
@ -9,7 +9,7 @@ OUTPUT: static.h
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@S@Buffer",
 | 
					      "usr": "c:@S@Buffer",
 | 
				
			||||||
      "short_name": "Buffer",
 | 
					      "short_name": "Buffer",
 | 
				
			||||||
      "qualified_name": "Buffer",
 | 
					      "detailed_name": "Buffer",
 | 
				
			||||||
      "definition_spelling": "3:8-3:14",
 | 
					      "definition_spelling": "3:8-3:14",
 | 
				
			||||||
      "definition_extent": "3:1-5:2",
 | 
					      "definition_extent": "3:1-5:2",
 | 
				
			||||||
      "funcs": [0],
 | 
					      "funcs": [0],
 | 
				
			||||||
@ -19,7 +19,7 @@ OUTPUT: static.h
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@S@Buffer@F@CreateSharedBuffer#S",
 | 
					      "usr": "c:@S@Buffer@F@CreateSharedBuffer#S",
 | 
				
			||||||
      "short_name": "CreateSharedBuffer",
 | 
					      "short_name": "CreateSharedBuffer",
 | 
				
			||||||
      "qualified_name": "void Buffer::CreateSharedBuffer()",
 | 
					      "detailed_name": "void Buffer::CreateSharedBuffer()",
 | 
				
			||||||
      "declarations": ["4:15-4:33"],
 | 
					      "declarations": ["4:15-4:33"],
 | 
				
			||||||
      "declaring_type": 0
 | 
					      "declaring_type": 0
 | 
				
			||||||
    }]
 | 
					    }]
 | 
				
			||||||
@ -37,7 +37,7 @@ OUTPUT: static.cc
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@S@Buffer@F@CreateSharedBuffer#S",
 | 
					      "usr": "c:@S@Buffer@F@CreateSharedBuffer#S",
 | 
				
			||||||
      "short_name": "CreateSharedBuffer",
 | 
					      "short_name": "CreateSharedBuffer",
 | 
				
			||||||
      "qualified_name": "void Buffer::CreateSharedBuffer()",
 | 
					      "detailed_name": "void Buffer::CreateSharedBuffer()",
 | 
				
			||||||
      "definition_spelling": "3:14-3:32",
 | 
					      "definition_spelling": "3:14-3:32",
 | 
				
			||||||
      "definition_extent": "3:1-3:37",
 | 
					      "definition_extent": "3:1-3:37",
 | 
				
			||||||
      "declaring_type": 0
 | 
					      "declaring_type": 0
 | 
				
			||||||
 | 
				
			|||||||
@ -9,7 +9,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:anonymous_function.cc@aN@F@foo#",
 | 
					      "usr": "c:anonymous_function.cc@aN@F@foo#",
 | 
				
			||||||
      "short_name": "foo",
 | 
					      "short_name": "foo",
 | 
				
			||||||
      "qualified_name": "void ::foo()",
 | 
					      "detailed_name": "void ::foo()",
 | 
				
			||||||
      "declarations": ["2:6-2:9"]
 | 
					      "declarations": ["2:6-2:9"]
 | 
				
			||||||
    }]
 | 
					    }]
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -9,7 +9,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@N@hello@F@foo#I#I#",
 | 
					      "usr": "c:@N@hello@F@foo#I#I#",
 | 
				
			||||||
      "short_name": "foo",
 | 
					      "short_name": "foo",
 | 
				
			||||||
      "qualified_name": "void hello::foo(int, int)",
 | 
					      "detailed_name": "void hello::foo(int, int)",
 | 
				
			||||||
      "declarations": ["2:6-2:9"]
 | 
					      "declarations": ["2:6-2:9"]
 | 
				
			||||||
    }]
 | 
					    }]
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -9,7 +9,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@N@hello@F@foo#",
 | 
					      "usr": "c:@N@hello@F@foo#",
 | 
				
			||||||
      "short_name": "foo",
 | 
					      "short_name": "foo",
 | 
				
			||||||
      "qualified_name": "void hello::foo()",
 | 
					      "detailed_name": "void hello::foo()",
 | 
				
			||||||
      "definition_spelling": "2:6-2:9",
 | 
					      "definition_spelling": "2:6-2:9",
 | 
				
			||||||
      "definition_extent": "2:1-2:14"
 | 
					      "definition_extent": "2:1-2:14"
 | 
				
			||||||
    }]
 | 
					    }]
 | 
				
			||||||
 | 
				
			|||||||
@ -11,7 +11,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@N@hello@S@Foo",
 | 
					      "usr": "c:@N@hello@S@Foo",
 | 
				
			||||||
      "short_name": "Foo",
 | 
					      "short_name": "Foo",
 | 
				
			||||||
      "qualified_name": "hello::Foo",
 | 
					      "detailed_name": "hello::Foo",
 | 
				
			||||||
      "definition_spelling": "2:7-2:10",
 | 
					      "definition_spelling": "2:7-2:10",
 | 
				
			||||||
      "definition_extent": "2:1-4:2",
 | 
					      "definition_extent": "2:1-4:2",
 | 
				
			||||||
      "funcs": [0],
 | 
					      "funcs": [0],
 | 
				
			||||||
@ -21,7 +21,7 @@ OUTPUT:
 | 
				
			|||||||
      "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": "void hello::Foo::foo()",
 | 
					      "detailed_name": "void hello::Foo::foo()",
 | 
				
			||||||
      "declarations": ["3:8-3:11"],
 | 
					      "declarations": ["3:8-3:11"],
 | 
				
			||||||
      "declaring_type": 0
 | 
					      "declaring_type": 0
 | 
				
			||||||
    }]
 | 
					    }]
 | 
				
			||||||
 | 
				
			|||||||
@ -13,7 +13,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@N@hello@S@Foo",
 | 
					      "usr": "c:@N@hello@S@Foo",
 | 
				
			||||||
      "short_name": "Foo",
 | 
					      "short_name": "Foo",
 | 
				
			||||||
      "qualified_name": "hello::Foo",
 | 
					      "detailed_name": "hello::Foo",
 | 
				
			||||||
      "definition_spelling": "2:7-2:10",
 | 
					      "definition_spelling": "2:7-2:10",
 | 
				
			||||||
      "definition_extent": "2:1-4:2",
 | 
					      "definition_extent": "2:1-4:2",
 | 
				
			||||||
      "funcs": [0],
 | 
					      "funcs": [0],
 | 
				
			||||||
@ -23,7 +23,7 @@ OUTPUT:
 | 
				
			|||||||
      "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": "void hello::Foo::foo()",
 | 
					      "detailed_name": "void hello::Foo::foo()",
 | 
				
			||||||
      "declarations": ["3:8-3:11"],
 | 
					      "declarations": ["3:8-3:11"],
 | 
				
			||||||
      "definition_spelling": "6:11-6:14",
 | 
					      "definition_spelling": "6:11-6:14",
 | 
				
			||||||
      "definition_extent": "6:1-6:19",
 | 
					      "definition_extent": "6:1-6:19",
 | 
				
			||||||
 | 
				
			|||||||
@ -11,7 +11,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@N@hello@S@Foo",
 | 
					      "usr": "c:@N@hello@S@Foo",
 | 
				
			||||||
      "short_name": "Foo",
 | 
					      "short_name": "Foo",
 | 
				
			||||||
      "qualified_name": "hello::Foo",
 | 
					      "detailed_name": "hello::Foo",
 | 
				
			||||||
      "definition_spelling": "2:7-2:10",
 | 
					      "definition_spelling": "2:7-2:10",
 | 
				
			||||||
      "definition_extent": "2:1-4:2",
 | 
					      "definition_extent": "2:1-4:2",
 | 
				
			||||||
      "funcs": [0],
 | 
					      "funcs": [0],
 | 
				
			||||||
@ -21,7 +21,7 @@ OUTPUT:
 | 
				
			|||||||
      "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": "void hello::Foo::foo()",
 | 
					      "detailed_name": "void hello::Foo::foo()",
 | 
				
			||||||
      "definition_spelling": "3:8-3:11",
 | 
					      "definition_spelling": "3:8-3:11",
 | 
				
			||||||
      "definition_extent": "3:3-3:16",
 | 
					      "definition_extent": "3:3-3:16",
 | 
				
			||||||
      "declaring_type": 0
 | 
					      "declaring_type": 0
 | 
				
			||||||
 | 
				
			|||||||
@ -16,7 +16,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@N@ns@F@Accept#I#",
 | 
					      "usr": "c:@N@ns@F@Accept#I#",
 | 
				
			||||||
      "short_name": "Accept",
 | 
					      "short_name": "Accept",
 | 
				
			||||||
      "qualified_name": "void ns::Accept(int)",
 | 
					      "detailed_name": "void ns::Accept(int)",
 | 
				
			||||||
      "definition_spelling": "3:8-3:14",
 | 
					      "definition_spelling": "3:8-3:14",
 | 
				
			||||||
      "definition_extent": "3:3-3:24",
 | 
					      "definition_extent": "3:3-3:24",
 | 
				
			||||||
      "callers": ["1@7:7-7:13", "1@9:3-9:9"]
 | 
					      "callers": ["1@7:7-7:13", "1@9:3-9:9"]
 | 
				
			||||||
@ -24,7 +24,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@F@Runner#",
 | 
					      "usr": "c:@F@Runner#",
 | 
				
			||||||
      "short_name": "Runner",
 | 
					      "short_name": "Runner",
 | 
				
			||||||
      "qualified_name": "void Runner()",
 | 
					      "detailed_name": "void Runner()",
 | 
				
			||||||
      "definition_spelling": "6:6-6:12",
 | 
					      "definition_spelling": "6:6-6:12",
 | 
				
			||||||
      "definition_extent": "6:1-10:2",
 | 
					      "definition_extent": "6:1-10:2",
 | 
				
			||||||
      "callees": ["0@7:7-7:13", "0@9:3-9:9"]
 | 
					      "callees": ["0@7:7-7:13", "0@9:3-9:9"]
 | 
				
			||||||
@ -33,7 +33,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@N@ns@Foo",
 | 
					      "usr": "c:@N@ns@Foo",
 | 
				
			||||||
      "short_name": "Foo",
 | 
					      "short_name": "Foo",
 | 
				
			||||||
      "qualified_name": "int ns::Foo",
 | 
					      "detailed_name": "int ns::Foo",
 | 
				
			||||||
      "definition_spelling": "2:7-2:10",
 | 
					      "definition_spelling": "2:7-2:10",
 | 
				
			||||||
      "definition_extent": "2:3-2:10",
 | 
					      "definition_extent": "2:3-2:10",
 | 
				
			||||||
      "uses": ["2:7-2:10", "7:18-7:21", "9:10-9:13"]
 | 
					      "uses": ["2:7-2:10", "7:18-7:21", "9:10-9:13"]
 | 
				
			||||||
@ -41,7 +41,7 @@ OUTPUT:
 | 
				
			|||||||
      "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": "int a",
 | 
					      "detailed_name": "int a",
 | 
				
			||||||
      "definition_spelling": "3:19-3:20",
 | 
					      "definition_spelling": "3:19-3:20",
 | 
				
			||||||
      "definition_extent": "3:15-3:20",
 | 
					      "definition_extent": "3:15-3:20",
 | 
				
			||||||
      "uses": ["3:19-3:20"]
 | 
					      "uses": ["3:19-3:20"]
 | 
				
			||||||
 | 
				
			|||||||
@ -14,7 +14,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@S@MergeableUpdate",
 | 
					      "usr": "c:@S@MergeableUpdate",
 | 
				
			||||||
      "short_name": "MergeableUpdate",
 | 
					      "short_name": "MergeableUpdate",
 | 
				
			||||||
      "qualified_name": "MergeableUpdate",
 | 
					      "detailed_name": "MergeableUpdate",
 | 
				
			||||||
      "definition_spelling": "3:8-3:23",
 | 
					      "definition_spelling": "3:8-3:23",
 | 
				
			||||||
      "definition_extent": "3:1-7:2",
 | 
					      "definition_extent": "3:1-7:2",
 | 
				
			||||||
      "vars": [0, 1, 2],
 | 
					      "vars": [0, 1, 2],
 | 
				
			||||||
@ -29,7 +29,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@S@MergeableUpdate@FI@a",
 | 
					      "usr": "c:@S@MergeableUpdate@FI@a",
 | 
				
			||||||
      "short_name": "a",
 | 
					      "short_name": "a",
 | 
				
			||||||
      "qualified_name": "int MergeableUpdate::a",
 | 
					      "detailed_name": "int MergeableUpdate::a",
 | 
				
			||||||
      "definition_spelling": "4:7-4:8",
 | 
					      "definition_spelling": "4:7-4:8",
 | 
				
			||||||
      "definition_extent": "4:3-4:8",
 | 
					      "definition_extent": "4:3-4:8",
 | 
				
			||||||
      "declaring_type": 0,
 | 
					      "declaring_type": 0,
 | 
				
			||||||
@ -38,7 +38,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@S@MergeableUpdate@FI@b",
 | 
					      "usr": "c:@S@MergeableUpdate@FI@b",
 | 
				
			||||||
      "short_name": "b",
 | 
					      "short_name": "b",
 | 
				
			||||||
      "qualified_name": "int MergeableUpdate::b",
 | 
					      "detailed_name": "int MergeableUpdate::b",
 | 
				
			||||||
      "definition_spelling": "5:7-5:8",
 | 
					      "definition_spelling": "5:7-5:8",
 | 
				
			||||||
      "definition_extent": "5:3-5:8",
 | 
					      "definition_extent": "5:3-5:8",
 | 
				
			||||||
      "declaring_type": 0,
 | 
					      "declaring_type": 0,
 | 
				
			||||||
@ -47,7 +47,7 @@ OUTPUT:
 | 
				
			|||||||
      "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": "std::vector<int> MergeableUpdate::to_add",
 | 
					      "detailed_name": "std::vector<int> MergeableUpdate::to_add",
 | 
				
			||||||
      "definition_spelling": "6:20-6:26",
 | 
					      "definition_spelling": "6:20-6:26",
 | 
				
			||||||
      "definition_extent": "6:3-6:26",
 | 
					      "definition_extent": "6:3-6:26",
 | 
				
			||||||
      "variable_type": 1,
 | 
					      "variable_type": 1,
 | 
				
			||||||
 | 
				
			|||||||
@ -19,7 +19,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@S@CompilationEntry",
 | 
					      "usr": "c:@S@CompilationEntry",
 | 
				
			||||||
      "short_name": "CompilationEntry",
 | 
					      "short_name": "CompilationEntry",
 | 
				
			||||||
      "qualified_name": "CompilationEntry",
 | 
					      "detailed_name": "CompilationEntry",
 | 
				
			||||||
      "definition_spelling": "6:8-6:24",
 | 
					      "definition_spelling": "6:8-6:24",
 | 
				
			||||||
      "definition_extent": "6:1-10:2",
 | 
					      "definition_extent": "6:1-10:2",
 | 
				
			||||||
      "vars": [0, 1, 2],
 | 
					      "vars": [0, 1, 2],
 | 
				
			||||||
@ -39,14 +39,14 @@ OUTPUT:
 | 
				
			|||||||
      "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": "std::vector<CompilationEntry> LoadCompilationEntriesFromDirectory(const std::string &)",
 | 
					      "detailed_name": "std::vector<CompilationEntry> LoadCompilationEntriesFromDirectory(const std::string &)",
 | 
				
			||||||
      "declarations": ["12:31-12:66"]
 | 
					      "declarations": ["12:31-12:66"]
 | 
				
			||||||
    }],
 | 
					    }],
 | 
				
			||||||
  "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": "std::string CompilationEntry::directory",
 | 
					      "detailed_name": "std::string CompilationEntry::directory",
 | 
				
			||||||
      "definition_spelling": "7:15-7:24",
 | 
					      "definition_spelling": "7:15-7:24",
 | 
				
			||||||
      "definition_extent": "7:3-7:24",
 | 
					      "definition_extent": "7:3-7:24",
 | 
				
			||||||
      "variable_type": 1,
 | 
					      "variable_type": 1,
 | 
				
			||||||
@ -56,7 +56,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@S@CompilationEntry@FI@filename",
 | 
					      "usr": "c:@S@CompilationEntry@FI@filename",
 | 
				
			||||||
      "short_name": "filename",
 | 
					      "short_name": "filename",
 | 
				
			||||||
      "qualified_name": "std::string CompilationEntry::filename",
 | 
					      "detailed_name": "std::string CompilationEntry::filename",
 | 
				
			||||||
      "definition_spelling": "8:15-8:23",
 | 
					      "definition_spelling": "8:15-8:23",
 | 
				
			||||||
      "definition_extent": "8:3-8:23",
 | 
					      "definition_extent": "8:3-8:23",
 | 
				
			||||||
      "variable_type": 1,
 | 
					      "variable_type": 1,
 | 
				
			||||||
@ -66,7 +66,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 2,
 | 
					      "id": 2,
 | 
				
			||||||
      "usr": "c:@S@CompilationEntry@FI@args",
 | 
					      "usr": "c:@S@CompilationEntry@FI@args",
 | 
				
			||||||
      "short_name": "args",
 | 
					      "short_name": "args",
 | 
				
			||||||
      "qualified_name": "std::vector<std::string> CompilationEntry::args",
 | 
					      "detailed_name": "std::vector<std::string> CompilationEntry::args",
 | 
				
			||||||
      "definition_spelling": "9:28-9:32",
 | 
					      "definition_spelling": "9:28-9:32",
 | 
				
			||||||
      "definition_extent": "9:3-9:32",
 | 
					      "definition_extent": "9:3-9:32",
 | 
				
			||||||
      "variable_type": 2,
 | 
					      "variable_type": 2,
 | 
				
			||||||
 | 
				
			|||||||
@ -14,7 +14,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@ST>1#T@Template",
 | 
					      "usr": "c:@ST>1#T@Template",
 | 
				
			||||||
      "short_name": "Template",
 | 
					      "short_name": "Template",
 | 
				
			||||||
      "qualified_name": "Template",
 | 
					      "detailed_name": "Template",
 | 
				
			||||||
      "definition_spelling": "2:7-2:15",
 | 
					      "definition_spelling": "2:7-2:15",
 | 
				
			||||||
      "definition_extent": "2:1-2:18",
 | 
					      "definition_extent": "2:1-2:18",
 | 
				
			||||||
      "uses": ["*2:7-2:15", "5:12-5:20", "*8:15-8:23"]
 | 
					      "uses": ["*2:7-2:15", "5:12-5:20", "*8:15-8:23"]
 | 
				
			||||||
@ -22,7 +22,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@S@Foo",
 | 
					      "usr": "c:@S@Foo",
 | 
				
			||||||
      "short_name": "Foo",
 | 
					      "short_name": "Foo",
 | 
				
			||||||
      "qualified_name": "Foo",
 | 
					      "detailed_name": "Foo",
 | 
				
			||||||
      "definition_spelling": "4:8-4:11",
 | 
					      "definition_spelling": "4:8-4:11",
 | 
				
			||||||
      "definition_extent": "4:1-6:2",
 | 
					      "definition_extent": "4:1-6:2",
 | 
				
			||||||
      "funcs": [0],
 | 
					      "funcs": [0],
 | 
				
			||||||
@ -32,7 +32,7 @@ OUTPUT:
 | 
				
			|||||||
      "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": "void Foo::Bar(Template<double> &)",
 | 
					      "detailed_name": "void Foo::Bar(Template<double> &)",
 | 
				
			||||||
      "declarations": ["5:8-5:11"],
 | 
					      "declarations": ["5:8-5:11"],
 | 
				
			||||||
      "definition_spelling": "8:11-8:14",
 | 
					      "definition_spelling": "8:11-8:14",
 | 
				
			||||||
      "definition_extent": "8:1-8:36",
 | 
					      "definition_extent": "8:1-8:36",
 | 
				
			||||||
 | 
				
			|||||||
@ -21,7 +21,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@N@ns@E@VarType",
 | 
					      "usr": "c:@N@ns@E@VarType",
 | 
				
			||||||
      "short_name": "VarType",
 | 
					      "short_name": "VarType",
 | 
				
			||||||
      "qualified_name": "ns::VarType",
 | 
					      "detailed_name": "ns::VarType",
 | 
				
			||||||
      "definition_spelling": "2:8-2:15",
 | 
					      "definition_spelling": "2:8-2:15",
 | 
				
			||||||
      "definition_extent": "2:3-2:18",
 | 
					      "definition_extent": "2:3-2:18",
 | 
				
			||||||
      "instantiations": [0],
 | 
					      "instantiations": [0],
 | 
				
			||||||
@ -30,7 +30,7 @@ OUTPUT:
 | 
				
			|||||||
      "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",
 | 
					      "detailed_name": "ns::Holder",
 | 
				
			||||||
      "definition_spelling": "5:10-5:16",
 | 
					      "definition_spelling": "5:10-5:16",
 | 
				
			||||||
      "definition_extent": "5:3-7:4",
 | 
					      "definition_extent": "5:3-7:4",
 | 
				
			||||||
      "vars": [0],
 | 
					      "vars": [0],
 | 
				
			||||||
@ -40,7 +40,7 @@ OUTPUT:
 | 
				
			|||||||
      "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": "const ns::VarType ns::Holder::static_var",
 | 
					      "detailed_name": "const ns::VarType ns::Holder::static_var",
 | 
				
			||||||
      "declaration": "6:30-6:40",
 | 
					      "declaration": "6:30-6:40",
 | 
				
			||||||
      "definition_spelling": "10:37-10:47",
 | 
					      "definition_spelling": "10:37-10:47",
 | 
				
			||||||
      "definition_extent": "9:3-10:47",
 | 
					      "definition_extent": "9:3-10:47",
 | 
				
			||||||
@ -51,7 +51,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@N@ns@Foo",
 | 
					      "usr": "c:@N@ns@Foo",
 | 
				
			||||||
      "short_name": "Foo",
 | 
					      "short_name": "Foo",
 | 
				
			||||||
      "qualified_name": "int ns::Foo",
 | 
					      "detailed_name": "int ns::Foo",
 | 
				
			||||||
      "definition_spelling": "13:7-13:10",
 | 
					      "definition_spelling": "13:7-13:10",
 | 
				
			||||||
      "definition_extent": "13:3-13:36",
 | 
					      "definition_extent": "13:3-13:36",
 | 
				
			||||||
      "uses": ["13:7-13:10"]
 | 
					      "uses": ["13:7-13:10"]
 | 
				
			||||||
@ -59,7 +59,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 2,
 | 
					      "id": 2,
 | 
				
			||||||
      "usr": "c:@N@ns@Foo2",
 | 
					      "usr": "c:@N@ns@Foo2",
 | 
				
			||||||
      "short_name": "Foo2",
 | 
					      "short_name": "Foo2",
 | 
				
			||||||
      "qualified_name": "int ns::Foo2",
 | 
					      "detailed_name": "int ns::Foo2",
 | 
				
			||||||
      "definition_spelling": "14:7-14:11",
 | 
					      "definition_spelling": "14:7-14:11",
 | 
				
			||||||
      "definition_extent": "14:3-14:37",
 | 
					      "definition_extent": "14:3-14:37",
 | 
				
			||||||
      "uses": ["14:7-14:11"]
 | 
					      "uses": ["14:7-14:11"]
 | 
				
			||||||
 | 
				
			|||||||
@ -18,7 +18,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "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",
 | 
					      "detailed_name": "ns::Foo",
 | 
				
			||||||
      "definition_spelling": "3:10-3:13",
 | 
					      "definition_spelling": "3:10-3:13",
 | 
				
			||||||
      "definition_extent": "3:3-8:4",
 | 
					      "definition_extent": "3:3-8:4",
 | 
				
			||||||
      "funcs": [0],
 | 
					      "funcs": [0],
 | 
				
			||||||
@ -28,7 +28,7 @@ OUTPUT:
 | 
				
			|||||||
      "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": "int ns::Foo::foo()",
 | 
					      "detailed_name": "int ns::Foo::foo()",
 | 
				
			||||||
      "definition_spelling": "5:16-5:19",
 | 
					      "definition_spelling": "5:16-5:19",
 | 
				
			||||||
      "definition_extent": "5:5-7:6",
 | 
					      "definition_extent": "5:5-7:6",
 | 
				
			||||||
      "declaring_type": 0,
 | 
					      "declaring_type": 0,
 | 
				
			||||||
@ -38,7 +38,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@N@ns@a",
 | 
					      "usr": "c:@N@ns@a",
 | 
				
			||||||
      "short_name": "a",
 | 
					      "short_name": "a",
 | 
				
			||||||
      "qualified_name": "int ns::a",
 | 
					      "detailed_name": "int ns::a",
 | 
				
			||||||
      "definition_spelling": "10:7-10:8",
 | 
					      "definition_spelling": "10:7-10:8",
 | 
				
			||||||
      "definition_extent": "10:3-10:33",
 | 
					      "definition_extent": "10:3-10:33",
 | 
				
			||||||
      "uses": ["10:7-10:8"]
 | 
					      "uses": ["10:7-10:8"]
 | 
				
			||||||
@ -46,7 +46,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@N@ns@b",
 | 
					      "usr": "c:@N@ns@b",
 | 
				
			||||||
      "short_name": "b",
 | 
					      "short_name": "b",
 | 
				
			||||||
      "qualified_name": "int ns::b",
 | 
					      "detailed_name": "int ns::b",
 | 
				
			||||||
      "definition_spelling": "11:7-11:8",
 | 
					      "definition_spelling": "11:7-11:8",
 | 
				
			||||||
      "definition_extent": "11:3-11:35",
 | 
					      "definition_extent": "11:3-11:35",
 | 
				
			||||||
      "uses": ["11:7-11:8"]
 | 
					      "uses": ["11:7-11:8"]
 | 
				
			||||||
 | 
				
			|||||||
@ -13,7 +13,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "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",
 | 
					      "detailed_name": "ns::Foo",
 | 
				
			||||||
      "definition_spelling": "3:9-3:12",
 | 
					      "definition_spelling": "3:9-3:12",
 | 
				
			||||||
      "definition_extent": "3:3-3:15",
 | 
					      "definition_extent": "3:3-3:15",
 | 
				
			||||||
      "instantiations": [0, 1],
 | 
					      "instantiations": [0, 1],
 | 
				
			||||||
@ -23,7 +23,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@N@ns@a",
 | 
					      "usr": "c:@N@ns@a",
 | 
				
			||||||
      "short_name": "a",
 | 
					      "short_name": "a",
 | 
				
			||||||
      "qualified_name": "Foo<int> ns::a",
 | 
					      "detailed_name": "Foo<int> ns::a",
 | 
				
			||||||
      "definition_spelling": "5:12-5:13",
 | 
					      "definition_spelling": "5:12-5:13",
 | 
				
			||||||
      "definition_extent": "5:3-5:13",
 | 
					      "definition_extent": "5:3-5:13",
 | 
				
			||||||
      "variable_type": 0,
 | 
					      "variable_type": 0,
 | 
				
			||||||
@ -32,7 +32,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@N@ns@b",
 | 
					      "usr": "c:@N@ns@b",
 | 
				
			||||||
      "short_name": "b",
 | 
					      "short_name": "b",
 | 
				
			||||||
      "qualified_name": "Foo<bool> ns::b",
 | 
					      "detailed_name": "Foo<bool> ns::b",
 | 
				
			||||||
      "definition_spelling": "6:13-6:14",
 | 
					      "definition_spelling": "6:13-6:14",
 | 
				
			||||||
      "definition_extent": "6:3-6:14",
 | 
					      "definition_extent": "6:3-6:14",
 | 
				
			||||||
      "variable_type": 0,
 | 
					      "variable_type": 0,
 | 
				
			||||||
 | 
				
			|||||||
@ -19,7 +19,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@ST>1#T@Template",
 | 
					      "usr": "c:@ST>1#T@Template",
 | 
				
			||||||
      "short_name": "Template",
 | 
					      "short_name": "Template",
 | 
				
			||||||
      "qualified_name": "Template",
 | 
					      "detailed_name": "Template",
 | 
				
			||||||
      "definition_spelling": "2:7-2:15",
 | 
					      "definition_spelling": "2:7-2:15",
 | 
				
			||||||
      "definition_extent": "2:1-4:2",
 | 
					      "definition_extent": "2:1-4:2",
 | 
				
			||||||
      "funcs": [0],
 | 
					      "funcs": [0],
 | 
				
			||||||
@ -29,7 +29,7 @@ OUTPUT:
 | 
				
			|||||||
      "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": "void Template::Foo()",
 | 
					      "detailed_name": "void Template::Foo()",
 | 
				
			||||||
      "declarations": ["3:8-3:11", "9:22-9:25"],
 | 
					      "declarations": ["3:8-3:11", "9:22-9:25"],
 | 
				
			||||||
      "definition_spelling": "7:19-7:22",
 | 
					      "definition_spelling": "7:19-7:22",
 | 
				
			||||||
      "definition_extent": "6:1-7:24",
 | 
					      "definition_extent": "6:1-7:24",
 | 
				
			||||||
 | 
				
			|||||||
@ -15,7 +15,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@ST>1#T@Foo",
 | 
					      "usr": "c:@ST>1#T@Foo",
 | 
				
			||||||
      "short_name": "Foo",
 | 
					      "short_name": "Foo",
 | 
				
			||||||
      "qualified_name": "Foo",
 | 
					      "detailed_name": "Foo",
 | 
				
			||||||
      "definition_spelling": "2:8-2:11",
 | 
					      "definition_spelling": "2:8-2:11",
 | 
				
			||||||
      "definition_extent": "2:1-6:2",
 | 
					      "definition_extent": "2:1-6:2",
 | 
				
			||||||
      "funcs": [0],
 | 
					      "funcs": [0],
 | 
				
			||||||
@ -25,7 +25,7 @@ OUTPUT:
 | 
				
			|||||||
      "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": "int Foo::foo()",
 | 
					      "detailed_name": "int Foo::foo()",
 | 
				
			||||||
      "definition_spelling": "3:14-3:17",
 | 
					      "definition_spelling": "3:14-3:17",
 | 
				
			||||||
      "definition_extent": "3:3-5:4",
 | 
					      "definition_extent": "3:3-5:4",
 | 
				
			||||||
      "declaring_type": 0,
 | 
					      "declaring_type": 0,
 | 
				
			||||||
@ -35,7 +35,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@a",
 | 
					      "usr": "c:@a",
 | 
				
			||||||
      "short_name": "a",
 | 
					      "short_name": "a",
 | 
				
			||||||
      "qualified_name": "int a",
 | 
					      "detailed_name": "int a",
 | 
				
			||||||
      "definition_spelling": "8:5-8:6",
 | 
					      "definition_spelling": "8:5-8:6",
 | 
				
			||||||
      "definition_extent": "8:1-8:24",
 | 
					      "definition_extent": "8:1-8:24",
 | 
				
			||||||
      "uses": ["8:5-8:6"]
 | 
					      "uses": ["8:5-8:6"]
 | 
				
			||||||
@ -43,7 +43,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@b",
 | 
					      "usr": "c:@b",
 | 
				
			||||||
      "short_name": "b",
 | 
					      "short_name": "b",
 | 
				
			||||||
      "qualified_name": "int b",
 | 
					      "detailed_name": "int b",
 | 
				
			||||||
      "definition_spelling": "9:5-9:6",
 | 
					      "definition_spelling": "9:5-9:6",
 | 
				
			||||||
      "definition_extent": "9:1-9:25",
 | 
					      "definition_extent": "9:1-9:25",
 | 
				
			||||||
      "uses": ["9:5-9:6"]
 | 
					      "uses": ["9:5-9:6"]
 | 
				
			||||||
 | 
				
			|||||||
@ -16,7 +16,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@ST>1#T@Foo",
 | 
					      "usr": "c:@ST>1#T@Foo",
 | 
				
			||||||
      "short_name": "Foo",
 | 
					      "short_name": "Foo",
 | 
				
			||||||
      "qualified_name": "Foo",
 | 
					      "detailed_name": "Foo",
 | 
				
			||||||
      "definition_spelling": "2:8-2:11",
 | 
					      "definition_spelling": "2:8-2:11",
 | 
				
			||||||
      "definition_extent": "2:1-7:2",
 | 
					      "definition_extent": "2:1-7:2",
 | 
				
			||||||
      "funcs": [0],
 | 
					      "funcs": [0],
 | 
				
			||||||
@ -26,7 +26,7 @@ OUTPUT:
 | 
				
			|||||||
      "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": "int Foo::foo()",
 | 
					      "detailed_name": "int Foo::foo()",
 | 
				
			||||||
      "definition_spelling": "4:14-4:17",
 | 
					      "definition_spelling": "4:14-4:17",
 | 
				
			||||||
      "definition_extent": "4:3-6:4",
 | 
					      "definition_extent": "4:3-6:4",
 | 
				
			||||||
      "declaring_type": 0,
 | 
					      "declaring_type": 0,
 | 
				
			||||||
@ -36,7 +36,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@a",
 | 
					      "usr": "c:@a",
 | 
				
			||||||
      "short_name": "a",
 | 
					      "short_name": "a",
 | 
				
			||||||
      "qualified_name": "int a",
 | 
					      "detailed_name": "int a",
 | 
				
			||||||
      "definition_spelling": "9:5-9:6",
 | 
					      "definition_spelling": "9:5-9:6",
 | 
				
			||||||
      "definition_extent": "9:1-9:31",
 | 
					      "definition_extent": "9:1-9:31",
 | 
				
			||||||
      "uses": ["9:5-9:6"]
 | 
					      "uses": ["9:5-9:6"]
 | 
				
			||||||
@ -44,7 +44,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@b",
 | 
					      "usr": "c:@b",
 | 
				
			||||||
      "short_name": "b",
 | 
					      "short_name": "b",
 | 
				
			||||||
      "qualified_name": "int b",
 | 
					      "detailed_name": "int b",
 | 
				
			||||||
      "definition_spelling": "10:5-10:6",
 | 
					      "definition_spelling": "10:5-10:6",
 | 
				
			||||||
      "definition_extent": "10:1-10:33",
 | 
					      "definition_extent": "10:1-10:33",
 | 
				
			||||||
      "uses": ["10:5-10:6"]
 | 
					      "uses": ["10:5-10:6"]
 | 
				
			||||||
 | 
				
			|||||||
@ -34,7 +34,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@E@A",
 | 
					      "usr": "c:@E@A",
 | 
				
			||||||
      "short_name": "A",
 | 
					      "short_name": "A",
 | 
				
			||||||
      "qualified_name": "A",
 | 
					      "detailed_name": "A",
 | 
				
			||||||
      "definition_spelling": "1:6-1:7",
 | 
					      "definition_spelling": "1:6-1:7",
 | 
				
			||||||
      "definition_extent": "1:1-1:10",
 | 
					      "definition_extent": "1:1-1:10",
 | 
				
			||||||
      "uses": ["*1:6-1:7", "*9:5-9:6"]
 | 
					      "uses": ["*1:6-1:7", "*9:5-9:6"]
 | 
				
			||||||
@ -42,7 +42,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@E@B",
 | 
					      "usr": "c:@E@B",
 | 
				
			||||||
      "short_name": "B",
 | 
					      "short_name": "B",
 | 
				
			||||||
      "qualified_name": "B",
 | 
					      "detailed_name": "B",
 | 
				
			||||||
      "definition_spelling": "2:6-2:7",
 | 
					      "definition_spelling": "2:6-2:7",
 | 
				
			||||||
      "definition_extent": "2:1-2:10",
 | 
					      "definition_extent": "2:1-2:10",
 | 
				
			||||||
      "uses": ["*2:6-2:7", "*10:5-10:6"]
 | 
					      "uses": ["*2:6-2:7", "*10:5-10:6"]
 | 
				
			||||||
@ -50,7 +50,7 @@ OUTPUT:
 | 
				
			|||||||
      "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",
 | 
					      "detailed_name": "Foo",
 | 
				
			||||||
      "definition_spelling": "5:8-5:11",
 | 
					      "definition_spelling": "5:8-5:11",
 | 
				
			||||||
      "definition_extent": "5:1-7:2",
 | 
					      "definition_extent": "5:1-7:2",
 | 
				
			||||||
      "uses": ["*5:8-5:11", "*9:1-9:4", "*10:1-10:4"]
 | 
					      "uses": ["*5:8-5:11", "*9:1-9:4", "*10:1-10:4"]
 | 
				
			||||||
@ -58,7 +58,7 @@ OUTPUT:
 | 
				
			|||||||
      "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",
 | 
					      "detailed_name": "Foo::Inner",
 | 
				
			||||||
      "definition_spelling": "6:10-6:15",
 | 
					      "definition_spelling": "6:10-6:15",
 | 
				
			||||||
      "definition_extent": "6:3-6:18",
 | 
					      "definition_extent": "6:3-6:18",
 | 
				
			||||||
      "instantiations": [0, 1],
 | 
					      "instantiations": [0, 1],
 | 
				
			||||||
@ -68,7 +68,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@a",
 | 
					      "usr": "c:@a",
 | 
				
			||||||
      "short_name": "a",
 | 
					      "short_name": "a",
 | 
				
			||||||
      "qualified_name": "Foo<A>::Inner a",
 | 
					      "detailed_name": "Foo<A>::Inner a",
 | 
				
			||||||
      "definition_spelling": "9:15-9:16",
 | 
					      "definition_spelling": "9:15-9:16",
 | 
				
			||||||
      "definition_extent": "9:1-9:16",
 | 
					      "definition_extent": "9:1-9:16",
 | 
				
			||||||
      "variable_type": 3,
 | 
					      "variable_type": 3,
 | 
				
			||||||
@ -77,7 +77,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@b",
 | 
					      "usr": "c:@b",
 | 
				
			||||||
      "short_name": "b",
 | 
					      "short_name": "b",
 | 
				
			||||||
      "qualified_name": "Foo<B>::Inner b",
 | 
					      "detailed_name": "Foo<B>::Inner b",
 | 
				
			||||||
      "definition_spelling": "10:15-10:16",
 | 
					      "definition_spelling": "10:15-10:16",
 | 
				
			||||||
      "definition_extent": "10:1-10:16",
 | 
					      "definition_extent": "10:1-10:16",
 | 
				
			||||||
      "variable_type": 3,
 | 
					      "variable_type": 3,
 | 
				
			||||||
 | 
				
			|||||||
@ -13,7 +13,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@ST>1#T@Foo",
 | 
					      "usr": "c:@ST>1#T@Foo",
 | 
				
			||||||
      "short_name": "Foo",
 | 
					      "short_name": "Foo",
 | 
				
			||||||
      "qualified_name": "Foo",
 | 
					      "detailed_name": "Foo",
 | 
				
			||||||
      "definition_spelling": "2:8-2:11",
 | 
					      "definition_spelling": "2:8-2:11",
 | 
				
			||||||
      "definition_extent": "2:1-4:2",
 | 
					      "definition_extent": "2:1-4:2",
 | 
				
			||||||
      "uses": ["*2:8-2:11", "6:9-6:12", "7:9-7:12"]
 | 
					      "uses": ["*2:8-2:11", "6:9-6:12", "7:9-7:12"]
 | 
				
			||||||
@ -22,14 +22,14 @@ OUTPUT:
 | 
				
			|||||||
      "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": "const int Foo::var",
 | 
					      "detailed_name": "const int Foo::var",
 | 
				
			||||||
      "declaration": "3:24-3:27",
 | 
					      "declaration": "3:24-3:27",
 | 
				
			||||||
      "uses": ["3:24-3:27", "6:19-6:22", "7:20-7:23"]
 | 
					      "uses": ["3:24-3:27", "6:19-6:22", "7:20-7:23"]
 | 
				
			||||||
    }, {
 | 
					    }, {
 | 
				
			||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@a",
 | 
					      "usr": "c:@a",
 | 
				
			||||||
      "short_name": "a",
 | 
					      "short_name": "a",
 | 
				
			||||||
      "qualified_name": "int a",
 | 
					      "detailed_name": "int a",
 | 
				
			||||||
      "definition_spelling": "6:5-6:6",
 | 
					      "definition_spelling": "6:5-6:6",
 | 
				
			||||||
      "definition_extent": "6:1-6:22",
 | 
					      "definition_extent": "6:1-6:22",
 | 
				
			||||||
      "uses": ["6:5-6:6"]
 | 
					      "uses": ["6:5-6:6"]
 | 
				
			||||||
@ -37,7 +37,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 2,
 | 
					      "id": 2,
 | 
				
			||||||
      "usr": "c:@b",
 | 
					      "usr": "c:@b",
 | 
				
			||||||
      "short_name": "b",
 | 
					      "short_name": "b",
 | 
				
			||||||
      "qualified_name": "int b",
 | 
					      "detailed_name": "int b",
 | 
				
			||||||
      "definition_spelling": "7:5-7:6",
 | 
					      "definition_spelling": "7:5-7:6",
 | 
				
			||||||
      "definition_extent": "7:1-7:23",
 | 
					      "definition_extent": "7:1-7:23",
 | 
				
			||||||
      "uses": ["7:5-7:6"]
 | 
					      "uses": ["7:5-7:6"]
 | 
				
			||||||
 | 
				
			|||||||
@ -16,7 +16,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "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": "int foo()",
 | 
					      "detailed_name": "int foo()",
 | 
				
			||||||
      "definition_spelling": "2:12-2:15",
 | 
					      "definition_spelling": "2:12-2:15",
 | 
				
			||||||
      "definition_extent": "2:1-4:2",
 | 
					      "definition_extent": "2:1-4:2",
 | 
				
			||||||
      "callers": ["-1@6:9-6:12", "-1@7:9-7:12"]
 | 
					      "callers": ["-1@6:9-6:12", "-1@7:9-7:12"]
 | 
				
			||||||
@ -25,7 +25,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@a",
 | 
					      "usr": "c:@a",
 | 
				
			||||||
      "short_name": "a",
 | 
					      "short_name": "a",
 | 
				
			||||||
      "qualified_name": "int a",
 | 
					      "detailed_name": "int a",
 | 
				
			||||||
      "definition_spelling": "6:5-6:6",
 | 
					      "definition_spelling": "6:5-6:6",
 | 
				
			||||||
      "definition_extent": "6:1-6:19",
 | 
					      "definition_extent": "6:1-6:19",
 | 
				
			||||||
      "uses": ["6:5-6:6"]
 | 
					      "uses": ["6:5-6:6"]
 | 
				
			||||||
@ -33,7 +33,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@b",
 | 
					      "usr": "c:@b",
 | 
				
			||||||
      "short_name": "b",
 | 
					      "short_name": "b",
 | 
				
			||||||
      "qualified_name": "int b",
 | 
					      "detailed_name": "int b",
 | 
				
			||||||
      "definition_spelling": "7:5-7:6",
 | 
					      "definition_spelling": "7:5-7:6",
 | 
				
			||||||
      "definition_extent": "7:1-7:20",
 | 
					      "definition_extent": "7:1-7:20",
 | 
				
			||||||
      "uses": ["7:5-7:6"]
 | 
					      "uses": ["7:5-7:6"]
 | 
				
			||||||
 | 
				
			|||||||
@ -11,7 +11,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@ST>1#T@Foo",
 | 
					      "usr": "c:@ST>1#T@Foo",
 | 
				
			||||||
      "short_name": "Foo",
 | 
					      "short_name": "Foo",
 | 
				
			||||||
      "qualified_name": "Foo",
 | 
					      "detailed_name": "Foo",
 | 
				
			||||||
      "definition_spelling": "2:7-2:10",
 | 
					      "definition_spelling": "2:7-2:10",
 | 
				
			||||||
      "definition_extent": "2:1-2:13",
 | 
					      "definition_extent": "2:1-2:13",
 | 
				
			||||||
      "instantiations": [0, 1],
 | 
					      "instantiations": [0, 1],
 | 
				
			||||||
@ -21,7 +21,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@a",
 | 
					      "usr": "c:@a",
 | 
				
			||||||
      "short_name": "a",
 | 
					      "short_name": "a",
 | 
				
			||||||
      "qualified_name": "Foo<int> a",
 | 
					      "detailed_name": "Foo<int> a",
 | 
				
			||||||
      "definition_spelling": "4:10-4:11",
 | 
					      "definition_spelling": "4:10-4:11",
 | 
				
			||||||
      "definition_extent": "4:1-4:11",
 | 
					      "definition_extent": "4:1-4:11",
 | 
				
			||||||
      "variable_type": 0,
 | 
					      "variable_type": 0,
 | 
				
			||||||
@ -30,7 +30,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@b",
 | 
					      "usr": "c:@b",
 | 
				
			||||||
      "short_name": "b",
 | 
					      "short_name": "b",
 | 
				
			||||||
      "qualified_name": "Foo<bool> b",
 | 
					      "detailed_name": "Foo<bool> b",
 | 
				
			||||||
      "definition_spelling": "5:11-5:12",
 | 
					      "definition_spelling": "5:11-5:12",
 | 
				
			||||||
      "definition_extent": "5:1-5:12",
 | 
					      "definition_extent": "5:1-5:12",
 | 
				
			||||||
      "variable_type": 0,
 | 
					      "variable_type": 0,
 | 
				
			||||||
 | 
				
			|||||||
@ -34,7 +34,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@E@A",
 | 
					      "usr": "c:@E@A",
 | 
				
			||||||
      "short_name": "A",
 | 
					      "short_name": "A",
 | 
				
			||||||
      "qualified_name": "A",
 | 
					      "detailed_name": "A",
 | 
				
			||||||
      "definition_spelling": "1:6-1:7",
 | 
					      "definition_spelling": "1:6-1:7",
 | 
				
			||||||
      "definition_extent": "1:1-1:10",
 | 
					      "definition_extent": "1:1-1:10",
 | 
				
			||||||
      "uses": ["*1:6-1:7", "7:13-7:14"]
 | 
					      "uses": ["*1:6-1:7", "7:13-7:14"]
 | 
				
			||||||
@ -42,7 +42,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@E@B",
 | 
					      "usr": "c:@E@B",
 | 
				
			||||||
      "short_name": "B",
 | 
					      "short_name": "B",
 | 
				
			||||||
      "qualified_name": "B",
 | 
					      "detailed_name": "B",
 | 
				
			||||||
      "definition_spelling": "2:6-2:7",
 | 
					      "definition_spelling": "2:6-2:7",
 | 
				
			||||||
      "definition_extent": "2:1-2:10",
 | 
					      "definition_extent": "2:1-2:10",
 | 
				
			||||||
      "uses": ["*2:6-2:7", "8:13-8:14"]
 | 
					      "uses": ["*2:6-2:7", "8:13-8:14"]
 | 
				
			||||||
@ -55,7 +55,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@VT>1#T@var",
 | 
					      "usr": "c:@VT>1#T@var",
 | 
				
			||||||
      "short_name": "var",
 | 
					      "short_name": "var",
 | 
				
			||||||
      "qualified_name": "T var",
 | 
					      "detailed_name": "T var",
 | 
				
			||||||
      "definition_spelling": "5:3-5:6",
 | 
					      "definition_spelling": "5:3-5:6",
 | 
				
			||||||
      "definition_extent": "5:1-5:10",
 | 
					      "definition_extent": "5:1-5:10",
 | 
				
			||||||
      "uses": ["5:3-5:6", "7:9-7:12", "8:9-8:12"]
 | 
					      "uses": ["5:3-5:6", "7:9-7:12", "8:9-8:12"]
 | 
				
			||||||
@ -63,7 +63,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@a",
 | 
					      "usr": "c:@a",
 | 
				
			||||||
      "short_name": "a",
 | 
					      "short_name": "a",
 | 
				
			||||||
      "qualified_name": "int a",
 | 
					      "detailed_name": "int a",
 | 
				
			||||||
      "definition_spelling": "7:5-7:6",
 | 
					      "definition_spelling": "7:5-7:6",
 | 
				
			||||||
      "definition_extent": "7:1-7:15",
 | 
					      "definition_extent": "7:1-7:15",
 | 
				
			||||||
      "uses": ["7:5-7:6"]
 | 
					      "uses": ["7:5-7:6"]
 | 
				
			||||||
@ -71,7 +71,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 2,
 | 
					      "id": 2,
 | 
				
			||||||
      "usr": "c:@b",
 | 
					      "usr": "c:@b",
 | 
				
			||||||
      "short_name": "b",
 | 
					      "short_name": "b",
 | 
				
			||||||
      "qualified_name": "int b",
 | 
					      "detailed_name": "int b",
 | 
				
			||||||
      "definition_spelling": "8:5-8:6",
 | 
					      "definition_spelling": "8:5-8:6",
 | 
				
			||||||
      "definition_extent": "8:1-8:15",
 | 
					      "definition_extent": "8:1-8:15",
 | 
				
			||||||
      "uses": ["8:5-8:6"]
 | 
					      "uses": ["8:5-8:6"]
 | 
				
			||||||
 | 
				
			|||||||
@ -10,7 +10,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@U@vector3",
 | 
					      "usr": "c:@U@vector3",
 | 
				
			||||||
      "short_name": "vector3",
 | 
					      "short_name": "vector3",
 | 
				
			||||||
      "qualified_name": "vector3",
 | 
					      "detailed_name": "vector3",
 | 
				
			||||||
      "definition_spelling": "1:7-1:14",
 | 
					      "definition_spelling": "1:7-1:14",
 | 
				
			||||||
      "definition_extent": "1:1-4:2",
 | 
					      "definition_extent": "1:1-4:2",
 | 
				
			||||||
      "vars": [3],
 | 
					      "vars": [3],
 | 
				
			||||||
@ -19,7 +19,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@U@vector3@Sa",
 | 
					      "usr": "c:@U@vector3@Sa",
 | 
				
			||||||
      "short_name": "<anonymous>",
 | 
					      "short_name": "<anonymous>",
 | 
				
			||||||
      "qualified_name": "vector3::<anonymous>",
 | 
					      "detailed_name": "vector3::<anonymous>",
 | 
				
			||||||
      "definition_spelling": "2:3-2:9",
 | 
					      "definition_spelling": "2:3-2:9",
 | 
				
			||||||
      "definition_extent": "2:3-2:28",
 | 
					      "definition_extent": "2:3-2:28",
 | 
				
			||||||
      "vars": [0, 1, 2],
 | 
					      "vars": [0, 1, 2],
 | 
				
			||||||
@ -29,7 +29,7 @@ OUTPUT:
 | 
				
			|||||||
      "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": "float x",
 | 
					      "detailed_name": "float x",
 | 
				
			||||||
      "definition_spelling": "2:18-2:19",
 | 
					      "definition_spelling": "2:18-2:19",
 | 
				
			||||||
      "definition_extent": "2:12-2:19",
 | 
					      "definition_extent": "2:12-2:19",
 | 
				
			||||||
      "declaring_type": 1,
 | 
					      "declaring_type": 1,
 | 
				
			||||||
@ -38,7 +38,7 @@ OUTPUT:
 | 
				
			|||||||
      "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": "float y",
 | 
					      "detailed_name": "float y",
 | 
				
			||||||
      "definition_spelling": "2:21-2:22",
 | 
					      "definition_spelling": "2:21-2:22",
 | 
				
			||||||
      "definition_extent": "2:12-2:22",
 | 
					      "definition_extent": "2:12-2:22",
 | 
				
			||||||
      "declaring_type": 1,
 | 
					      "declaring_type": 1,
 | 
				
			||||||
@ -47,7 +47,7 @@ OUTPUT:
 | 
				
			|||||||
      "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": "float z",
 | 
					      "detailed_name": "float z",
 | 
				
			||||||
      "definition_spelling": "2:24-2:25",
 | 
					      "definition_spelling": "2:24-2:25",
 | 
				
			||||||
      "definition_extent": "2:12-2:25",
 | 
					      "definition_extent": "2:12-2:25",
 | 
				
			||||||
      "declaring_type": 1,
 | 
					      "declaring_type": 1,
 | 
				
			||||||
@ -56,7 +56,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 3,
 | 
					      "id": 3,
 | 
				
			||||||
      "usr": "c:@U@vector3@FI@v",
 | 
					      "usr": "c:@U@vector3@FI@v",
 | 
				
			||||||
      "short_name": "v",
 | 
					      "short_name": "v",
 | 
				
			||||||
      "qualified_name": "float [3] vector3::v",
 | 
					      "detailed_name": "float [3] vector3::v",
 | 
				
			||||||
      "definition_spelling": "3:9-3:10",
 | 
					      "definition_spelling": "3:9-3:10",
 | 
				
			||||||
      "definition_extent": "3:3-3:13",
 | 
					      "definition_extent": "3:3-3:13",
 | 
				
			||||||
      "declaring_type": 0,
 | 
					      "declaring_type": 0,
 | 
				
			||||||
 | 
				
			|||||||
@ -10,7 +10,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@U@Foo",
 | 
					      "usr": "c:@U@Foo",
 | 
				
			||||||
      "short_name": "Foo",
 | 
					      "short_name": "Foo",
 | 
				
			||||||
      "qualified_name": "Foo",
 | 
					      "detailed_name": "Foo",
 | 
				
			||||||
      "definition_spelling": "1:7-1:10",
 | 
					      "definition_spelling": "1:7-1:10",
 | 
				
			||||||
      "definition_extent": "1:1-4:2",
 | 
					      "definition_extent": "1:1-4:2",
 | 
				
			||||||
      "vars": [0, 1],
 | 
					      "vars": [0, 1],
 | 
				
			||||||
@ -20,7 +20,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@U@Foo@FI@a",
 | 
					      "usr": "c:@U@Foo@FI@a",
 | 
				
			||||||
      "short_name": "a",
 | 
					      "short_name": "a",
 | 
				
			||||||
      "qualified_name": "int Foo::a",
 | 
					      "detailed_name": "int Foo::a",
 | 
				
			||||||
      "definition_spelling": "2:7-2:8",
 | 
					      "definition_spelling": "2:7-2:8",
 | 
				
			||||||
      "definition_extent": "2:3-2:8",
 | 
					      "definition_extent": "2:3-2:8",
 | 
				
			||||||
      "declaring_type": 0,
 | 
					      "declaring_type": 0,
 | 
				
			||||||
@ -29,7 +29,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@U@Foo@FI@b",
 | 
					      "usr": "c:@U@Foo@FI@b",
 | 
				
			||||||
      "short_name": "b",
 | 
					      "short_name": "b",
 | 
				
			||||||
      "qualified_name": "bool Foo::b",
 | 
					      "detailed_name": "bool Foo::b",
 | 
				
			||||||
      "definition_spelling": "3:8-3:9",
 | 
					      "definition_spelling": "3:8-3:9",
 | 
				
			||||||
      "definition_extent": "3:3-3:9",
 | 
					      "definition_extent": "3:3-3:9",
 | 
				
			||||||
      "declaring_type": 0,
 | 
					      "declaring_type": 0,
 | 
				
			||||||
 | 
				
			|||||||
@ -18,7 +18,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@U@Foo",
 | 
					      "usr": "c:@U@Foo",
 | 
				
			||||||
      "short_name": "Foo",
 | 
					      "short_name": "Foo",
 | 
				
			||||||
      "qualified_name": "Foo",
 | 
					      "detailed_name": "Foo",
 | 
				
			||||||
      "definition_spelling": "1:7-1:10",
 | 
					      "definition_spelling": "1:7-1:10",
 | 
				
			||||||
      "definition_extent": "1:1-4:2",
 | 
					      "definition_extent": "1:1-4:2",
 | 
				
			||||||
      "vars": [0, 1],
 | 
					      "vars": [0, 1],
 | 
				
			||||||
@ -29,7 +29,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@F@act#*$@U@Foo#",
 | 
					      "usr": "c:@F@act#*$@U@Foo#",
 | 
				
			||||||
      "short_name": "act",
 | 
					      "short_name": "act",
 | 
				
			||||||
      "qualified_name": "void act(Foo *)",
 | 
					      "detailed_name": "void act(Foo *)",
 | 
				
			||||||
      "definition_spelling": "8:6-8:9",
 | 
					      "definition_spelling": "8:6-8:9",
 | 
				
			||||||
      "definition_extent": "8:1-10:2"
 | 
					      "definition_extent": "8:1-10:2"
 | 
				
			||||||
    }],
 | 
					    }],
 | 
				
			||||||
@ -37,7 +37,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@U@Foo@FI@a",
 | 
					      "usr": "c:@U@Foo@FI@a",
 | 
				
			||||||
      "short_name": "a",
 | 
					      "short_name": "a",
 | 
				
			||||||
      "qualified_name": "int Foo::a",
 | 
					      "detailed_name": "int Foo::a",
 | 
				
			||||||
      "definition_spelling": "2:7-2:8",
 | 
					      "definition_spelling": "2:7-2:8",
 | 
				
			||||||
      "definition_extent": "2:3-2:12",
 | 
					      "definition_extent": "2:3-2:12",
 | 
				
			||||||
      "declaring_type": 0,
 | 
					      "declaring_type": 0,
 | 
				
			||||||
@ -46,7 +46,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@U@Foo@FI@b",
 | 
					      "usr": "c:@U@Foo@FI@b",
 | 
				
			||||||
      "short_name": "b",
 | 
					      "short_name": "b",
 | 
				
			||||||
      "qualified_name": "bool Foo::b",
 | 
					      "detailed_name": "bool Foo::b",
 | 
				
			||||||
      "definition_spelling": "3:8-3:9",
 | 
					      "definition_spelling": "3:8-3:9",
 | 
				
			||||||
      "definition_extent": "3:3-3:13",
 | 
					      "definition_extent": "3:3-3:13",
 | 
				
			||||||
      "declaring_type": 0,
 | 
					      "declaring_type": 0,
 | 
				
			||||||
@ -55,7 +55,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 2,
 | 
					      "id": 2,
 | 
				
			||||||
      "usr": "c:@f",
 | 
					      "usr": "c:@f",
 | 
				
			||||||
      "short_name": "f",
 | 
					      "short_name": "f",
 | 
				
			||||||
      "qualified_name": "Foo f",
 | 
					      "detailed_name": "Foo f",
 | 
				
			||||||
      "definition_spelling": "6:5-6:6",
 | 
					      "definition_spelling": "6:5-6:6",
 | 
				
			||||||
      "definition_extent": "6:1-6:6",
 | 
					      "definition_extent": "6:1-6:6",
 | 
				
			||||||
      "variable_type": 0,
 | 
					      "variable_type": 0,
 | 
				
			||||||
 | 
				
			|||||||
@ -15,7 +15,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@S@Foo",
 | 
					      "usr": "c:@S@Foo",
 | 
				
			||||||
      "short_name": "Foo",
 | 
					      "short_name": "Foo",
 | 
				
			||||||
      "qualified_name": "Foo",
 | 
					      "detailed_name": "Foo",
 | 
				
			||||||
      "definition_spelling": "3:8-3:11",
 | 
					      "definition_spelling": "3:8-3:11",
 | 
				
			||||||
      "definition_extent": "3:1-5:2",
 | 
					      "definition_extent": "3:1-5:2",
 | 
				
			||||||
      "funcs": [1],
 | 
					      "funcs": [1],
 | 
				
			||||||
@ -25,7 +25,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@F@called#",
 | 
					      "usr": "c:@F@called#",
 | 
				
			||||||
      "short_name": "called",
 | 
					      "short_name": "called",
 | 
				
			||||||
      "qualified_name": "void called()",
 | 
					      "detailed_name": "void called()",
 | 
				
			||||||
      "definition_spelling": "1:6-1:12",
 | 
					      "definition_spelling": "1:6-1:12",
 | 
				
			||||||
      "definition_extent": "1:1-1:17",
 | 
					      "definition_extent": "1:1-1:17",
 | 
				
			||||||
      "callers": ["1@8:3-8:9"]
 | 
					      "callers": ["1@8:3-8:9"]
 | 
				
			||||||
@ -33,7 +33,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@S@Foo@F@Foo#",
 | 
					      "usr": "c:@S@Foo@F@Foo#",
 | 
				
			||||||
      "short_name": "Foo",
 | 
					      "short_name": "Foo",
 | 
				
			||||||
      "qualified_name": "void Foo::Foo()",
 | 
					      "detailed_name": "void Foo::Foo()",
 | 
				
			||||||
      "declarations": ["4:3-4:6"],
 | 
					      "declarations": ["4:3-4:6"],
 | 
				
			||||||
      "definition_spelling": "7:6-7:9",
 | 
					      "definition_spelling": "7:6-7:9",
 | 
				
			||||||
      "definition_extent": "7:1-9:2",
 | 
					      "definition_extent": "7:1-9:2",
 | 
				
			||||||
 | 
				
			|||||||
@ -13,14 +13,14 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@F@called#b#b#",
 | 
					      "usr": "c:@F@called#b#b#",
 | 
				
			||||||
      "short_name": "called",
 | 
					      "short_name": "called",
 | 
				
			||||||
      "qualified_name": "bool called(bool, bool)",
 | 
					      "detailed_name": "bool called(bool, bool)",
 | 
				
			||||||
      "declarations": ["3:6-3:12"],
 | 
					      "declarations": ["3:6-3:12"],
 | 
				
			||||||
      "callers": ["1@6:14-6:20"]
 | 
					      "callers": ["1@6:14-6:20"]
 | 
				
			||||||
    }, {
 | 
					    }, {
 | 
				
			||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@F@caller#",
 | 
					      "usr": "c:@F@caller#",
 | 
				
			||||||
      "short_name": "caller",
 | 
					      "short_name": "caller",
 | 
				
			||||||
      "qualified_name": "void caller()",
 | 
					      "detailed_name": "void caller()",
 | 
				
			||||||
      "definition_spelling": "5:6-5:12",
 | 
					      "definition_spelling": "5:6-5:12",
 | 
				
			||||||
      "definition_extent": "5:1-7:2",
 | 
					      "definition_extent": "5:1-7:2",
 | 
				
			||||||
      "callees": ["0@6:14-6:20"]
 | 
					      "callees": ["0@6:14-6:20"]
 | 
				
			||||||
 | 
				
			|||||||
@ -18,14 +18,14 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@F@called#",
 | 
					      "usr": "c:@F@called#",
 | 
				
			||||||
      "short_name": "called",
 | 
					      "short_name": "called",
 | 
				
			||||||
      "qualified_name": "void called()",
 | 
					      "detailed_name": "void called()",
 | 
				
			||||||
      "declarations": ["1:6-1:12"],
 | 
					      "declarations": ["1:6-1:12"],
 | 
				
			||||||
      "callers": ["1@5:3-5:9"]
 | 
					      "callers": ["1@5:3-5:9"]
 | 
				
			||||||
    }, {
 | 
					    }, {
 | 
				
			||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@FT@>1#Tcaller#v#",
 | 
					      "usr": "c:@FT@>1#Tcaller#v#",
 | 
				
			||||||
      "short_name": "caller",
 | 
					      "short_name": "caller",
 | 
				
			||||||
      "qualified_name": "void caller()",
 | 
					      "detailed_name": "void caller()",
 | 
				
			||||||
      "definition_spelling": "4:6-4:12",
 | 
					      "definition_spelling": "4:6-4:12",
 | 
				
			||||||
      "definition_extent": "4:1-6:2",
 | 
					      "definition_extent": "4:1-6:2",
 | 
				
			||||||
      "callers": ["2@9:3-9:9"],
 | 
					      "callers": ["2@9:3-9:9"],
 | 
				
			||||||
@ -34,7 +34,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 2,
 | 
					      "id": 2,
 | 
				
			||||||
      "usr": "c:@F@foo#",
 | 
					      "usr": "c:@F@foo#",
 | 
				
			||||||
      "short_name": "foo",
 | 
					      "short_name": "foo",
 | 
				
			||||||
      "qualified_name": "void foo()",
 | 
					      "detailed_name": "void foo()",
 | 
				
			||||||
      "definition_spelling": "8:6-8:9",
 | 
					      "definition_spelling": "8:6-8:9",
 | 
				
			||||||
      "definition_extent": "8:1-10:2",
 | 
					      "definition_extent": "8:1-10:2",
 | 
				
			||||||
      "callees": ["1@9:3-9:9"]
 | 
					      "callees": ["1@9:3-9:9"]
 | 
				
			||||||
 | 
				
			|||||||
@ -15,7 +15,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@S@Wrapper",
 | 
					      "usr": "c:@S@Wrapper",
 | 
				
			||||||
      "short_name": "Wrapper",
 | 
					      "short_name": "Wrapper",
 | 
				
			||||||
      "qualified_name": "Wrapper",
 | 
					      "detailed_name": "Wrapper",
 | 
				
			||||||
      "definition_spelling": "1:8-1:15",
 | 
					      "definition_spelling": "1:8-1:15",
 | 
				
			||||||
      "definition_extent": "1:1-3:2",
 | 
					      "definition_extent": "1:1-3:2",
 | 
				
			||||||
      "funcs": [0],
 | 
					      "funcs": [0],
 | 
				
			||||||
@ -25,7 +25,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@S@Wrapper@F@Wrapper#I#",
 | 
					      "usr": "c:@S@Wrapper@F@Wrapper#I#",
 | 
				
			||||||
      "short_name": "Wrapper",
 | 
					      "short_name": "Wrapper",
 | 
				
			||||||
      "qualified_name": "void Wrapper::Wrapper(int)",
 | 
					      "detailed_name": "void Wrapper::Wrapper(int)",
 | 
				
			||||||
      "declarations": ["2:3-2:10"],
 | 
					      "declarations": ["2:3-2:10"],
 | 
				
			||||||
      "declaring_type": 0,
 | 
					      "declaring_type": 0,
 | 
				
			||||||
      "callers": ["2@8:10-8:16"]
 | 
					      "callers": ["2@8:10-8:16"]
 | 
				
			||||||
@ -33,7 +33,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@F@called#",
 | 
					      "usr": "c:@F@called#",
 | 
				
			||||||
      "short_name": "called",
 | 
					      "short_name": "called",
 | 
				
			||||||
      "qualified_name": "int called()",
 | 
					      "detailed_name": "int called()",
 | 
				
			||||||
      "definition_spelling": "5:5-5:11",
 | 
					      "definition_spelling": "5:5-5:11",
 | 
				
			||||||
      "definition_extent": "5:1-5:27",
 | 
					      "definition_extent": "5:1-5:27",
 | 
				
			||||||
      "callers": ["2@8:10-8:16"]
 | 
					      "callers": ["2@8:10-8:16"]
 | 
				
			||||||
@ -41,7 +41,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 2,
 | 
					      "id": 2,
 | 
				
			||||||
      "usr": "c:@F@caller#",
 | 
					      "usr": "c:@F@caller#",
 | 
				
			||||||
      "short_name": "caller",
 | 
					      "short_name": "caller",
 | 
				
			||||||
      "qualified_name": "Wrapper caller()",
 | 
					      "detailed_name": "Wrapper caller()",
 | 
				
			||||||
      "definition_spelling": "7:9-7:15",
 | 
					      "definition_spelling": "7:9-7:15",
 | 
				
			||||||
      "definition_extent": "7:1-9:2",
 | 
					      "definition_extent": "7:1-9:2",
 | 
				
			||||||
      "callees": ["0@8:10-8:16", "1@8:10-8:16"]
 | 
					      "callees": ["0@8:10-8:16", "1@8:10-8:16"]
 | 
				
			||||||
 | 
				
			|||||||
@ -14,7 +14,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@F@consume#*v#",
 | 
					      "usr": "c:@F@consume#*v#",
 | 
				
			||||||
      "short_name": "consume",
 | 
					      "short_name": "consume",
 | 
				
			||||||
      "qualified_name": "void consume(void *)",
 | 
					      "detailed_name": "void consume(void *)",
 | 
				
			||||||
      "definition_spelling": "1:6-1:13",
 | 
					      "definition_spelling": "1:6-1:13",
 | 
				
			||||||
      "definition_extent": "1:1-1:23",
 | 
					      "definition_extent": "1:1-1:23",
 | 
				
			||||||
      "callers": ["2@7:3-7:10"]
 | 
					      "callers": ["2@7:3-7:10"]
 | 
				
			||||||
@ -22,7 +22,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@F@used#",
 | 
					      "usr": "c:@F@used#",
 | 
				
			||||||
      "short_name": "used",
 | 
					      "short_name": "used",
 | 
				
			||||||
      "qualified_name": "void used()",
 | 
					      "detailed_name": "void used()",
 | 
				
			||||||
      "definition_spelling": "3:6-3:10",
 | 
					      "definition_spelling": "3:6-3:10",
 | 
				
			||||||
      "definition_extent": "3:1-3:15",
 | 
					      "definition_extent": "3:1-3:15",
 | 
				
			||||||
      "callers": ["2@6:13-6:17", "2@7:12-7:16"]
 | 
					      "callers": ["2@6:13-6:17", "2@7:12-7:16"]
 | 
				
			||||||
@ -30,7 +30,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 2,
 | 
					      "id": 2,
 | 
				
			||||||
      "usr": "c:@F@user#",
 | 
					      "usr": "c:@F@user#",
 | 
				
			||||||
      "short_name": "user",
 | 
					      "short_name": "user",
 | 
				
			||||||
      "qualified_name": "void user()",
 | 
					      "detailed_name": "void user()",
 | 
				
			||||||
      "definition_spelling": "5:6-5:10",
 | 
					      "definition_spelling": "5:6-5:10",
 | 
				
			||||||
      "definition_extent": "5:1-8:2",
 | 
					      "definition_extent": "5:1-8:2",
 | 
				
			||||||
      "callees": ["1@6:13-6:17", "0@7:3-7:10", "1@7:12-7:16"]
 | 
					      "callees": ["1@6:13-6:17", "0@7:3-7:10", "1@7:12-7:16"]
 | 
				
			||||||
@ -39,7 +39,7 @@ OUTPUT:
 | 
				
			|||||||
      "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": "void (*)() x",
 | 
					      "detailed_name": "void (*)() x",
 | 
				
			||||||
      "definition_spelling": "6:8-6:9",
 | 
					      "definition_spelling": "6:8-6:9",
 | 
				
			||||||
      "definition_extent": "6:3-6:17",
 | 
					      "definition_extent": "6:3-6:17",
 | 
				
			||||||
      "uses": ["6:8-6:9"]
 | 
					      "uses": ["6:8-6:9"]
 | 
				
			||||||
 | 
				
			|||||||
@ -14,7 +14,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@S@Foo",
 | 
					      "usr": "c:@S@Foo",
 | 
				
			||||||
      "short_name": "Foo",
 | 
					      "short_name": "Foo",
 | 
				
			||||||
      "qualified_name": "Foo",
 | 
					      "detailed_name": "Foo",
 | 
				
			||||||
      "definition_spelling": "1:8-1:11",
 | 
					      "definition_spelling": "1:8-1:11",
 | 
				
			||||||
      "definition_extent": "1:1-3:2",
 | 
					      "definition_extent": "1:1-3:2",
 | 
				
			||||||
      "funcs": [0],
 | 
					      "funcs": [0],
 | 
				
			||||||
@ -24,7 +24,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@S@Foo@F@Used#",
 | 
					      "usr": "c:@S@Foo@F@Used#",
 | 
				
			||||||
      "short_name": "Used",
 | 
					      "short_name": "Used",
 | 
				
			||||||
      "qualified_name": "void Foo::Used()",
 | 
					      "detailed_name": "void Foo::Used()",
 | 
				
			||||||
      "declarations": ["2:8-2:12"],
 | 
					      "declarations": ["2:8-2:12"],
 | 
				
			||||||
      "declaring_type": 0,
 | 
					      "declaring_type": 0,
 | 
				
			||||||
      "callers": ["1@6:18-6:22"]
 | 
					      "callers": ["1@6:18-6:22"]
 | 
				
			||||||
@ -32,7 +32,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@F@user#",
 | 
					      "usr": "c:@F@user#",
 | 
				
			||||||
      "short_name": "user",
 | 
					      "short_name": "user",
 | 
				
			||||||
      "qualified_name": "void user()",
 | 
					      "detailed_name": "void user()",
 | 
				
			||||||
      "definition_spelling": "5:6-5:10",
 | 
					      "definition_spelling": "5:6-5:10",
 | 
				
			||||||
      "definition_extent": "5:1-7:2",
 | 
					      "definition_extent": "5:1-7:2",
 | 
				
			||||||
      "callees": ["0@6:18-6:22"]
 | 
					      "callees": ["0@6:18-6:22"]
 | 
				
			||||||
@ -41,7 +41,7 @@ OUTPUT:
 | 
				
			|||||||
      "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": "void (Foo::*)() x",
 | 
					      "detailed_name": "void (Foo::*)() x",
 | 
				
			||||||
      "definition_spelling": "6:8-6:9",
 | 
					      "definition_spelling": "6:8-6:9",
 | 
				
			||||||
      "definition_extent": "6:3-6:22",
 | 
					      "definition_extent": "6:3-6:22",
 | 
				
			||||||
      "uses": ["6:8-6:9"]
 | 
					      "uses": ["6:8-6:9"]
 | 
				
			||||||
 | 
				
			|||||||
@ -10,7 +10,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@F@called#",
 | 
					      "usr": "c:@F@called#",
 | 
				
			||||||
      "short_name": "called",
 | 
					      "short_name": "called",
 | 
				
			||||||
      "qualified_name": "void called()",
 | 
					      "detailed_name": "void called()",
 | 
				
			||||||
      "definition_spelling": "1:6-1:12",
 | 
					      "definition_spelling": "1:6-1:12",
 | 
				
			||||||
      "definition_extent": "1:1-1:17",
 | 
					      "definition_extent": "1:1-1:17",
 | 
				
			||||||
      "callers": ["1@3:3-3:9"]
 | 
					      "callers": ["1@3:3-3:9"]
 | 
				
			||||||
@ -18,7 +18,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@F@caller#",
 | 
					      "usr": "c:@F@caller#",
 | 
				
			||||||
      "short_name": "caller",
 | 
					      "short_name": "caller",
 | 
				
			||||||
      "qualified_name": "void caller()",
 | 
					      "detailed_name": "void caller()",
 | 
				
			||||||
      "definition_spelling": "2:6-2:12",
 | 
					      "definition_spelling": "2:6-2:12",
 | 
				
			||||||
      "definition_extent": "2:1-4:2",
 | 
					      "definition_extent": "2:1-4:2",
 | 
				
			||||||
      "callees": ["0@3:3-3:9"]
 | 
					      "callees": ["0@3:3-3:9"]
 | 
				
			||||||
 | 
				
			|||||||
@ -14,7 +14,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@S@Foo",
 | 
					      "usr": "c:@S@Foo",
 | 
				
			||||||
      "short_name": "Foo",
 | 
					      "short_name": "Foo",
 | 
				
			||||||
      "qualified_name": "Foo",
 | 
					      "detailed_name": "Foo",
 | 
				
			||||||
      "definition_spelling": "1:8-1:11",
 | 
					      "definition_spelling": "1:8-1:11",
 | 
				
			||||||
      "definition_extent": "1:1-3:2",
 | 
					      "definition_extent": "1:1-3:2",
 | 
				
			||||||
      "funcs": [0],
 | 
					      "funcs": [0],
 | 
				
			||||||
@ -25,7 +25,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@S@Foo@F@Used#",
 | 
					      "usr": "c:@S@Foo@F@Used#",
 | 
				
			||||||
      "short_name": "Used",
 | 
					      "short_name": "Used",
 | 
				
			||||||
      "qualified_name": "void Foo::Used()",
 | 
					      "detailed_name": "void Foo::Used()",
 | 
				
			||||||
      "declarations": ["2:8-2:12"],
 | 
					      "declarations": ["2:8-2:12"],
 | 
				
			||||||
      "declaring_type": 0,
 | 
					      "declaring_type": 0,
 | 
				
			||||||
      "callers": ["1@7:6-7:10"]
 | 
					      "callers": ["1@7:6-7:10"]
 | 
				
			||||||
@ -33,7 +33,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@F@user#",
 | 
					      "usr": "c:@F@user#",
 | 
				
			||||||
      "short_name": "user",
 | 
					      "short_name": "user",
 | 
				
			||||||
      "qualified_name": "void user()",
 | 
					      "detailed_name": "void user()",
 | 
				
			||||||
      "definition_spelling": "5:6-5:10",
 | 
					      "definition_spelling": "5:6-5:10",
 | 
				
			||||||
      "definition_extent": "5:1-8:2",
 | 
					      "definition_extent": "5:1-8:2",
 | 
				
			||||||
      "callees": ["0@7:6-7:10"]
 | 
					      "callees": ["0@7:6-7:10"]
 | 
				
			||||||
@ -42,7 +42,7 @@ OUTPUT:
 | 
				
			|||||||
      "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": "Foo * f",
 | 
					      "detailed_name": "Foo * f",
 | 
				
			||||||
      "definition_spelling": "6:8-6:9",
 | 
					      "definition_spelling": "6:8-6:9",
 | 
				
			||||||
      "definition_extent": "6:3-6:19",
 | 
					      "definition_extent": "6:3-6:19",
 | 
				
			||||||
      "variable_type": 0,
 | 
					      "variable_type": 0,
 | 
				
			||||||
 | 
				
			|||||||
@ -13,7 +13,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@S@Foo",
 | 
					      "usr": "c:@S@Foo",
 | 
				
			||||||
      "short_name": "Foo",
 | 
					      "short_name": "Foo",
 | 
				
			||||||
      "qualified_name": "Foo",
 | 
					      "detailed_name": "Foo",
 | 
				
			||||||
      "definition_spelling": "5:7-5:10",
 | 
					      "definition_spelling": "5:7-5:10",
 | 
				
			||||||
      "definition_extent": "5:1-7:2",
 | 
					      "definition_extent": "5:1-7:2",
 | 
				
			||||||
      "vars": [0],
 | 
					      "vars": [0],
 | 
				
			||||||
@ -23,7 +23,7 @@ OUTPUT:
 | 
				
			|||||||
      "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": "int helper()",
 | 
					      "detailed_name": "int helper()",
 | 
				
			||||||
      "definition_spelling": "1:12-1:18",
 | 
					      "definition_spelling": "1:12-1:18",
 | 
				
			||||||
      "definition_extent": "1:1-3:2",
 | 
					      "definition_extent": "1:1-3:2",
 | 
				
			||||||
      "callers": ["-1@6:11-6:17"]
 | 
					      "callers": ["-1@6:11-6:17"]
 | 
				
			||||||
@ -32,7 +32,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@S@Foo@FI@x",
 | 
					      "usr": "c:@S@Foo@FI@x",
 | 
				
			||||||
      "short_name": "x",
 | 
					      "short_name": "x",
 | 
				
			||||||
      "qualified_name": "int Foo::x",
 | 
					      "detailed_name": "int Foo::x",
 | 
				
			||||||
      "definition_spelling": "6:7-6:8",
 | 
					      "definition_spelling": "6:7-6:8",
 | 
				
			||||||
      "definition_extent": "6:3-6:19",
 | 
					      "definition_extent": "6:3-6:19",
 | 
				
			||||||
      "declaring_type": 0,
 | 
					      "declaring_type": 0,
 | 
				
			||||||
 | 
				
			|||||||
@ -10,14 +10,14 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@F@foo#",
 | 
					      "usr": "c:@F@foo#",
 | 
				
			||||||
      "short_name": "foo",
 | 
					      "short_name": "foo",
 | 
				
			||||||
      "qualified_name": "void foo()",
 | 
					      "detailed_name": "void foo()",
 | 
				
			||||||
      "declarations": ["1:6-1:9"],
 | 
					      "declarations": ["1:6-1:9"],
 | 
				
			||||||
      "callers": ["1@4:3-4:6"]
 | 
					      "callers": ["1@4:3-4:6"]
 | 
				
			||||||
    }, {
 | 
					    }, {
 | 
				
			||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@F@usage#",
 | 
					      "usr": "c:@F@usage#",
 | 
				
			||||||
      "short_name": "usage",
 | 
					      "short_name": "usage",
 | 
				
			||||||
      "qualified_name": "void usage()",
 | 
					      "detailed_name": "void usage()",
 | 
				
			||||||
      "definition_spelling": "3:6-3:11",
 | 
					      "definition_spelling": "3:6-3:11",
 | 
				
			||||||
      "definition_extent": "3:1-5:2",
 | 
					      "definition_extent": "3:1-5:2",
 | 
				
			||||||
      "callees": ["0@4:3-4:6"]
 | 
					      "callees": ["0@4:3-4:6"]
 | 
				
			||||||
 | 
				
			|||||||
@ -13,7 +13,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@S@Foo",
 | 
					      "usr": "c:@S@Foo",
 | 
				
			||||||
      "short_name": "Foo",
 | 
					      "short_name": "Foo",
 | 
				
			||||||
      "qualified_name": "Foo",
 | 
					      "detailed_name": "Foo",
 | 
				
			||||||
      "definition_spelling": "1:8-1:11",
 | 
					      "definition_spelling": "1:8-1:11",
 | 
				
			||||||
      "definition_extent": "1:1-3:2",
 | 
					      "definition_extent": "1:1-3:2",
 | 
				
			||||||
      "funcs": [0],
 | 
					      "funcs": [0],
 | 
				
			||||||
@ -24,7 +24,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@S@Foo@F@foo#",
 | 
					      "usr": "c:@S@Foo@F@foo#",
 | 
				
			||||||
      "short_name": "foo",
 | 
					      "short_name": "foo",
 | 
				
			||||||
      "qualified_name": "void Foo::foo()",
 | 
					      "detailed_name": "void Foo::foo()",
 | 
				
			||||||
      "declarations": ["2:8-2:11"],
 | 
					      "declarations": ["2:8-2:11"],
 | 
				
			||||||
      "declaring_type": 0,
 | 
					      "declaring_type": 0,
 | 
				
			||||||
      "callers": ["1@7:6-7:9"]
 | 
					      "callers": ["1@7:6-7:9"]
 | 
				
			||||||
@ -32,7 +32,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@F@usage#",
 | 
					      "usr": "c:@F@usage#",
 | 
				
			||||||
      "short_name": "usage",
 | 
					      "short_name": "usage",
 | 
				
			||||||
      "qualified_name": "void usage()",
 | 
					      "detailed_name": "void usage()",
 | 
				
			||||||
      "definition_spelling": "5:6-5:11",
 | 
					      "definition_spelling": "5:6-5:11",
 | 
				
			||||||
      "definition_extent": "5:1-8:2",
 | 
					      "definition_extent": "5:1-8:2",
 | 
				
			||||||
      "callees": ["0@7:6-7:9"]
 | 
					      "callees": ["0@7:6-7:9"]
 | 
				
			||||||
@ -41,7 +41,7 @@ OUTPUT:
 | 
				
			|||||||
      "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": "Foo * f",
 | 
					      "detailed_name": "Foo * f",
 | 
				
			||||||
      "definition_spelling": "6:8-6:9",
 | 
					      "definition_spelling": "6:8-6:9",
 | 
				
			||||||
      "definition_extent": "6:3-6:19",
 | 
					      "definition_extent": "6:3-6:19",
 | 
				
			||||||
      "variable_type": 0,
 | 
					      "variable_type": 0,
 | 
				
			||||||
 | 
				
			|||||||
@ -13,14 +13,14 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@FT@>1#Taccept#t0.0#v#",
 | 
					      "usr": "c:@FT@>1#Taccept#t0.0#v#",
 | 
				
			||||||
      "short_name": "accept",
 | 
					      "short_name": "accept",
 | 
				
			||||||
      "qualified_name": "void accept(T)",
 | 
					      "detailed_name": "void accept(T)",
 | 
				
			||||||
      "declarations": ["2:6-2:12"],
 | 
					      "declarations": ["2:6-2:12"],
 | 
				
			||||||
      "callers": ["1@5:3-5:9", "1@6:3-6:9"]
 | 
					      "callers": ["1@5:3-5:9", "1@6:3-6:9"]
 | 
				
			||||||
    }, {
 | 
					    }, {
 | 
				
			||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@F@foo#",
 | 
					      "usr": "c:@F@foo#",
 | 
				
			||||||
      "short_name": "foo",
 | 
					      "short_name": "foo",
 | 
				
			||||||
      "qualified_name": "void foo()",
 | 
					      "detailed_name": "void foo()",
 | 
				
			||||||
      "definition_spelling": "4:6-4:9",
 | 
					      "definition_spelling": "4:6-4:9",
 | 
				
			||||||
      "definition_extent": "4:1-7:2",
 | 
					      "definition_extent": "4:1-7:2",
 | 
				
			||||||
      "callees": ["0@5:3-5:9", "0@6:3-6:9"]
 | 
					      "callees": ["0@5:3-5:9", "0@6:3-6:9"]
 | 
				
			||||||
 | 
				
			|||||||
@ -22,7 +22,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@S@S",
 | 
					      "usr": "c:@S@S",
 | 
				
			||||||
      "short_name": "S",
 | 
					      "short_name": "S",
 | 
				
			||||||
      "qualified_name": "S",
 | 
					      "detailed_name": "S",
 | 
				
			||||||
      "definition_spelling": "4:8-4:9",
 | 
					      "definition_spelling": "4:8-4:9",
 | 
				
			||||||
      "definition_extent": "4:1-4:12",
 | 
					      "definition_extent": "4:1-4:12",
 | 
				
			||||||
      "uses": ["*4:8-4:9", "*7:19-7:20", "*9:12-9:13", "*10:14-10:15"]
 | 
					      "uses": ["*4:8-4:9", "*7:19-7:20", "*9:12-9:13", "*10:14-10:15"]
 | 
				
			||||||
@ -31,7 +31,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@F@return_type#",
 | 
					      "usr": "c:@F@return_type#",
 | 
				
			||||||
      "short_name": "return_type",
 | 
					      "short_name": "return_type",
 | 
				
			||||||
      "qualified_name": "unique_ptr<S> *return_type()",
 | 
					      "detailed_name": "unique_ptr<S> *return_type()",
 | 
				
			||||||
      "definition_spelling": "9:16-9:27",
 | 
					      "definition_spelling": "9:16-9:27",
 | 
				
			||||||
      "definition_extent": "9:1-12:2"
 | 
					      "definition_extent": "9:1-12:2"
 | 
				
			||||||
    }],
 | 
					    }],
 | 
				
			||||||
@ -39,7 +39,7 @@ OUTPUT:
 | 
				
			|||||||
      "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": "unique_ptr<bool> f0",
 | 
					      "detailed_name": "unique_ptr<bool> f0",
 | 
				
			||||||
      "definition_spelling": "6:25-6:27",
 | 
					      "definition_spelling": "6:25-6:27",
 | 
				
			||||||
      "definition_extent": "6:1-6:27",
 | 
					      "definition_extent": "6:1-6:27",
 | 
				
			||||||
      "variable_type": 0,
 | 
					      "variable_type": 0,
 | 
				
			||||||
@ -48,7 +48,7 @@ OUTPUT:
 | 
				
			|||||||
      "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": "unique_ptr<S> f1",
 | 
					      "detailed_name": "unique_ptr<S> f1",
 | 
				
			||||||
      "definition_spelling": "7:22-7:24",
 | 
					      "definition_spelling": "7:22-7:24",
 | 
				
			||||||
      "definition_extent": "7:1-7:24",
 | 
					      "definition_extent": "7:1-7:24",
 | 
				
			||||||
      "variable_type": 0,
 | 
					      "variable_type": 0,
 | 
				
			||||||
@ -57,7 +57,7 @@ OUTPUT:
 | 
				
			|||||||
      "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": "unique_ptr<S> * local",
 | 
					      "detailed_name": "unique_ptr<S> * local",
 | 
				
			||||||
      "definition_spelling": "10:18-10:23",
 | 
					      "definition_spelling": "10:18-10:23",
 | 
				
			||||||
      "definition_extent": "10:3-10:23",
 | 
					      "definition_extent": "10:3-10:23",
 | 
				
			||||||
      "variable_type": 0,
 | 
					      "variable_type": 0,
 | 
				
			||||||
 | 
				
			|||||||
@ -98,7 +98,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 3,
 | 
					      "id": 3,
 | 
				
			||||||
      "usr": "c:@S@Foo",
 | 
					      "usr": "c:@S@Foo",
 | 
				
			||||||
      "short_name": "Foo",
 | 
					      "short_name": "Foo",
 | 
				
			||||||
      "qualified_name": "Foo",
 | 
					      "detailed_name": "Foo",
 | 
				
			||||||
      "definition_spelling": "64:7-64:10",
 | 
					      "definition_spelling": "64:7-64:10",
 | 
				
			||||||
      "definition_extent": "64:1-66:2",
 | 
					      "definition_extent": "64:1-66:2",
 | 
				
			||||||
      "funcs": [3],
 | 
					      "funcs": [3],
 | 
				
			||||||
@ -108,28 +108,28 @@ OUTPUT:
 | 
				
			|||||||
      "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": "unique_ptr<unique_ptr<S1, S2>, S2> *as_return_type(unique_ptr<S1, S2> *)",
 | 
					      "detailed_name": "unique_ptr<unique_ptr<S1, S2>, S2> *as_return_type(unique_ptr<S1, S2> *)",
 | 
				
			||||||
      "definition_spelling": "33:37-33:51",
 | 
					      "definition_spelling": "33:37-33:51",
 | 
				
			||||||
      "definition_extent": "33:1-33:92"
 | 
					      "definition_extent": "33:1-33:92"
 | 
				
			||||||
    }, {
 | 
					    }, {
 | 
				
			||||||
      "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": "void no_return_type(int)",
 | 
					      "detailed_name": "void no_return_type(int)",
 | 
				
			||||||
      "definition_spelling": "40:6-40:20",
 | 
					      "definition_spelling": "40:6-40:20",
 | 
				
			||||||
      "definition_extent": "40:1-40:28"
 | 
					      "definition_extent": "40:1-40:28"
 | 
				
			||||||
    }, {
 | 
					    }, {
 | 
				
			||||||
      "id": 2,
 | 
					      "id": 2,
 | 
				
			||||||
      "usr": "c:@F@empty#",
 | 
					      "usr": "c:@F@empty#",
 | 
				
			||||||
      "short_name": "empty",
 | 
					      "short_name": "empty",
 | 
				
			||||||
      "qualified_name": "void empty()",
 | 
					      "detailed_name": "void empty()",
 | 
				
			||||||
      "definition_spelling": "53:6-53:11",
 | 
					      "definition_spelling": "53:6-53:11",
 | 
				
			||||||
      "definition_extent": "53:1-55:2"
 | 
					      "definition_extent": "53:1-55:2"
 | 
				
			||||||
    }, {
 | 
					    }, {
 | 
				
			||||||
      "id": 3,
 | 
					      "id": 3,
 | 
				
			||||||
      "usr": "c:@S@Foo@F@foo#",
 | 
					      "usr": "c:@S@Foo@F@foo#",
 | 
				
			||||||
      "short_name": "foo",
 | 
					      "short_name": "foo",
 | 
				
			||||||
      "qualified_name": "unique_ptr<S1, S2> *Foo::foo()",
 | 
					      "detailed_name": "unique_ptr<S1, S2> *Foo::foo()",
 | 
				
			||||||
      "declarations": ["65:23-65:26"],
 | 
					      "declarations": ["65:23-65:26"],
 | 
				
			||||||
      "definition_spelling": "79:26-79:29",
 | 
					      "definition_spelling": "79:26-79:29",
 | 
				
			||||||
      "definition_extent": "79:1-79:51",
 | 
					      "definition_extent": "79:1-79:51",
 | 
				
			||||||
@ -139,7 +139,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@f",
 | 
					      "usr": "c:@f",
 | 
				
			||||||
      "short_name": "f",
 | 
					      "short_name": "f",
 | 
				
			||||||
      "qualified_name": "unique_ptr<unique_ptr<S1, S2>, S2> f",
 | 
					      "detailed_name": "unique_ptr<unique_ptr<S1, S2>, S2> f",
 | 
				
			||||||
      "declaration": "15:43-15:44",
 | 
					      "declaration": "15:43-15:44",
 | 
				
			||||||
      "variable_type": 0,
 | 
					      "variable_type": 0,
 | 
				
			||||||
      "uses": ["15:43-15:44"]
 | 
					      "uses": ["15:43-15:44"]
 | 
				
			||||||
@ -147,7 +147,7 @@ OUTPUT:
 | 
				
			|||||||
      "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": "unique_ptr<unique_ptr<S1, S2>, S2> * local",
 | 
					      "detailed_name": "unique_ptr<unique_ptr<S1, S2>, S2> * local",
 | 
				
			||||||
      "definition_spelling": "54:39-54:44",
 | 
					      "definition_spelling": "54:39-54:44",
 | 
				
			||||||
      "definition_extent": "54:3-54:44",
 | 
					      "definition_extent": "54:3-54:44",
 | 
				
			||||||
      "variable_type": 0,
 | 
					      "variable_type": 0,
 | 
				
			||||||
 | 
				
			|||||||
@ -12,7 +12,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "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",
 | 
					      "detailed_name": "unique_ptr",
 | 
				
			||||||
      "definition_spelling": "2:7-2:17",
 | 
					      "definition_spelling": "2:7-2:17",
 | 
				
			||||||
      "definition_extent": "2:1-2:20",
 | 
					      "definition_extent": "2:1-2:20",
 | 
				
			||||||
      "instantiations": [0],
 | 
					      "instantiations": [0],
 | 
				
			||||||
@ -26,7 +26,7 @@ OUTPUT:
 | 
				
			|||||||
      "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": "unique_ptr<S> foo",
 | 
					      "detailed_name": "unique_ptr<S> foo",
 | 
				
			||||||
      "definition_spelling": "6:22-6:25",
 | 
					      "definition_spelling": "6:22-6:25",
 | 
				
			||||||
      "definition_extent": "6:1-6:25",
 | 
					      "definition_extent": "6:1-6:25",
 | 
				
			||||||
      "variable_type": 0,
 | 
					      "variable_type": 0,
 | 
				
			||||||
 | 
				
			|||||||
@ -8,7 +8,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@S@T",
 | 
					      "usr": "c:@S@T",
 | 
				
			||||||
      "short_name": "T",
 | 
					      "short_name": "T",
 | 
				
			||||||
      "qualified_name": "T",
 | 
					      "detailed_name": "T",
 | 
				
			||||||
      "definition_spelling": "1:8-1:9",
 | 
					      "definition_spelling": "1:8-1:9",
 | 
				
			||||||
      "definition_extent": "1:1-1:12",
 | 
					      "definition_extent": "1:1-1:12",
 | 
				
			||||||
      "instantiations": [0],
 | 
					      "instantiations": [0],
 | 
				
			||||||
@ -18,7 +18,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@t",
 | 
					      "usr": "c:@t",
 | 
				
			||||||
      "short_name": "t",
 | 
					      "short_name": "t",
 | 
				
			||||||
      "qualified_name": "T t",
 | 
					      "detailed_name": "T t",
 | 
				
			||||||
      "declaration": "3:10-3:11",
 | 
					      "declaration": "3:10-3:11",
 | 
				
			||||||
      "variable_type": 0,
 | 
					      "variable_type": 0,
 | 
				
			||||||
      "uses": ["3:10-3:11"]
 | 
					      "uses": ["3:10-3:11"]
 | 
				
			||||||
 | 
				
			|||||||
@ -18,7 +18,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@S@ImplementedType",
 | 
					      "usr": "c:@S@ImplementedType",
 | 
				
			||||||
      "short_name": "ImplementedType",
 | 
					      "short_name": "ImplementedType",
 | 
				
			||||||
      "qualified_name": "ImplementedType",
 | 
					      "detailed_name": "ImplementedType",
 | 
				
			||||||
      "definition_spelling": "2:8-2:23",
 | 
					      "definition_spelling": "2:8-2:23",
 | 
				
			||||||
      "definition_extent": "2:1-2:26",
 | 
					      "definition_extent": "2:1-2:26",
 | 
				
			||||||
      "instantiations": [1],
 | 
					      "instantiations": [1],
 | 
				
			||||||
@ -27,7 +27,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 2,
 | 
					      "id": 2,
 | 
				
			||||||
      "usr": "c:@S@Foo",
 | 
					      "usr": "c:@S@Foo",
 | 
				
			||||||
      "short_name": "Foo",
 | 
					      "short_name": "Foo",
 | 
				
			||||||
      "qualified_name": "Foo",
 | 
					      "detailed_name": "Foo",
 | 
				
			||||||
      "definition_spelling": "4:8-4:11",
 | 
					      "definition_spelling": "4:8-4:11",
 | 
				
			||||||
      "definition_extent": "4:1-7:2",
 | 
					      "definition_extent": "4:1-7:2",
 | 
				
			||||||
      "vars": [0, 1],
 | 
					      "vars": [0, 1],
 | 
				
			||||||
@ -37,7 +37,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@S@Foo@FI@a",
 | 
					      "usr": "c:@S@Foo@FI@a",
 | 
				
			||||||
      "short_name": "a",
 | 
					      "short_name": "a",
 | 
				
			||||||
      "qualified_name": "ForwardType * Foo::a",
 | 
					      "detailed_name": "ForwardType * Foo::a",
 | 
				
			||||||
      "definition_spelling": "5:16-5:17",
 | 
					      "definition_spelling": "5:16-5:17",
 | 
				
			||||||
      "definition_extent": "5:3-5:17",
 | 
					      "definition_extent": "5:3-5:17",
 | 
				
			||||||
      "variable_type": 0,
 | 
					      "variable_type": 0,
 | 
				
			||||||
@ -47,7 +47,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@S@Foo@FI@b",
 | 
					      "usr": "c:@S@Foo@FI@b",
 | 
				
			||||||
      "short_name": "b",
 | 
					      "short_name": "b",
 | 
				
			||||||
      "qualified_name": "ImplementedType Foo::b",
 | 
					      "detailed_name": "ImplementedType Foo::b",
 | 
				
			||||||
      "definition_spelling": "6:19-6:20",
 | 
					      "definition_spelling": "6:19-6:20",
 | 
				
			||||||
      "definition_extent": "6:3-6:20",
 | 
					      "definition_extent": "6:3-6:20",
 | 
				
			||||||
      "variable_type": 1,
 | 
					      "variable_type": 1,
 | 
				
			||||||
 | 
				
			|||||||
@ -18,7 +18,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@S@ImplementedType",
 | 
					      "usr": "c:@S@ImplementedType",
 | 
				
			||||||
      "short_name": "ImplementedType",
 | 
					      "short_name": "ImplementedType",
 | 
				
			||||||
      "qualified_name": "ImplementedType",
 | 
					      "detailed_name": "ImplementedType",
 | 
				
			||||||
      "definition_spelling": "2:8-2:23",
 | 
					      "definition_spelling": "2:8-2:23",
 | 
				
			||||||
      "definition_extent": "2:1-2:26",
 | 
					      "definition_extent": "2:1-2:26",
 | 
				
			||||||
      "instantiations": [1],
 | 
					      "instantiations": [1],
 | 
				
			||||||
@ -28,7 +28,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@F@Foo#",
 | 
					      "usr": "c:@F@Foo#",
 | 
				
			||||||
      "short_name": "Foo",
 | 
					      "short_name": "Foo",
 | 
				
			||||||
      "qualified_name": "void Foo()",
 | 
					      "detailed_name": "void Foo()",
 | 
				
			||||||
      "definition_spelling": "4:6-4:9",
 | 
					      "definition_spelling": "4:6-4:9",
 | 
				
			||||||
      "definition_extent": "4:1-7:2"
 | 
					      "definition_extent": "4:1-7:2"
 | 
				
			||||||
    }],
 | 
					    }],
 | 
				
			||||||
@ -36,7 +36,7 @@ OUTPUT:
 | 
				
			|||||||
      "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": "ForwardType * a",
 | 
					      "detailed_name": "ForwardType * a",
 | 
				
			||||||
      "definition_spelling": "5:16-5:17",
 | 
					      "definition_spelling": "5:16-5:17",
 | 
				
			||||||
      "definition_extent": "5:3-5:17",
 | 
					      "definition_extent": "5:3-5:17",
 | 
				
			||||||
      "variable_type": 0,
 | 
					      "variable_type": 0,
 | 
				
			||||||
@ -45,7 +45,7 @@ OUTPUT:
 | 
				
			|||||||
      "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": "ImplementedType b",
 | 
					      "detailed_name": "ImplementedType b",
 | 
				
			||||||
      "definition_spelling": "6:19-6:20",
 | 
					      "definition_spelling": "6:19-6:20",
 | 
				
			||||||
      "definition_extent": "6:3-6:20",
 | 
					      "definition_extent": "6:3-6:20",
 | 
				
			||||||
      "variable_type": 1,
 | 
					      "variable_type": 1,
 | 
				
			||||||
 | 
				
			|||||||
@ -15,7 +15,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@S@ImplementedType",
 | 
					      "usr": "c:@S@ImplementedType",
 | 
				
			||||||
      "short_name": "ImplementedType",
 | 
					      "short_name": "ImplementedType",
 | 
				
			||||||
      "qualified_name": "ImplementedType",
 | 
					      "detailed_name": "ImplementedType",
 | 
				
			||||||
      "definition_spelling": "2:8-2:23",
 | 
					      "definition_spelling": "2:8-2:23",
 | 
				
			||||||
      "definition_extent": "2:1-2:26",
 | 
					      "definition_extent": "2:1-2:26",
 | 
				
			||||||
      "instantiations": [1],
 | 
					      "instantiations": [1],
 | 
				
			||||||
@ -25,7 +25,7 @@ OUTPUT:
 | 
				
			|||||||
      "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": "void foo(ForwardType *, ImplementedType)",
 | 
					      "detailed_name": "void foo(ForwardType *, ImplementedType)",
 | 
				
			||||||
      "definition_spelling": "4:6-4:9",
 | 
					      "definition_spelling": "4:6-4:9",
 | 
				
			||||||
      "definition_extent": "4:1-4:47"
 | 
					      "definition_extent": "4:1-4:47"
 | 
				
			||||||
    }],
 | 
					    }],
 | 
				
			||||||
@ -33,7 +33,7 @@ OUTPUT:
 | 
				
			|||||||
      "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": "ForwardType * f",
 | 
					      "detailed_name": "ForwardType * f",
 | 
				
			||||||
      "definition_spelling": "4:23-4:24",
 | 
					      "definition_spelling": "4:23-4:24",
 | 
				
			||||||
      "definition_extent": "4:10-4:24",
 | 
					      "definition_extent": "4:10-4:24",
 | 
				
			||||||
      "variable_type": 0,
 | 
					      "variable_type": 0,
 | 
				
			||||||
@ -42,7 +42,7 @@ OUTPUT:
 | 
				
			|||||||
      "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": "ImplementedType a",
 | 
					      "detailed_name": "ImplementedType a",
 | 
				
			||||||
      "definition_spelling": "4:42-4:43",
 | 
					      "definition_spelling": "4:42-4:43",
 | 
				
			||||||
      "definition_extent": "4:26-4:43",
 | 
					      "definition_extent": "4:26-4:43",
 | 
				
			||||||
      "variable_type": 1,
 | 
					      "variable_type": 1,
 | 
				
			||||||
 | 
				
			|||||||
@ -21,7 +21,7 @@ OUTPUT:
 | 
				
			|||||||
      "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": "void foo(Foo *, Foo *)",
 | 
					      "detailed_name": "void foo(Foo *, Foo *)",
 | 
				
			||||||
      "declarations": ["3:6-3:9"],
 | 
					      "declarations": ["3:6-3:9"],
 | 
				
			||||||
      "definition_spelling": "4:6-4:9",
 | 
					      "definition_spelling": "4:6-4:9",
 | 
				
			||||||
      "definition_extent": "4:1-4:26"
 | 
					      "definition_extent": "4:1-4:26"
 | 
				
			||||||
@ -30,7 +30,7 @@ OUTPUT:
 | 
				
			|||||||
      "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": "Foo * f",
 | 
					      "detailed_name": "Foo * f",
 | 
				
			||||||
      "definition_spelling": "4:15-4:16",
 | 
					      "definition_spelling": "4:15-4:16",
 | 
				
			||||||
      "definition_extent": "4:10-4:16",
 | 
					      "definition_extent": "4:10-4:16",
 | 
				
			||||||
      "variable_type": 0,
 | 
					      "variable_type": 0,
 | 
				
			||||||
 | 
				
			|||||||
@ -12,7 +12,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@F@foo#*$@S@ForwardType#",
 | 
					      "usr": "c:@F@foo#*$@S@ForwardType#",
 | 
				
			||||||
      "short_name": "foo",
 | 
					      "short_name": "foo",
 | 
				
			||||||
      "qualified_name": "void foo(ForwardType *)",
 | 
					      "detailed_name": "void foo(ForwardType *)",
 | 
				
			||||||
      "definition_spelling": "2:6-2:9",
 | 
					      "definition_spelling": "2:6-2:9",
 | 
				
			||||||
      "definition_extent": "2:1-2:26"
 | 
					      "definition_extent": "2:1-2:26"
 | 
				
			||||||
    }]
 | 
					    }]
 | 
				
			||||||
 | 
				
			|||||||
@ -13,7 +13,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@S@Type",
 | 
					      "usr": "c:@S@Type",
 | 
				
			||||||
      "short_name": "Type",
 | 
					      "short_name": "Type",
 | 
				
			||||||
      "qualified_name": "Type",
 | 
					      "detailed_name": "Type",
 | 
				
			||||||
      "definition_spelling": "1:8-1:12",
 | 
					      "definition_spelling": "1:8-1:12",
 | 
				
			||||||
      "definition_extent": "1:1-1:15",
 | 
					      "definition_extent": "1:1-1:15",
 | 
				
			||||||
      "instantiations": [0, 1, 2, 3, 4, 5],
 | 
					      "instantiations": [0, 1, 2, 3, 4, 5],
 | 
				
			||||||
@ -23,7 +23,7 @@ OUTPUT:
 | 
				
			|||||||
      "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": "void foo(Type &, const Type &)",
 | 
					      "detailed_name": "void foo(Type &, const Type &)",
 | 
				
			||||||
      "definition_spelling": "3:6-3:9",
 | 
					      "definition_spelling": "3:6-3:9",
 | 
				
			||||||
      "definition_extent": "3:1-8:2"
 | 
					      "definition_extent": "3:1-8:2"
 | 
				
			||||||
    }],
 | 
					    }],
 | 
				
			||||||
@ -31,7 +31,7 @@ OUTPUT:
 | 
				
			|||||||
      "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": "Type & a0",
 | 
					      "detailed_name": "Type & a0",
 | 
				
			||||||
      "definition_spelling": "3:16-3:18",
 | 
					      "definition_spelling": "3:16-3:18",
 | 
				
			||||||
      "definition_extent": "3:10-3:18",
 | 
					      "definition_extent": "3:10-3:18",
 | 
				
			||||||
      "variable_type": 0,
 | 
					      "variable_type": 0,
 | 
				
			||||||
@ -40,7 +40,7 @@ OUTPUT:
 | 
				
			|||||||
      "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": "const Type & a1",
 | 
					      "detailed_name": "const Type & a1",
 | 
				
			||||||
      "definition_spelling": "3:32-3:34",
 | 
					      "definition_spelling": "3:32-3:34",
 | 
				
			||||||
      "definition_extent": "3:20-3:34",
 | 
					      "definition_extent": "3:20-3:34",
 | 
				
			||||||
      "variable_type": 0,
 | 
					      "variable_type": 0,
 | 
				
			||||||
@ -49,7 +49,7 @@ OUTPUT:
 | 
				
			|||||||
      "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": "Type a2",
 | 
					      "detailed_name": "Type a2",
 | 
				
			||||||
      "definition_spelling": "4:8-4:10",
 | 
					      "definition_spelling": "4:8-4:10",
 | 
				
			||||||
      "definition_extent": "4:3-4:10",
 | 
					      "definition_extent": "4:3-4:10",
 | 
				
			||||||
      "variable_type": 0,
 | 
					      "variable_type": 0,
 | 
				
			||||||
@ -58,7 +58,7 @@ OUTPUT:
 | 
				
			|||||||
      "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": "Type * a3",
 | 
					      "detailed_name": "Type * a3",
 | 
				
			||||||
      "definition_spelling": "5:9-5:11",
 | 
					      "definition_spelling": "5:9-5:11",
 | 
				
			||||||
      "definition_extent": "5:3-5:11",
 | 
					      "definition_extent": "5:3-5:11",
 | 
				
			||||||
      "variable_type": 0,
 | 
					      "variable_type": 0,
 | 
				
			||||||
@ -67,7 +67,7 @@ OUTPUT:
 | 
				
			|||||||
      "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": "const Type * a4",
 | 
					      "detailed_name": "const Type * a4",
 | 
				
			||||||
      "definition_spelling": "6:15-6:17",
 | 
					      "definition_spelling": "6:15-6:17",
 | 
				
			||||||
      "definition_extent": "6:3-6:17",
 | 
					      "definition_extent": "6:3-6:17",
 | 
				
			||||||
      "variable_type": 0,
 | 
					      "variable_type": 0,
 | 
				
			||||||
@ -76,7 +76,7 @@ OUTPUT:
 | 
				
			|||||||
      "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": "const Type * a5",
 | 
					      "detailed_name": "const Type * a5",
 | 
				
			||||||
      "definition_spelling": "7:21-7:23",
 | 
					      "definition_spelling": "7:21-7:23",
 | 
				
			||||||
      "definition_extent": "7:3-7:23",
 | 
					      "definition_extent": "7:3-7:23",
 | 
				
			||||||
      "variable_type": 0,
 | 
					      "variable_type": 0,
 | 
				
			||||||
 | 
				
			|||||||
@ -13,7 +13,7 @@ OUTPUT:
 | 
				
			|||||||
      "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": "Type t",
 | 
					      "detailed_name": "Type t",
 | 
				
			||||||
      "definition_spelling": "2:13-2:14",
 | 
					      "definition_spelling": "2:13-2:14",
 | 
				
			||||||
      "definition_extent": "2:1-2:14",
 | 
					      "definition_extent": "2:1-2:14",
 | 
				
			||||||
      "variable_type": 0,
 | 
					      "variable_type": 0,
 | 
				
			||||||
 | 
				
			|||||||
@ -28,7 +28,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@S@Foo",
 | 
					      "usr": "c:@S@Foo",
 | 
				
			||||||
      "short_name": "Foo",
 | 
					      "short_name": "Foo",
 | 
				
			||||||
      "qualified_name": "Foo",
 | 
					      "detailed_name": "Foo",
 | 
				
			||||||
      "definition_spelling": "7:7-7:10",
 | 
					      "definition_spelling": "7:7-7:10",
 | 
				
			||||||
      "definition_extent": "7:1-10:2",
 | 
					      "definition_extent": "7:1-10:2",
 | 
				
			||||||
      "funcs": [1, 2],
 | 
					      "funcs": [1, 2],
 | 
				
			||||||
@ -38,7 +38,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@F@foo#",
 | 
					      "usr": "c:@F@foo#",
 | 
				
			||||||
      "short_name": "foo",
 | 
					      "short_name": "foo",
 | 
				
			||||||
      "qualified_name": "Type *foo()",
 | 
					      "detailed_name": "Type *foo()",
 | 
				
			||||||
      "declarations": ["3:7-3:10", "4:7-4:10"],
 | 
					      "declarations": ["3:7-3:10", "4:7-4:10"],
 | 
				
			||||||
      "definition_spelling": "5:7-5:10",
 | 
					      "definition_spelling": "5:7-5:10",
 | 
				
			||||||
      "definition_extent": "5:1-5:15"
 | 
					      "definition_extent": "5:1-5:15"
 | 
				
			||||||
@ -46,7 +46,7 @@ OUTPUT:
 | 
				
			|||||||
      "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": "Type *Foo::Get(int)",
 | 
					      "detailed_name": "Type *Foo::Get(int)",
 | 
				
			||||||
      "declarations": ["8:9-8:12"],
 | 
					      "declarations": ["8:9-8:12"],
 | 
				
			||||||
      "definition_spelling": "12:12-12:15",
 | 
					      "definition_spelling": "12:12-12:15",
 | 
				
			||||||
      "definition_extent": "12:1-12:23",
 | 
					      "definition_extent": "12:1-12:23",
 | 
				
			||||||
@ -55,7 +55,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 2,
 | 
					      "id": 2,
 | 
				
			||||||
      "usr": "c:@S@Foo@F@Empty#",
 | 
					      "usr": "c:@S@Foo@F@Empty#",
 | 
				
			||||||
      "short_name": "Empty",
 | 
					      "short_name": "Empty",
 | 
				
			||||||
      "qualified_name": "void Foo::Empty()",
 | 
					      "detailed_name": "void Foo::Empty()",
 | 
				
			||||||
      "declarations": ["9:8-9:13"],
 | 
					      "declarations": ["9:8-9:13"],
 | 
				
			||||||
      "definition_spelling": "13:11-13:16",
 | 
					      "definition_spelling": "13:11-13:16",
 | 
				
			||||||
      "definition_extent": "13:1-13:21",
 | 
					      "definition_extent": "13:1-13:21",
 | 
				
			||||||
@ -64,13 +64,13 @@ OUTPUT:
 | 
				
			|||||||
      "id": 3,
 | 
					      "id": 3,
 | 
				
			||||||
      "usr": "c:@F@external#",
 | 
					      "usr": "c:@F@external#",
 | 
				
			||||||
      "short_name": "external",
 | 
					      "short_name": "external",
 | 
				
			||||||
      "qualified_name": "const Type &external()",
 | 
					      "detailed_name": "const Type &external()",
 | 
				
			||||||
      "declarations": ["15:20-15:28"]
 | 
					      "declarations": ["15:20-15:28"]
 | 
				
			||||||
    }, {
 | 
					    }, {
 | 
				
			||||||
      "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": "Type *bar()",
 | 
					      "detailed_name": "Type *bar()",
 | 
				
			||||||
      "declarations": ["17:14-17:17"],
 | 
					      "declarations": ["17:14-17:17"],
 | 
				
			||||||
      "definition_spelling": "18:14-18:17",
 | 
					      "definition_spelling": "18:14-18:17",
 | 
				
			||||||
      "definition_extent": "18:1-18:22"
 | 
					      "definition_extent": "18:1-18:22"
 | 
				
			||||||
 | 
				
			|||||||
@ -20,7 +20,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@Foo1",
 | 
					      "usr": "c:@Foo1",
 | 
				
			||||||
      "short_name": "Foo1",
 | 
					      "short_name": "Foo1",
 | 
				
			||||||
      "qualified_name": "Foo1",
 | 
					      "detailed_name": "Foo1",
 | 
				
			||||||
      "definition_spelling": "2:7-2:11",
 | 
					      "definition_spelling": "2:7-2:11",
 | 
				
			||||||
      "definition_extent": "2:1-2:18",
 | 
					      "definition_extent": "2:1-2:18",
 | 
				
			||||||
      "alias_of": 0,
 | 
					      "alias_of": 0,
 | 
				
			||||||
@ -29,7 +29,7 @@ OUTPUT:
 | 
				
			|||||||
      "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",
 | 
					      "detailed_name": "Foo2",
 | 
				
			||||||
      "definition_spelling": "3:13-3:17",
 | 
					      "definition_spelling": "3:13-3:17",
 | 
				
			||||||
      "definition_extent": "3:1-3:17",
 | 
					      "definition_extent": "3:1-3:17",
 | 
				
			||||||
      "alias_of": 0,
 | 
					      "alias_of": 0,
 | 
				
			||||||
@ -38,7 +38,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 3,
 | 
					      "id": 3,
 | 
				
			||||||
      "usr": "c:@Foo3",
 | 
					      "usr": "c:@Foo3",
 | 
				
			||||||
      "short_name": "Foo3",
 | 
					      "short_name": "Foo3",
 | 
				
			||||||
      "qualified_name": "Foo3",
 | 
					      "detailed_name": "Foo3",
 | 
				
			||||||
      "definition_spelling": "4:7-4:11",
 | 
					      "definition_spelling": "4:7-4:11",
 | 
				
			||||||
      "definition_extent": "4:1-4:18",
 | 
					      "definition_extent": "4:1-4:18",
 | 
				
			||||||
      "alias_of": 1,
 | 
					      "alias_of": 1,
 | 
				
			||||||
@ -47,7 +47,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 4,
 | 
					      "id": 4,
 | 
				
			||||||
      "usr": "c:@Foo4",
 | 
					      "usr": "c:@Foo4",
 | 
				
			||||||
      "short_name": "Foo4",
 | 
					      "short_name": "Foo4",
 | 
				
			||||||
      "qualified_name": "Foo4",
 | 
					      "detailed_name": "Foo4",
 | 
				
			||||||
      "definition_spelling": "5:7-5:11",
 | 
					      "definition_spelling": "5:7-5:11",
 | 
				
			||||||
      "definition_extent": "5:1-5:17",
 | 
					      "definition_extent": "5:1-5:17",
 | 
				
			||||||
      "uses": ["*5:7-5:11"]
 | 
					      "uses": ["*5:7-5:11"]
 | 
				
			||||||
@ -56,28 +56,28 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@F@accept#*$@S@Foo#",
 | 
					      "usr": "c:@F@accept#*$@S@Foo#",
 | 
				
			||||||
      "short_name": "accept",
 | 
					      "short_name": "accept",
 | 
				
			||||||
      "qualified_name": "void accept(Foo *)",
 | 
					      "detailed_name": "void accept(Foo *)",
 | 
				
			||||||
      "definition_spelling": "7:6-7:12",
 | 
					      "definition_spelling": "7:6-7:12",
 | 
				
			||||||
      "definition_extent": "7:1-7:21"
 | 
					      "definition_extent": "7:1-7:21"
 | 
				
			||||||
    }, {
 | 
					    }, {
 | 
				
			||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@F@accept1#**$@S@Foo#",
 | 
					      "usr": "c:@F@accept1#**$@S@Foo#",
 | 
				
			||||||
      "short_name": "accept1",
 | 
					      "short_name": "accept1",
 | 
				
			||||||
      "qualified_name": "void accept1(Foo1 *)",
 | 
					      "detailed_name": "void accept1(Foo1 *)",
 | 
				
			||||||
      "definition_spelling": "8:6-8:13",
 | 
					      "definition_spelling": "8:6-8:13",
 | 
				
			||||||
      "definition_extent": "8:1-8:23"
 | 
					      "definition_extent": "8:1-8:23"
 | 
				
			||||||
    }, {
 | 
					    }, {
 | 
				
			||||||
      "id": 2,
 | 
					      "id": 2,
 | 
				
			||||||
      "usr": "c:@F@accept2#*$@S@Foo#",
 | 
					      "usr": "c:@F@accept2#*$@S@Foo#",
 | 
				
			||||||
      "short_name": "accept2",
 | 
					      "short_name": "accept2",
 | 
				
			||||||
      "qualified_name": "void accept2(Foo2 *)",
 | 
					      "detailed_name": "void accept2(Foo2 *)",
 | 
				
			||||||
      "definition_spelling": "9:6-9:13",
 | 
					      "definition_spelling": "9:6-9:13",
 | 
				
			||||||
      "definition_extent": "9:1-9:23"
 | 
					      "definition_extent": "9:1-9:23"
 | 
				
			||||||
    }, {
 | 
					    }, {
 | 
				
			||||||
      "id": 3,
 | 
					      "id": 3,
 | 
				
			||||||
      "usr": "c:@F@accept3#**$@S@Foo#",
 | 
					      "usr": "c:@F@accept3#**$@S@Foo#",
 | 
				
			||||||
      "short_name": "accept3",
 | 
					      "short_name": "accept3",
 | 
				
			||||||
      "qualified_name": "void accept3(Foo3 *)",
 | 
					      "detailed_name": "void accept3(Foo3 *)",
 | 
				
			||||||
      "definition_spelling": "10:6-10:13",
 | 
					      "definition_spelling": "10:6-10:13",
 | 
				
			||||||
      "definition_extent": "10:1-10:23"
 | 
					      "definition_extent": "10:1-10:23"
 | 
				
			||||||
    }]
 | 
					    }]
 | 
				
			||||||
 | 
				
			|||||||
@ -15,7 +15,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@Foo1",
 | 
					      "usr": "c:@Foo1",
 | 
				
			||||||
      "short_name": "Foo1",
 | 
					      "short_name": "Foo1",
 | 
				
			||||||
      "qualified_name": "Foo1",
 | 
					      "detailed_name": "Foo1",
 | 
				
			||||||
      "definition_spelling": "4:7-4:11",
 | 
					      "definition_spelling": "4:7-4:11",
 | 
				
			||||||
      "definition_extent": "4:1-4:22",
 | 
					      "definition_extent": "4:1-4:22",
 | 
				
			||||||
      "alias_of": 0,
 | 
					      "alias_of": 0,
 | 
				
			||||||
@ -24,7 +24,7 @@ OUTPUT:
 | 
				
			|||||||
      "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",
 | 
					      "detailed_name": "Foo2",
 | 
				
			||||||
      "definition_spelling": "5:19-5:23",
 | 
					      "definition_spelling": "5:19-5:23",
 | 
				
			||||||
      "definition_extent": "5:1-5:23",
 | 
					      "definition_extent": "5:1-5:23",
 | 
				
			||||||
      "alias_of": 0,
 | 
					      "alias_of": 0,
 | 
				
			||||||
 | 
				
			|||||||
@ -16,7 +16,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@S@Foo",
 | 
					      "usr": "c:@S@Foo",
 | 
				
			||||||
      "short_name": "Foo",
 | 
					      "short_name": "Foo",
 | 
				
			||||||
      "qualified_name": "Foo",
 | 
					      "detailed_name": "Foo",
 | 
				
			||||||
      "definition_spelling": "1:7-1:10",
 | 
					      "definition_spelling": "1:7-1:10",
 | 
				
			||||||
      "definition_extent": "1:1-3:2",
 | 
					      "definition_extent": "1:1-3:2",
 | 
				
			||||||
      "funcs": [0],
 | 
					      "funcs": [0],
 | 
				
			||||||
@ -27,7 +27,7 @@ OUTPUT:
 | 
				
			|||||||
      "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 *Foo::make()",
 | 
					      "detailed_name": "Foo *Foo::make()",
 | 
				
			||||||
      "declarations": ["2:8-2:12"],
 | 
					      "declarations": ["2:8-2:12"],
 | 
				
			||||||
      "definition_spelling": "5:11-5:15",
 | 
					      "definition_spelling": "5:11-5:15",
 | 
				
			||||||
      "definition_extent": "5:1-8:2",
 | 
					      "definition_extent": "5:1-8:2",
 | 
				
			||||||
@ -37,7 +37,7 @@ OUTPUT:
 | 
				
			|||||||
      "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": "Foo f",
 | 
					      "detailed_name": "Foo f",
 | 
				
			||||||
      "definition_spelling": "6:7-6:8",
 | 
					      "definition_spelling": "6:7-6:8",
 | 
				
			||||||
      "definition_extent": "6:3-6:8",
 | 
					      "definition_extent": "6:3-6:8",
 | 
				
			||||||
      "variable_type": 0,
 | 
					      "variable_type": 0,
 | 
				
			||||||
@ -46,7 +46,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@foo",
 | 
					      "usr": "c:@foo",
 | 
				
			||||||
      "short_name": "foo",
 | 
					      "short_name": "foo",
 | 
				
			||||||
      "qualified_name": "Foo foo",
 | 
					      "detailed_name": "Foo foo",
 | 
				
			||||||
      "declaration": "10:12-10:15",
 | 
					      "declaration": "10:12-10:15",
 | 
				
			||||||
      "variable_type": 0,
 | 
					      "variable_type": 0,
 | 
				
			||||||
      "uses": ["10:12-10:15"]
 | 
					      "uses": ["10:12-10:15"]
 | 
				
			||||||
 | 
				
			|||||||
@ -21,7 +21,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@S@Foo",
 | 
					      "usr": "c:@S@Foo",
 | 
				
			||||||
      "short_name": "Foo",
 | 
					      "short_name": "Foo",
 | 
				
			||||||
      "qualified_name": "Foo",
 | 
					      "detailed_name": "Foo",
 | 
				
			||||||
      "definition_spelling": "5:8-5:11",
 | 
					      "definition_spelling": "5:8-5:11",
 | 
				
			||||||
      "definition_extent": "5:1-8:2",
 | 
					      "definition_extent": "5:1-8:2",
 | 
				
			||||||
      "vars": [1, 0],
 | 
					      "vars": [1, 0],
 | 
				
			||||||
@ -31,21 +31,21 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@F@called#I#",
 | 
					      "usr": "c:@F@called#I#",
 | 
				
			||||||
      "short_name": "called",
 | 
					      "short_name": "called",
 | 
				
			||||||
      "qualified_name": "void called(int)",
 | 
					      "detailed_name": "void called(int)",
 | 
				
			||||||
      "declarations": ["1:6-1:12"],
 | 
					      "declarations": ["1:6-1:12"],
 | 
				
			||||||
      "callers": ["2@14:3-14:9"]
 | 
					      "callers": ["2@14:3-14:9"]
 | 
				
			||||||
    }, {
 | 
					    }, {
 | 
				
			||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@F@gen#",
 | 
					      "usr": "c:@F@gen#",
 | 
				
			||||||
      "short_name": "gen",
 | 
					      "short_name": "gen",
 | 
				
			||||||
      "qualified_name": "int gen()",
 | 
					      "detailed_name": "int gen()",
 | 
				
			||||||
      "declarations": ["3:5-3:8"],
 | 
					      "declarations": ["3:5-3:8"],
 | 
				
			||||||
      "callers": ["2@14:14-14:17"]
 | 
					      "callers": ["2@14:14-14:17"]
 | 
				
			||||||
    }, {
 | 
					    }, {
 | 
				
			||||||
      "id": 2,
 | 
					      "id": 2,
 | 
				
			||||||
      "usr": "c:@F@foo#",
 | 
					      "usr": "c:@F@foo#",
 | 
				
			||||||
      "short_name": "foo",
 | 
					      "short_name": "foo",
 | 
				
			||||||
      "qualified_name": "void foo()",
 | 
					      "detailed_name": "void foo()",
 | 
				
			||||||
      "definition_spelling": "12:6-12:9",
 | 
					      "definition_spelling": "12:6-12:9",
 | 
				
			||||||
      "definition_extent": "12:1-15:2",
 | 
					      "definition_extent": "12:1-15:2",
 | 
				
			||||||
      "callees": ["0@14:3-14:9", "1@14:14-14:17"]
 | 
					      "callees": ["0@14:3-14:9", "1@14:14-14:17"]
 | 
				
			||||||
@ -54,7 +54,7 @@ OUTPUT:
 | 
				
			|||||||
      "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": "int Foo::static_var",
 | 
					      "detailed_name": "int Foo::static_var",
 | 
				
			||||||
      "declaration": "6:14-6:24",
 | 
					      "declaration": "6:14-6:24",
 | 
				
			||||||
      "definition_spelling": "10:10-10:20",
 | 
					      "definition_spelling": "10:10-10:20",
 | 
				
			||||||
      "definition_extent": "10:1-10:24",
 | 
					      "definition_extent": "10:1-10:24",
 | 
				
			||||||
@ -64,7 +64,7 @@ OUTPUT:
 | 
				
			|||||||
      "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": "int Foo::field_var",
 | 
					      "detailed_name": "int Foo::field_var",
 | 
				
			||||||
      "definition_spelling": "7:7-7:16",
 | 
					      "definition_spelling": "7:7-7:16",
 | 
				
			||||||
      "definition_extent": "7:3-7:16",
 | 
					      "definition_extent": "7:3-7:16",
 | 
				
			||||||
      "declaring_type": 0,
 | 
					      "declaring_type": 0,
 | 
				
			||||||
@ -73,7 +73,7 @@ OUTPUT:
 | 
				
			|||||||
      "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": "int a",
 | 
					      "detailed_name": "int a",
 | 
				
			||||||
      "definition_spelling": "13:7-13:8",
 | 
					      "definition_spelling": "13:7-13:8",
 | 
				
			||||||
      "definition_extent": "13:3-13:12",
 | 
					      "definition_extent": "13:3-13:12",
 | 
				
			||||||
      "uses": ["13:7-13:8", "14:10-14:11"]
 | 
					      "uses": ["13:7-13:8", "14:10-14:11"]
 | 
				
			||||||
 | 
				
			|||||||
@ -13,14 +13,14 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@F@called#I#",
 | 
					      "usr": "c:@F@called#I#",
 | 
				
			||||||
      "short_name": "called",
 | 
					      "short_name": "called",
 | 
				
			||||||
      "qualified_name": "void called(int)",
 | 
					      "detailed_name": "void called(int)",
 | 
				
			||||||
      "declarations": ["1:6-1:12"],
 | 
					      "declarations": ["1:6-1:12"],
 | 
				
			||||||
      "callers": ["2@6:3-6:9"]
 | 
					      "callers": ["2@6:3-6:9"]
 | 
				
			||||||
    }, {
 | 
					    }, {
 | 
				
			||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@F@gen#",
 | 
					      "usr": "c:@F@gen#",
 | 
				
			||||||
      "short_name": "gen",
 | 
					      "short_name": "gen",
 | 
				
			||||||
      "qualified_name": "int gen()",
 | 
					      "detailed_name": "int gen()",
 | 
				
			||||||
      "definition_spelling": "3:5-3:8",
 | 
					      "definition_spelling": "3:5-3:8",
 | 
				
			||||||
      "definition_extent": "3:1-3:24",
 | 
					      "definition_extent": "3:1-3:24",
 | 
				
			||||||
      "callers": ["2@6:10-6:13", "2@6:18-6:21"]
 | 
					      "callers": ["2@6:10-6:13", "2@6:18-6:21"]
 | 
				
			||||||
@ -28,7 +28,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 2,
 | 
					      "id": 2,
 | 
				
			||||||
      "usr": "c:@F@foo#",
 | 
					      "usr": "c:@F@foo#",
 | 
				
			||||||
      "short_name": "foo",
 | 
					      "short_name": "foo",
 | 
				
			||||||
      "qualified_name": "void foo()",
 | 
					      "detailed_name": "void foo()",
 | 
				
			||||||
      "definition_spelling": "5:6-5:9",
 | 
					      "definition_spelling": "5:6-5:9",
 | 
				
			||||||
      "definition_extent": "5:1-7:2",
 | 
					      "definition_extent": "5:1-7:2",
 | 
				
			||||||
      "callees": ["0@6:3-6:9", "1@6:10-6:13", "1@6:18-6:21"]
 | 
					      "callees": ["0@6:3-6:9", "1@6:10-6:13", "1@6:18-6:21"]
 | 
				
			||||||
 | 
				
			|||||||
@ -14,7 +14,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@F@called#",
 | 
					      "usr": "c:@F@called#",
 | 
				
			||||||
      "short_name": "called",
 | 
					      "short_name": "called",
 | 
				
			||||||
      "qualified_name": "void called()",
 | 
					      "detailed_name": "void called()",
 | 
				
			||||||
      "definition_spelling": "1:6-1:12",
 | 
					      "definition_spelling": "1:6-1:12",
 | 
				
			||||||
      "definition_extent": "1:1-1:17",
 | 
					      "definition_extent": "1:1-1:17",
 | 
				
			||||||
      "callers": ["1@4:13-4:19", "1@7:3-7:9"]
 | 
					      "callers": ["1@4:13-4:19", "1@7:3-7:9"]
 | 
				
			||||||
@ -22,7 +22,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@F@caller#",
 | 
					      "usr": "c:@F@caller#",
 | 
				
			||||||
      "short_name": "caller",
 | 
					      "short_name": "caller",
 | 
				
			||||||
      "qualified_name": "void caller()",
 | 
					      "detailed_name": "void caller()",
 | 
				
			||||||
      "definition_spelling": "3:6-3:12",
 | 
					      "definition_spelling": "3:6-3:12",
 | 
				
			||||||
      "definition_extent": "3:1-8:2",
 | 
					      "definition_extent": "3:1-8:2",
 | 
				
			||||||
      "callees": ["0@4:13-4:19", "0@7:3-7:9"]
 | 
					      "callees": ["0@4:13-4:19", "0@7:3-7:9"]
 | 
				
			||||||
@ -31,7 +31,7 @@ OUTPUT:
 | 
				
			|||||||
      "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": "void (*)() x",
 | 
					      "detailed_name": "void (*)() x",
 | 
				
			||||||
      "definition_spelling": "4:8-4:9",
 | 
					      "definition_spelling": "4:8-4:9",
 | 
				
			||||||
      "definition_extent": "4:3-4:19",
 | 
					      "definition_extent": "4:3-4:19",
 | 
				
			||||||
      "uses": ["4:8-4:9", "5:3-5:4"]
 | 
					      "uses": ["4:8-4:9", "5:3-5:4"]
 | 
				
			||||||
 | 
				
			|||||||
@ -24,7 +24,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@S@Foo",
 | 
					      "usr": "c:@S@Foo",
 | 
				
			||||||
      "short_name": "Foo",
 | 
					      "short_name": "Foo",
 | 
				
			||||||
      "qualified_name": "Foo",
 | 
					      "detailed_name": "Foo",
 | 
				
			||||||
      "definition_spelling": "1:7-1:10",
 | 
					      "definition_spelling": "1:7-1:10",
 | 
				
			||||||
      "definition_extent": "1:1-5:2",
 | 
					      "definition_extent": "1:1-5:2",
 | 
				
			||||||
      "vars": [0, 1],
 | 
					      "vars": [0, 1],
 | 
				
			||||||
@ -35,21 +35,21 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@F@accept#I#",
 | 
					      "usr": "c:@F@accept#I#",
 | 
				
			||||||
      "short_name": "accept",
 | 
					      "short_name": "accept",
 | 
				
			||||||
      "qualified_name": "void accept(int)",
 | 
					      "detailed_name": "void accept(int)",
 | 
				
			||||||
      "declarations": ["7:6-7:12"],
 | 
					      "declarations": ["7:6-7:12"],
 | 
				
			||||||
      "callers": ["2@14:3-14:9", "2@15:3-15:9", "2@17:3-17:9"]
 | 
					      "callers": ["2@14:3-14:9", "2@15:3-15:9", "2@17:3-17:9"]
 | 
				
			||||||
    }, {
 | 
					    }, {
 | 
				
			||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@F@accept#*I#",
 | 
					      "usr": "c:@F@accept#*I#",
 | 
				
			||||||
      "short_name": "accept",
 | 
					      "short_name": "accept",
 | 
				
			||||||
      "qualified_name": "void accept(int *)",
 | 
					      "detailed_name": "void accept(int *)",
 | 
				
			||||||
      "declarations": ["8:6-8:12"],
 | 
					      "declarations": ["8:6-8:12"],
 | 
				
			||||||
      "callers": ["2@16:3-16:9"]
 | 
					      "callers": ["2@16:3-16:9"]
 | 
				
			||||||
    }, {
 | 
					    }, {
 | 
				
			||||||
      "id": 2,
 | 
					      "id": 2,
 | 
				
			||||||
      "usr": "c:@F@foo#",
 | 
					      "usr": "c:@F@foo#",
 | 
				
			||||||
      "short_name": "foo",
 | 
					      "short_name": "foo",
 | 
				
			||||||
      "qualified_name": "void foo()",
 | 
					      "detailed_name": "void foo()",
 | 
				
			||||||
      "definition_spelling": "10:6-10:9",
 | 
					      "definition_spelling": "10:6-10:9",
 | 
				
			||||||
      "definition_extent": "10:1-18:2",
 | 
					      "definition_extent": "10:1-18:2",
 | 
				
			||||||
      "callees": ["0@14:3-14:9", "0@15:3-15:9", "1@16:3-16:9", "0@17:3-17:9"]
 | 
					      "callees": ["0@14:3-14:9", "0@15:3-15:9", "1@16:3-16:9", "0@17:3-17:9"]
 | 
				
			||||||
@ -58,7 +58,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@S@Foo@FI@x",
 | 
					      "usr": "c:@S@Foo@FI@x",
 | 
				
			||||||
      "short_name": "x",
 | 
					      "short_name": "x",
 | 
				
			||||||
      "qualified_name": "int Foo::x",
 | 
					      "detailed_name": "int Foo::x",
 | 
				
			||||||
      "definition_spelling": "3:7-3:8",
 | 
					      "definition_spelling": "3:7-3:8",
 | 
				
			||||||
      "definition_extent": "3:3-3:8",
 | 
					      "definition_extent": "3:3-3:8",
 | 
				
			||||||
      "declaring_type": 0,
 | 
					      "declaring_type": 0,
 | 
				
			||||||
@ -67,7 +67,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@S@Foo@FI@y",
 | 
					      "usr": "c:@S@Foo@FI@y",
 | 
				
			||||||
      "short_name": "y",
 | 
					      "short_name": "y",
 | 
				
			||||||
      "qualified_name": "int Foo::y",
 | 
					      "detailed_name": "int Foo::y",
 | 
				
			||||||
      "definition_spelling": "4:7-4:8",
 | 
					      "definition_spelling": "4:7-4:8",
 | 
				
			||||||
      "definition_extent": "4:3-4:8",
 | 
					      "definition_extent": "4:3-4:8",
 | 
				
			||||||
      "declaring_type": 0,
 | 
					      "declaring_type": 0,
 | 
				
			||||||
@ -76,7 +76,7 @@ OUTPUT:
 | 
				
			|||||||
      "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": "Foo f",
 | 
					      "detailed_name": "Foo f",
 | 
				
			||||||
      "definition_spelling": "11:7-11:8",
 | 
					      "definition_spelling": "11:7-11:8",
 | 
				
			||||||
      "definition_extent": "11:3-11:8",
 | 
					      "definition_extent": "11:3-11:8",
 | 
				
			||||||
      "variable_type": 0,
 | 
					      "variable_type": 0,
 | 
				
			||||||
 | 
				
			|||||||
@ -15,7 +15,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@S@Foo",
 | 
					      "usr": "c:@S@Foo",
 | 
				
			||||||
      "short_name": "Foo",
 | 
					      "short_name": "Foo",
 | 
				
			||||||
      "qualified_name": "Foo",
 | 
					      "detailed_name": "Foo",
 | 
				
			||||||
      "definition_spelling": "1:8-1:11",
 | 
					      "definition_spelling": "1:8-1:11",
 | 
				
			||||||
      "definition_extent": "1:1-3:2",
 | 
					      "definition_extent": "1:1-3:2",
 | 
				
			||||||
      "uses": ["*1:8-1:11", "8:10-8:13"]
 | 
					      "uses": ["*1:8-1:11", "8:10-8:13"]
 | 
				
			||||||
@ -24,14 +24,14 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@F@accept#I#",
 | 
					      "usr": "c:@F@accept#I#",
 | 
				
			||||||
      "short_name": "accept",
 | 
					      "short_name": "accept",
 | 
				
			||||||
      "qualified_name": "void accept(int)",
 | 
					      "detailed_name": "void accept(int)",
 | 
				
			||||||
      "declarations": ["5:6-5:12"],
 | 
					      "declarations": ["5:6-5:12"],
 | 
				
			||||||
      "callers": ["1@8:3-8:9"]
 | 
					      "callers": ["1@8:3-8:9"]
 | 
				
			||||||
    }, {
 | 
					    }, {
 | 
				
			||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@F@foo#",
 | 
					      "usr": "c:@F@foo#",
 | 
				
			||||||
      "short_name": "foo",
 | 
					      "short_name": "foo",
 | 
				
			||||||
      "qualified_name": "void foo()",
 | 
					      "detailed_name": "void foo()",
 | 
				
			||||||
      "definition_spelling": "7:6-7:9",
 | 
					      "definition_spelling": "7:6-7:9",
 | 
				
			||||||
      "definition_extent": "7:1-9:2",
 | 
					      "definition_extent": "7:1-9:2",
 | 
				
			||||||
      "callees": ["0@8:3-8:9"]
 | 
					      "callees": ["0@8:3-8:9"]
 | 
				
			||||||
@ -40,7 +40,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@S@Foo@x",
 | 
					      "usr": "c:@S@Foo@x",
 | 
				
			||||||
      "short_name": "x",
 | 
					      "short_name": "x",
 | 
				
			||||||
      "qualified_name": "int Foo::x",
 | 
					      "detailed_name": "int Foo::x",
 | 
				
			||||||
      "declaration": "2:14-2:15",
 | 
					      "declaration": "2:14-2:15",
 | 
				
			||||||
      "uses": ["2:14-2:15", "8:15-8:16"]
 | 
					      "uses": ["2:14-2:15", "8:15-8:16"]
 | 
				
			||||||
    }]
 | 
					    }]
 | 
				
			||||||
 | 
				
			|||||||
@ -14,7 +14,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@E@VarType",
 | 
					      "usr": "c:@E@VarType",
 | 
				
			||||||
      "short_name": "VarType",
 | 
					      "short_name": "VarType",
 | 
				
			||||||
      "qualified_name": "VarType",
 | 
					      "detailed_name": "VarType",
 | 
				
			||||||
      "definition_spelling": "1:6-1:13",
 | 
					      "definition_spelling": "1:6-1:13",
 | 
				
			||||||
      "definition_extent": "1:1-1:16",
 | 
					      "definition_extent": "1:1-1:16",
 | 
				
			||||||
      "instantiations": [0],
 | 
					      "instantiations": [0],
 | 
				
			||||||
@ -23,7 +23,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 1,
 | 
					      "id": 1,
 | 
				
			||||||
      "usr": "c:@S@Holder",
 | 
					      "usr": "c:@S@Holder",
 | 
				
			||||||
      "short_name": "Holder",
 | 
					      "short_name": "Holder",
 | 
				
			||||||
      "qualified_name": "Holder",
 | 
					      "detailed_name": "Holder",
 | 
				
			||||||
      "definition_spelling": "3:8-3:14",
 | 
					      "definition_spelling": "3:8-3:14",
 | 
				
			||||||
      "definition_extent": "3:1-5:2",
 | 
					      "definition_extent": "3:1-5:2",
 | 
				
			||||||
      "vars": [0],
 | 
					      "vars": [0],
 | 
				
			||||||
@ -33,7 +33,7 @@ OUTPUT:
 | 
				
			|||||||
      "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": "const VarType Holder::static_var",
 | 
					      "detailed_name": "const VarType Holder::static_var",
 | 
				
			||||||
      "declaration": "4:28-4:38",
 | 
					      "declaration": "4:28-4:38",
 | 
				
			||||||
      "definition_spelling": "7:23-7:33",
 | 
					      "definition_spelling": "7:23-7:33",
 | 
				
			||||||
      "definition_extent": "7:1-7:33",
 | 
					      "definition_extent": "7:1-7:33",
 | 
				
			||||||
 | 
				
			|||||||
@ -10,7 +10,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@F@foo#",
 | 
					      "usr": "c:@F@foo#",
 | 
				
			||||||
      "short_name": "foo",
 | 
					      "short_name": "foo",
 | 
				
			||||||
      "qualified_name": "void foo()",
 | 
					      "detailed_name": "void foo()",
 | 
				
			||||||
      "definition_spelling": "3:6-3:9",
 | 
					      "definition_spelling": "3:6-3:9",
 | 
				
			||||||
      "definition_extent": "3:1-5:2"
 | 
					      "definition_extent": "3:1-5:2"
 | 
				
			||||||
    }],
 | 
					    }],
 | 
				
			||||||
@ -18,7 +18,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@a",
 | 
					      "usr": "c:@a",
 | 
				
			||||||
      "short_name": "a",
 | 
					      "short_name": "a",
 | 
				
			||||||
      "qualified_name": "int a",
 | 
					      "detailed_name": "int a",
 | 
				
			||||||
      "declaration": "1:12-1:13",
 | 
					      "declaration": "1:12-1:13",
 | 
				
			||||||
      "uses": ["1:12-1:13", "4:3-4:4"]
 | 
					      "uses": ["1:12-1:13", "4:3-4:4"]
 | 
				
			||||||
    }]
 | 
					    }]
 | 
				
			||||||
 | 
				
			|||||||
@ -8,7 +8,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@F@foo#I#",
 | 
					      "usr": "c:@F@foo#I#",
 | 
				
			||||||
      "short_name": "foo",
 | 
					      "short_name": "foo",
 | 
				
			||||||
      "qualified_name": "void foo(int)",
 | 
					      "detailed_name": "void foo(int)",
 | 
				
			||||||
      "definition_spelling": "1:6-1:9",
 | 
					      "definition_spelling": "1:6-1:9",
 | 
				
			||||||
      "definition_extent": "1:1-3:2"
 | 
					      "definition_extent": "1:1-3:2"
 | 
				
			||||||
    }],
 | 
					    }],
 | 
				
			||||||
@ -16,7 +16,7 @@ OUTPUT:
 | 
				
			|||||||
      "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": "int a",
 | 
					      "detailed_name": "int a",
 | 
				
			||||||
      "definition_spelling": "1:14-1:15",
 | 
					      "definition_spelling": "1:14-1:15",
 | 
				
			||||||
      "definition_extent": "1:10-1:15",
 | 
					      "definition_extent": "1:10-1:15",
 | 
				
			||||||
      "uses": ["1:14-1:15", "2:3-2:4"]
 | 
					      "uses": ["1:14-1:15", "2:3-2:4"]
 | 
				
			||||||
 | 
				
			|||||||
@ -9,7 +9,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@F@foo#",
 | 
					      "usr": "c:@F@foo#",
 | 
				
			||||||
      "short_name": "foo",
 | 
					      "short_name": "foo",
 | 
				
			||||||
      "qualified_name": "void foo()",
 | 
					      "detailed_name": "void foo()",
 | 
				
			||||||
      "definition_spelling": "1:6-1:9",
 | 
					      "definition_spelling": "1:6-1:9",
 | 
				
			||||||
      "definition_extent": "1:1-4:2"
 | 
					      "definition_extent": "1:1-4:2"
 | 
				
			||||||
    }],
 | 
					    }],
 | 
				
			||||||
@ -17,7 +17,7 @@ OUTPUT:
 | 
				
			|||||||
      "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": "int x",
 | 
					      "detailed_name": "int x",
 | 
				
			||||||
      "definition_spelling": "2:7-2:8",
 | 
					      "definition_spelling": "2:7-2:8",
 | 
				
			||||||
      "definition_extent": "2:3-2:8",
 | 
					      "definition_extent": "2:3-2:8",
 | 
				
			||||||
      "uses": ["2:7-2:8", "3:3-3:4"]
 | 
					      "uses": ["2:7-2:8", "3:3-3:4"]
 | 
				
			||||||
 | 
				
			|||||||
@ -14,7 +14,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@F@foo#",
 | 
					      "usr": "c:@F@foo#",
 | 
				
			||||||
      "short_name": "foo",
 | 
					      "short_name": "foo",
 | 
				
			||||||
      "qualified_name": "void foo()",
 | 
					      "detailed_name": "void foo()",
 | 
				
			||||||
      "definition_spelling": "1:6-1:9",
 | 
					      "definition_spelling": "1:6-1:9",
 | 
				
			||||||
      "definition_extent": "1:1-9:2"
 | 
					      "definition_extent": "1:1-9:2"
 | 
				
			||||||
    }],
 | 
					    }],
 | 
				
			||||||
@ -22,7 +22,7 @@ OUTPUT:
 | 
				
			|||||||
      "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": "int a",
 | 
					      "detailed_name": "int a",
 | 
				
			||||||
      "definition_spelling": "2:7-2:8",
 | 
					      "definition_spelling": "2:7-2:8",
 | 
				
			||||||
      "definition_extent": "2:3-2:8",
 | 
					      "definition_extent": "2:3-2:8",
 | 
				
			||||||
      "uses": ["2:7-2:8", "3:3-3:4", "8:3-8:4"]
 | 
					      "uses": ["2:7-2:8", "3:3-3:4", "8:3-8:4"]
 | 
				
			||||||
@ -30,7 +30,7 @@ OUTPUT:
 | 
				
			|||||||
      "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": "int a",
 | 
					      "detailed_name": "int a",
 | 
				
			||||||
      "definition_spelling": "5:9-5:10",
 | 
					      "definition_spelling": "5:9-5:10",
 | 
				
			||||||
      "definition_extent": "5:5-5:10",
 | 
					      "definition_extent": "5:5-5:10",
 | 
				
			||||||
      "uses": ["5:9-5:10", "6:5-6:6"]
 | 
					      "uses": ["5:9-5:10", "6:5-6:6"]
 | 
				
			||||||
 | 
				
			|||||||
@ -14,7 +14,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@F@foo#I#",
 | 
					      "usr": "c:@F@foo#I#",
 | 
				
			||||||
      "short_name": "foo",
 | 
					      "short_name": "foo",
 | 
				
			||||||
      "qualified_name": "void foo(int)",
 | 
					      "detailed_name": "void foo(int)",
 | 
				
			||||||
      "definition_spelling": "1:6-1:9",
 | 
					      "definition_spelling": "1:6-1:9",
 | 
				
			||||||
      "definition_extent": "1:1-8:2"
 | 
					      "definition_extent": "1:1-8:2"
 | 
				
			||||||
    }],
 | 
					    }],
 | 
				
			||||||
@ -22,7 +22,7 @@ OUTPUT:
 | 
				
			|||||||
      "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": "int a",
 | 
					      "detailed_name": "int a",
 | 
				
			||||||
      "definition_spelling": "1:14-1:15",
 | 
					      "definition_spelling": "1:14-1:15",
 | 
				
			||||||
      "definition_extent": "1:10-1:15",
 | 
					      "definition_extent": "1:10-1:15",
 | 
				
			||||||
      "uses": ["1:14-1:15", "2:3-2:4", "7:3-7:4"]
 | 
					      "uses": ["1:14-1:15", "2:3-2:4", "7:3-7:4"]
 | 
				
			||||||
@ -30,7 +30,7 @@ OUTPUT:
 | 
				
			|||||||
      "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": "int a",
 | 
					      "detailed_name": "int a",
 | 
				
			||||||
      "definition_spelling": "4:9-4:10",
 | 
					      "definition_spelling": "4:9-4:10",
 | 
				
			||||||
      "definition_extent": "4:5-4:10",
 | 
					      "definition_extent": "4:5-4:10",
 | 
				
			||||||
      "uses": ["4:9-4:10", "5:5-5:6"]
 | 
					      "uses": ["4:9-4:10", "5:5-5:6"]
 | 
				
			||||||
 | 
				
			|||||||
@ -11,7 +11,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@F@foo#",
 | 
					      "usr": "c:@F@foo#",
 | 
				
			||||||
      "short_name": "foo",
 | 
					      "short_name": "foo",
 | 
				
			||||||
      "qualified_name": "void foo()",
 | 
					      "detailed_name": "void foo()",
 | 
				
			||||||
      "definition_spelling": "3:6-3:9",
 | 
					      "definition_spelling": "3:6-3:9",
 | 
				
			||||||
      "definition_extent": "3:1-5:2"
 | 
					      "definition_extent": "3:1-5:2"
 | 
				
			||||||
    }],
 | 
					    }],
 | 
				
			||||||
@ -19,7 +19,7 @@ OUTPUT:
 | 
				
			|||||||
      "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": "int a",
 | 
					      "detailed_name": "int a",
 | 
				
			||||||
      "definition_spelling": "1:12-1:13",
 | 
					      "definition_spelling": "1:12-1:13",
 | 
				
			||||||
      "definition_extent": "1:1-1:13",
 | 
					      "definition_extent": "1:1-1:13",
 | 
				
			||||||
      "uses": ["1:12-1:13", "4:3-4:4"]
 | 
					      "uses": ["1:12-1:13", "4:3-4:4"]
 | 
				
			||||||
 | 
				
			|||||||
@ -8,7 +8,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@S@Foo",
 | 
					      "usr": "c:@S@Foo",
 | 
				
			||||||
      "short_name": "Foo",
 | 
					      "short_name": "Foo",
 | 
				
			||||||
      "qualified_name": "Foo",
 | 
					      "detailed_name": "Foo",
 | 
				
			||||||
      "definition_spelling": "1:7-1:10",
 | 
					      "definition_spelling": "1:7-1:10",
 | 
				
			||||||
      "definition_extent": "1:1-3:2",
 | 
					      "definition_extent": "1:1-3:2",
 | 
				
			||||||
      "vars": [0],
 | 
					      "vars": [0],
 | 
				
			||||||
@ -19,7 +19,7 @@ OUTPUT:
 | 
				
			|||||||
      "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 * Foo::member",
 | 
					      "detailed_name": "Foo * Foo::member",
 | 
				
			||||||
      "definition_spelling": "2:8-2:14",
 | 
					      "definition_spelling": "2:8-2:14",
 | 
				
			||||||
      "definition_extent": "2:3-2:14",
 | 
					      "definition_extent": "2:3-2:14",
 | 
				
			||||||
      "variable_type": 0,
 | 
					      "variable_type": 0,
 | 
				
			||||||
 | 
				
			|||||||
@ -10,7 +10,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@S@Foo",
 | 
					      "usr": "c:@S@Foo",
 | 
				
			||||||
      "short_name": "Foo",
 | 
					      "short_name": "Foo",
 | 
				
			||||||
      "qualified_name": "Foo",
 | 
					      "detailed_name": "Foo",
 | 
				
			||||||
      "definition_spelling": "1:7-1:10",
 | 
					      "definition_spelling": "1:7-1:10",
 | 
				
			||||||
      "definition_extent": "1:1-3:2",
 | 
					      "definition_extent": "1:1-3:2",
 | 
				
			||||||
      "vars": [0],
 | 
					      "vars": [0],
 | 
				
			||||||
@ -21,7 +21,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@S@Foo@member",
 | 
					      "usr": "c:@S@Foo@member",
 | 
				
			||||||
      "short_name": "member",
 | 
					      "short_name": "member",
 | 
				
			||||||
      "qualified_name": "Foo * Foo::member",
 | 
					      "detailed_name": "Foo * Foo::member",
 | 
				
			||||||
      "declaration": "2:15-2:21",
 | 
					      "declaration": "2:15-2:21",
 | 
				
			||||||
      "definition_spelling": "4:11-4:17",
 | 
					      "definition_spelling": "4:11-4:17",
 | 
				
			||||||
      "definition_extent": "4:1-4:27",
 | 
					      "definition_extent": "4:1-4:27",
 | 
				
			||||||
 | 
				
			|||||||
@ -8,7 +8,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@S@Foo",
 | 
					      "usr": "c:@S@Foo",
 | 
				
			||||||
      "short_name": "Foo",
 | 
					      "short_name": "Foo",
 | 
				
			||||||
      "qualified_name": "Foo",
 | 
					      "detailed_name": "Foo",
 | 
				
			||||||
      "definition_spelling": "1:7-1:10",
 | 
					      "definition_spelling": "1:7-1:10",
 | 
				
			||||||
      "definition_extent": "1:1-3:2",
 | 
					      "definition_extent": "1:1-3:2",
 | 
				
			||||||
      "uses": ["*1:7-1:10"]
 | 
					      "uses": ["*1:7-1:10"]
 | 
				
			||||||
@ -17,7 +17,7 @@ OUTPUT:
 | 
				
			|||||||
      "id": 0,
 | 
					      "id": 0,
 | 
				
			||||||
      "usr": "c:@S@Foo@member",
 | 
					      "usr": "c:@S@Foo@member",
 | 
				
			||||||
      "short_name": "member",
 | 
					      "short_name": "member",
 | 
				
			||||||
      "qualified_name": "int Foo::member",
 | 
					      "detailed_name": "int Foo::member",
 | 
				
			||||||
      "declaration": "2:14-2:20",
 | 
					      "declaration": "2:14-2:20",
 | 
				
			||||||
      "uses": ["2:14-2:20"]
 | 
					      "uses": ["2:14-2:20"]
 | 
				
			||||||
    }]
 | 
					    }]
 | 
				
			||||||
 | 
				
			|||||||
Some files were not shown because too many files have changed in this diff Show More
		Loading…
	
		Reference in New Issue
	
	Block a user