mirror of
				https://github.com/MaskRay/ccls.git
				synced 2025-10-30 20:22:38 +00:00 
			
		
		
		
	Change how function declarations are serialized so parameter info can be added.
This commit is contained in:
		
							parent
							
								
									b7f7987cb8
								
							
						
					
					
						commit
						3469850c98
					
				| @ -1008,7 +1008,26 @@ void indexDeclaration(CXClientData client_data, const CXIdxDeclInfo* decl) { | |||||||
|         func->def.definition_extent = ResolveExtent(decl->cursor); |         func->def.definition_extent = ResolveExtent(decl->cursor); | ||||||
|       } |       } | ||||||
|       else { |       else { | ||||||
|         func->declarations.push_back(decl_spelling); |         IndexFunc::Declaration declaration; | ||||||
|  |         declaration.spelling = decl_spelling; | ||||||
|  | 
 | ||||||
|  |         /*
 | ||||||
|  |         for (clang::Cursor arg : decl_cursor.get_arguments()) { | ||||||
|  |           switch (arg.get_kind()) { | ||||||
|  |             case CXCursor_ParmDecl: { | ||||||
|  |               IndexFunc::DeclarationVariable decl_var; | ||||||
|  |               decl_var.content = arg.get_display_name(); // FIXME/TODO: scan actual tokens.
 | ||||||
|  |               decl_var.spelling = ResolveSpelling(arg.cx_cursor); | ||||||
|  |               declaration.vars.push_back(decl_var); | ||||||
|  |               break; | ||||||
|  |             } | ||||||
|  |             default: | ||||||
|  |               break; | ||||||
|  |           } | ||||||
|  |         } | ||||||
|  |         */ | ||||||
|  | 
 | ||||||
|  |         func->declarations.push_back(declaration); | ||||||
|       } |       } | ||||||
| 
 | 
 | ||||||
|       // Emit definition data for the function. We do this even if it isn't a
 |       // Emit definition data for the function. We do this even if it isn't a
 | ||||||
| @ -1074,32 +1093,6 @@ void indexDeclaration(CXClientData client_data, const CXIdxDeclInfo* decl) { | |||||||
|           clang_disposeOverriddenCursors(overridden); |           clang_disposeOverriddenCursors(overridden); | ||||||
|         } |         } | ||||||
|       } |       } | ||||||
| 
 |  | ||||||
|       // else {
 |  | ||||||
|         // Add declaration.
 |  | ||||||
|         // func_def->declarations.push_back(ResolveSpelling(decl->cursor));
 |  | ||||||
|         /* TODO/FIXME: enable this block
 |  | ||||||
|         IndexFunc::Declaration declaration; |  | ||||||
|         declaration.extent = ResolveExtent(decl->cursor); |  | ||||||
| 
 |  | ||||||
|         clang::Cursor cursor = decl->cursor; |  | ||||||
|         for (clang::Cursor arg : cursor.get_arguments()) { |  | ||||||
|           switch (arg.get_kind()) { |  | ||||||
|             case CXCursor_ParmDecl: { |  | ||||||
|               IndexFunc::DeclarationVariable decl_var; |  | ||||||
|               // FIXME/TODO: scan actual tokens.
 |  | ||||||
|               decl_var.extent_string = arg.get_display_name(); |  | ||||||
|               decl_var.spelling = ResolveSpelling(arg.cx_cursor); |  | ||||||
|               declaration.vars.push_back(decl_var); |  | ||||||
|               break; |  | ||||||
|             } |  | ||||||
|             default: |  | ||||||
|               break; |  | ||||||
|           } |  | ||||||
|         } |  | ||||||
|         func_def->declarations.push_back(declaration); |  | ||||||
|         */ |  | ||||||
|       // }
 |  | ||||||
|       break; |       break; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -316,8 +316,19 @@ struct IndexFunc { | |||||||
| 
 | 
 | ||||||
|   IndexFuncId id; |   IndexFuncId id; | ||||||
| 
 | 
 | ||||||
|  |   struct DeclarationVariable { | ||||||
|  |     // Spelled name of the variable.
 | ||||||
|  |     Range spelling; | ||||||
|  |     // Full text (including type) of the variable.
 | ||||||
|  |     std::string content; | ||||||
|  |   }; | ||||||
|  |   struct Declaration { | ||||||
|  |     Range spelling; | ||||||
|  |     std::vector<DeclarationVariable> vars; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|   // Places the function is forward-declared.
 |   // Places the function is forward-declared.
 | ||||||
|   std::vector<Range> declarations; |   std::vector<Declaration> declarations; | ||||||
| 
 | 
 | ||||||
|   // Methods which directly override this one.
 |   // Methods which directly override this one.
 | ||||||
|   std::vector<IndexFuncId> derived; |   std::vector<IndexFuncId> derived; | ||||||
| @ -339,6 +350,8 @@ struct IndexFunc { | |||||||
|   } |   } | ||||||
| }; | }; | ||||||
| MAKE_HASHABLE(IndexFunc, t.def.usr); | MAKE_HASHABLE(IndexFunc, t.def.usr); | ||||||
|  | MAKE_REFLECT_STRUCT(IndexFunc::DeclarationVariable, spelling, content); | ||||||
|  | MAKE_REFLECT_STRUCT(IndexFunc::Declaration, spelling, vars); | ||||||
| 
 | 
 | ||||||
| template <typename TypeId, | template <typename TypeId, | ||||||
|           typename FuncId, |           typename FuncId, | ||||||
| @ -447,7 +460,7 @@ MAKE_REFLECT_STRUCT(IndexInclude, line, resolved_path); | |||||||
| struct IndexFile { | struct IndexFile { | ||||||
|   IdCache id_cache; |   IdCache id_cache; | ||||||
| 
 | 
 | ||||||
|   static constexpr int kCurrentVersion = 3; |   static constexpr int kCurrentVersion = 4; | ||||||
|   int version = 0; |   int version = 0; | ||||||
| 
 | 
 | ||||||
|   std::string path; |   std::string path; | ||||||
|  | |||||||
							
								
								
									
										20
									
								
								src/query.cc
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								src/query.cc
									
									
									
									
									
								
							| @ -195,9 +195,10 @@ QueryFile::Def BuildFileDef(const IdMap& id_map, const IndexFile& indexed) { | |||||||
|       add_all_symbols(id_map.ToSymbol(func.id), func.def.definition_spelling.value()); |       add_all_symbols(id_map.ToSymbol(func.id), func.def.definition_spelling.value()); | ||||||
|     if (func.def.definition_extent.has_value()) |     if (func.def.definition_extent.has_value()) | ||||||
|       add_outline(id_map.ToSymbol(func.id), func.def.definition_extent.value()); |       add_outline(id_map.ToSymbol(func.id), func.def.definition_extent.value()); | ||||||
|     for (Range decl : func.declarations) { |     for (const IndexFunc::Declaration& decl : func.declarations) { | ||||||
|       add_all_symbols(id_map.ToSymbol(func.id), decl); |       // TODO: add more outline info?
 | ||||||
|       add_outline(id_map.ToSymbol(func.id), decl); |       add_all_symbols(id_map.ToSymbol(func.id), decl.spelling); | ||||||
|  |       add_outline(id_map.ToSymbol(func.id), decl.spelling); | ||||||
|     } |     } | ||||||
|     for (const IndexFuncRef& caller : func.callers) { |     for (const IndexFuncRef& caller : func.callers) { | ||||||
|       if (caller.is_implicit) continue; |       if (caller.is_implicit) continue; | ||||||
| @ -320,7 +321,6 @@ IdMap::IdMap(QueryDatabase* query_db, const IdCache& local_ids) | |||||||
| QueryLocation IdMap::ToQuery(Range range) const { | QueryLocation IdMap::ToQuery(Range range) const { | ||||||
|   return QueryLocation(primary_file, range); |   return QueryLocation(primary_file, range); | ||||||
| } | } | ||||||
| 
 |  | ||||||
| QueryTypeId IdMap::ToQuery(IndexTypeId id) const { | QueryTypeId IdMap::ToQuery(IndexTypeId id) const { | ||||||
|   assert(cached_type_ids_.find(id) != cached_type_ids_.end()); |   assert(cached_type_ids_.find(id) != cached_type_ids_.end()); | ||||||
|   return QueryTypeId(cached_type_ids_.find(id)->second); |   return QueryTypeId(cached_type_ids_.find(id)->second); | ||||||
| @ -337,6 +337,10 @@ QueryVarId IdMap::ToQuery(IndexVarId id) const { | |||||||
| QueryFuncRef IdMap::ToQuery(IndexFuncRef ref) const { | QueryFuncRef IdMap::ToQuery(IndexFuncRef ref) const { | ||||||
|   return QueryFuncRef(ToQuery(ref.id), ToQuery(ref.loc), ref.is_implicit); |   return QueryFuncRef(ToQuery(ref.id), ToQuery(ref.loc), ref.is_implicit); | ||||||
| } | } | ||||||
|  | QueryLocation IdMap::ToQuery(IndexFunc::Declaration decl) const { | ||||||
|  |   // TODO: expose more than just QueryLocation.
 | ||||||
|  |   return QueryLocation(primary_file, decl.spelling); | ||||||
|  | } | ||||||
| 
 | 
 | ||||||
| optional<QueryLocation> IdMap::ToQuery(optional<Range> range) const { | optional<QueryLocation> IdMap::ToQuery(optional<Range> range) const { | ||||||
|   if (!range) |   if (!range) | ||||||
| @ -363,6 +367,11 @@ optional<QueryFuncRef> IdMap::ToQuery(optional<IndexFuncRef> ref) const { | |||||||
|     return nullopt; |     return nullopt; | ||||||
|   return ToQuery(ref.value()); |   return ToQuery(ref.value()); | ||||||
| } | } | ||||||
|  | optional<QueryLocation> IdMap::ToQuery(optional<IndexFunc::Declaration> decl) const { | ||||||
|  |   if (!decl) | ||||||
|  |     return nullopt; | ||||||
|  |   return ToQuery(decl.value()); | ||||||
|  | } | ||||||
| 
 | 
 | ||||||
| template<typename In, typename Out> | template<typename In, typename Out> | ||||||
| std::vector<Out> ToQueryTransform(const IdMap& id_map, const std::vector<In>& input) { | std::vector<Out> ToQueryTransform(const IdMap& id_map, const std::vector<In>& input) { | ||||||
| @ -387,6 +396,9 @@ std::vector<QueryVarId> IdMap::ToQuery(std::vector<IndexVarId> ids) const { | |||||||
| std::vector<QueryFuncRef> IdMap::ToQuery(std::vector<IndexFuncRef> refs) const { | std::vector<QueryFuncRef> IdMap::ToQuery(std::vector<IndexFuncRef> refs) const { | ||||||
|   return ToQueryTransform<IndexFuncRef, QueryFuncRef>(*this, refs); |   return ToQueryTransform<IndexFuncRef, QueryFuncRef>(*this, refs); | ||||||
| } | } | ||||||
|  | std::vector<QueryLocation> IdMap::ToQuery(std::vector<IndexFunc::Declaration> decls) const { | ||||||
|  |   return ToQueryTransform<IndexFunc::Declaration, QueryLocation>(*this, decls); | ||||||
|  | } | ||||||
| 
 | 
 | ||||||
| SymbolIdx IdMap::ToSymbol(IndexTypeId id) const { | SymbolIdx IdMap::ToSymbol(IndexTypeId id) const { | ||||||
|   return SymbolIdx(SymbolKind::Type, ToQuery(id).id); |   return SymbolIdx(SymbolKind::Type, ToQuery(id).id); | ||||||
|  | |||||||
| @ -315,16 +315,19 @@ struct IdMap { | |||||||
|   QueryFuncId ToQuery(IndexFuncId id) const; |   QueryFuncId ToQuery(IndexFuncId id) const; | ||||||
|   QueryVarId ToQuery(IndexVarId id) const; |   QueryVarId ToQuery(IndexVarId id) const; | ||||||
|   QueryFuncRef ToQuery(IndexFuncRef ref) const; |   QueryFuncRef ToQuery(IndexFuncRef ref) const; | ||||||
|  |   QueryLocation ToQuery(IndexFunc::Declaration decl) const; | ||||||
|   optional<QueryLocation> ToQuery(optional<Range> range) const; |   optional<QueryLocation> ToQuery(optional<Range> range) const; | ||||||
|   optional<QueryTypeId> ToQuery(optional<IndexTypeId> id) const; |   optional<QueryTypeId> ToQuery(optional<IndexTypeId> id) const; | ||||||
|   optional<QueryFuncId> ToQuery(optional<IndexFuncId> id) const; |   optional<QueryFuncId> ToQuery(optional<IndexFuncId> id) const; | ||||||
|   optional<QueryVarId> ToQuery(optional<IndexVarId> id) const; |   optional<QueryVarId> ToQuery(optional<IndexVarId> id) const; | ||||||
|   optional<QueryFuncRef> ToQuery(optional<IndexFuncRef> ref) const; |   optional<QueryFuncRef> ToQuery(optional<IndexFuncRef> ref) const; | ||||||
|  |   optional<QueryLocation> ToQuery(optional<IndexFunc::Declaration> decl) const; | ||||||
|   std::vector<QueryLocation> ToQuery(std::vector<Range> ranges) const; |   std::vector<QueryLocation> ToQuery(std::vector<Range> ranges) const; | ||||||
|   std::vector<QueryTypeId> ToQuery(std::vector<IndexTypeId> ids) const; |   std::vector<QueryTypeId> ToQuery(std::vector<IndexTypeId> ids) const; | ||||||
|   std::vector<QueryFuncId> ToQuery(std::vector<IndexFuncId> ids) const; |   std::vector<QueryFuncId> ToQuery(std::vector<IndexFuncId> ids) const; | ||||||
|   std::vector<QueryVarId> ToQuery(std::vector<IndexVarId> ids) const; |   std::vector<QueryVarId> ToQuery(std::vector<IndexVarId> ids) const; | ||||||
|   std::vector<QueryFuncRef> ToQuery(std::vector<IndexFuncRef> refs) const; |   std::vector<QueryFuncRef> ToQuery(std::vector<IndexFuncRef> refs) const; | ||||||
|  |   std::vector<QueryLocation> ToQuery(std::vector<IndexFunc::Declaration> decls) const; | ||||||
| 
 | 
 | ||||||
|   SymbolIdx ToSymbol(IndexTypeId id) const; |   SymbolIdx ToSymbol(IndexTypeId id) const; | ||||||
|   SymbolIdx ToSymbol(IndexFuncId id) const; |   SymbolIdx ToSymbol(IndexFuncId id) const; | ||||||
|  | |||||||
| @ -12,7 +12,13 @@ OUTPUT: | |||||||
|       "usr": "c:@F@foo#", |       "usr": "c:@F@foo#", | ||||||
|       "short_name": "foo", |       "short_name": "foo", | ||||||
|       "detailed_name": "void foo()", |       "detailed_name": "void foo()", | ||||||
|       "declarations": ["1:6-1:9", "2:6-2:9", "4:6-4:9"], |       "declarations": [{ | ||||||
|  |           "spelling": "1:6-1:9" | ||||||
|  |         }, { | ||||||
|  |           "spelling": "2:6-2:9" | ||||||
|  |         }, { | ||||||
|  |           "spelling": "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" | ||||||
|     }] |     }] | ||||||
|  | |||||||
| @ -24,21 +24,27 @@ OUTPUT: | |||||||
|       "usr": "c:@S@Foo@F@declonly#", |       "usr": "c:@S@Foo@F@declonly#", | ||||||
|       "short_name": "declonly", |       "short_name": "declonly", | ||||||
|       "detailed_name": "void Foo::declonly()", |       "detailed_name": "void Foo::declonly()", | ||||||
|       "declarations": ["2:8-2:16"], |       "declarations": [{ | ||||||
|  |           "spelling": "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", | ||||||
|       "detailed_name": "void Foo::purevirtual()", |       "detailed_name": "void Foo::purevirtual()", | ||||||
|       "declarations": ["3:16-3:27"], |       "declarations": [{ | ||||||
|  |           "spelling": "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", | ||||||
|       "detailed_name": "void Foo::def()", |       "detailed_name": "void Foo::def()", | ||||||
|       "declarations": ["4:8-4:11"], |       "declarations": [{ | ||||||
|  |           "spelling": "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", | ||||||
|       "declaring_type": 0 |       "declaring_type": 0 | ||||||
|  | |||||||
| @ -8,7 +8,9 @@ OUTPUT: | |||||||
|       "usr": "c:@F@foo#I#I#", |       "usr": "c:@F@foo#I#I#", | ||||||
|       "short_name": "foo", |       "short_name": "foo", | ||||||
|       "detailed_name": "void foo(int, int)", |       "detailed_name": "void foo(int, int)", | ||||||
|       "declarations": ["1:6-1:9"] |       "declarations": [{ | ||||||
|  |           "spelling": "1:6-1:9" | ||||||
|  |         }] | ||||||
|     }] |     }] | ||||||
| } | } | ||||||
| */ | */ | ||||||
|  | |||||||
| @ -10,7 +10,9 @@ OUTPUT: | |||||||
|       "usr": "c:@F@foo#", |       "usr": "c:@F@foo#", | ||||||
|       "short_name": "foo", |       "short_name": "foo", | ||||||
|       "detailed_name": "void foo()", |       "detailed_name": "void foo()", | ||||||
|       "declarations": ["1:6-1:9"], |       "declarations": [{ | ||||||
|  |           "spelling": "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" | ||||||
|     }] |     }] | ||||||
|  | |||||||
| @ -34,7 +34,9 @@ OUTPUT: | |||||||
|       "usr": "c:@S@Root@F@foo#", |       "usr": "c:@S@Root@F@foo#", | ||||||
|       "short_name": "foo", |       "short_name": "foo", | ||||||
|       "detailed_name": "void Root::foo()", |       "detailed_name": "void Root::foo()", | ||||||
|       "declarations": ["2:16-2:19"], |       "declarations": [{ | ||||||
|  |           "spelling": "2:16-2:19" | ||||||
|  |         }], | ||||||
|       "declaring_type": 0, |       "declaring_type": 0, | ||||||
|       "derived": [1] |       "derived": [1] | ||||||
|     }, { |     }, { | ||||||
|  | |||||||
| @ -24,7 +24,9 @@ OUTPUT: | |||||||
|       "usr": "c:@S@Foo@F@foo#", |       "usr": "c:@S@Foo@F@foo#", | ||||||
|       "short_name": "foo", |       "short_name": "foo", | ||||||
|       "detailed_name": "void Foo::foo()", |       "detailed_name": "void Foo::foo()", | ||||||
|       "declarations": ["2:8-2:11"], |       "declarations": [{ | ||||||
|  |           "spelling": "2:8-2:11" | ||||||
|  |         }], | ||||||
|       "declaring_type": 0 |       "declaring_type": 0 | ||||||
|     }] |     }] | ||||||
| } | } | ||||||
|  | |||||||
| @ -22,7 +22,9 @@ OUTPUT: | |||||||
|       "usr": "c:@S@Foo@F@foo#", |       "usr": "c:@S@Foo@F@foo#", | ||||||
|       "short_name": "foo", |       "short_name": "foo", | ||||||
|       "detailed_name": "void Foo::foo()", |       "detailed_name": "void Foo::foo()", | ||||||
|       "declarations": ["2:8-2:11"], |       "declarations": [{ | ||||||
|  |           "spelling": "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", | ||||||
|       "declaring_type": 0 |       "declaring_type": 0 | ||||||
|  | |||||||
| @ -12,7 +12,9 @@ OUTPUT: simple_header.h | |||||||
|       "usr": "c:@F@header#", |       "usr": "c:@F@header#", | ||||||
|       "short_name": "header", |       "short_name": "header", | ||||||
|       "detailed_name": "void header()", |       "detailed_name": "void header()", | ||||||
|       "declarations": ["3:6-3:12"] |       "declarations": [{ | ||||||
|  |           "spelling": "3:6-3:12" | ||||||
|  |         }] | ||||||
|     }] |     }] | ||||||
| } | } | ||||||
| OUTPUT: simple_impl.cc | OUTPUT: simple_impl.cc | ||||||
|  | |||||||
| @ -20,7 +20,9 @@ OUTPUT: static.h | |||||||
|       "usr": "c:@S@Buffer@F@CreateSharedBuffer#S", |       "usr": "c:@S@Buffer@F@CreateSharedBuffer#S", | ||||||
|       "short_name": "CreateSharedBuffer", |       "short_name": "CreateSharedBuffer", | ||||||
|       "detailed_name": "void Buffer::CreateSharedBuffer()", |       "detailed_name": "void Buffer::CreateSharedBuffer()", | ||||||
|       "declarations": ["4:15-4:33"], |       "declarations": [{ | ||||||
|  |           "spelling": "4:15-4:33" | ||||||
|  |         }], | ||||||
|       "declaring_type": 0 |       "declaring_type": 0 | ||||||
|     }] |     }] | ||||||
| } | } | ||||||
|  | |||||||
| @ -10,7 +10,9 @@ OUTPUT: | |||||||
|       "usr": "c:anonymous_function.cc@aN@F@foo#", |       "usr": "c:anonymous_function.cc@aN@F@foo#", | ||||||
|       "short_name": "foo", |       "short_name": "foo", | ||||||
|       "detailed_name": "void ::foo()", |       "detailed_name": "void ::foo()", | ||||||
|       "declarations": ["2:6-2:9"] |       "declarations": [{ | ||||||
|  |           "spelling": "2:6-2:9" | ||||||
|  |         }] | ||||||
|     }] |     }] | ||||||
| } | } | ||||||
| */ | */ | ||||||
|  | |||||||
| @ -10,7 +10,9 @@ OUTPUT: | |||||||
|       "usr": "c:@N@hello@F@foo#I#I#", |       "usr": "c:@N@hello@F@foo#I#I#", | ||||||
|       "short_name": "foo", |       "short_name": "foo", | ||||||
|       "detailed_name": "void hello::foo(int, int)", |       "detailed_name": "void hello::foo(int, int)", | ||||||
|       "declarations": ["2:6-2:9"] |       "declarations": [{ | ||||||
|  |           "spelling": "2:6-2:9" | ||||||
|  |         }] | ||||||
|     }] |     }] | ||||||
| } | } | ||||||
| */ | */ | ||||||
|  | |||||||
| @ -22,7 +22,9 @@ OUTPUT: | |||||||
|       "usr": "c:@N@hello@S@Foo@F@foo#", |       "usr": "c:@N@hello@S@Foo@F@foo#", | ||||||
|       "short_name": "foo", |       "short_name": "foo", | ||||||
|       "detailed_name": "void hello::Foo::foo()", |       "detailed_name": "void hello::Foo::foo()", | ||||||
|       "declarations": ["3:8-3:11"], |       "declarations": [{ | ||||||
|  |           "spelling": "3:8-3:11" | ||||||
|  |         }], | ||||||
|       "declaring_type": 0 |       "declaring_type": 0 | ||||||
|     }] |     }] | ||||||
| } | } | ||||||
|  | |||||||
| @ -24,7 +24,9 @@ OUTPUT: | |||||||
|       "usr": "c:@N@hello@S@Foo@F@foo#", |       "usr": "c:@N@hello@S@Foo@F@foo#", | ||||||
|       "short_name": "foo", |       "short_name": "foo", | ||||||
|       "detailed_name": "void hello::Foo::foo()", |       "detailed_name": "void hello::Foo::foo()", | ||||||
|       "declarations": ["3:8-3:11"], |       "declarations": [{ | ||||||
|  |           "spelling": "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", | ||||||
|       "declaring_type": 0 |       "declaring_type": 0 | ||||||
|  | |||||||
| @ -47,7 +47,9 @@ OUTPUT: | |||||||
|       "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", | ||||||
|       "detailed_name": "std::vector<CompilationEntry> LoadCompilationEntriesFromDirectory(const std::string &)", |       "detailed_name": "std::vector<CompilationEntry> LoadCompilationEntriesFromDirectory(const std::string &)", | ||||||
|       "declarations": ["12:31-12:66"] |       "declarations": [{ | ||||||
|  |           "spelling": "12:31-12:66" | ||||||
|  |         }] | ||||||
|     }], |     }], | ||||||
|   "vars": [{ |   "vars": [{ | ||||||
|       "id": 0, |       "id": 0, | ||||||
|  | |||||||
| @ -33,7 +33,9 @@ OUTPUT: | |||||||
|       "usr": "c:@S@Foo@F@Bar#&$@S@Template>#d#", |       "usr": "c:@S@Foo@F@Bar#&$@S@Template>#d#", | ||||||
|       "short_name": "Bar", |       "short_name": "Bar", | ||||||
|       "detailed_name": "void Foo::Bar(Template<double> &)", |       "detailed_name": "void Foo::Bar(Template<double> &)", | ||||||
|       "declarations": ["5:8-5:11"], |       "declarations": [{ | ||||||
|  |           "spelling": "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", | ||||||
|       "declaring_type": 1 |       "declaring_type": 1 | ||||||
|  | |||||||
| @ -30,7 +30,11 @@ OUTPUT: | |||||||
|       "usr": "c:@ST>1#T@Template@F@Foo#", |       "usr": "c:@ST>1#T@Template@F@Foo#", | ||||||
|       "short_name": "Foo", |       "short_name": "Foo", | ||||||
|       "detailed_name": "void Template::Foo()", |       "detailed_name": "void Template::Foo()", | ||||||
|       "declarations": ["3:8-3:11", "9:22-9:25"], |       "declarations": [{ | ||||||
|  |           "spelling": "3:8-3:11" | ||||||
|  |         }, { | ||||||
|  |           "spelling": "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", | ||||||
|       "declaring_type": 0 |       "declaring_type": 0 | ||||||
|  | |||||||
| @ -34,7 +34,9 @@ OUTPUT: | |||||||
|       "usr": "c:@S@Foo@F@Foo#", |       "usr": "c:@S@Foo@F@Foo#", | ||||||
|       "short_name": "Foo", |       "short_name": "Foo", | ||||||
|       "detailed_name": "void Foo::Foo()", |       "detailed_name": "void Foo::Foo()", | ||||||
|       "declarations": ["4:3-4:6"], |       "declarations": [{ | ||||||
|  |           "spelling": "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", | ||||||
|       "declaring_type": 0, |       "declaring_type": 0, | ||||||
|  | |||||||
| @ -14,7 +14,9 @@ OUTPUT: | |||||||
|       "usr": "c:@F@called#b#b#", |       "usr": "c:@F@called#b#b#", | ||||||
|       "short_name": "called", |       "short_name": "called", | ||||||
|       "detailed_name": "bool called(bool, bool)", |       "detailed_name": "bool called(bool, bool)", | ||||||
|       "declarations": ["3:6-3:12"], |       "declarations": [{ | ||||||
|  |           "spelling": "3:6-3:12" | ||||||
|  |         }], | ||||||
|       "callers": ["1@6:14-6:20"] |       "callers": ["1@6:14-6:20"] | ||||||
|     }, { |     }, { | ||||||
|       "id": 1, |       "id": 1, | ||||||
|  | |||||||
| @ -19,7 +19,9 @@ OUTPUT: | |||||||
|       "usr": "c:@F@called#", |       "usr": "c:@F@called#", | ||||||
|       "short_name": "called", |       "short_name": "called", | ||||||
|       "detailed_name": "void called()", |       "detailed_name": "void called()", | ||||||
|       "declarations": ["1:6-1:12"], |       "declarations": [{ | ||||||
|  |           "spelling": "1:6-1:12" | ||||||
|  |         }], | ||||||
|       "callers": ["1@5:3-5:9"] |       "callers": ["1@5:3-5:9"] | ||||||
|     }, { |     }, { | ||||||
|       "id": 1, |       "id": 1, | ||||||
|  | |||||||
| @ -26,7 +26,9 @@ OUTPUT: | |||||||
|       "usr": "c:@S@Wrapper@F@Wrapper#I#", |       "usr": "c:@S@Wrapper@F@Wrapper#I#", | ||||||
|       "short_name": "Wrapper", |       "short_name": "Wrapper", | ||||||
|       "detailed_name": "void Wrapper::Wrapper(int)", |       "detailed_name": "void Wrapper::Wrapper(int)", | ||||||
|       "declarations": ["2:3-2:10"], |       "declarations": [{ | ||||||
|  |           "spelling": "2:3-2:10" | ||||||
|  |         }], | ||||||
|       "declaring_type": 0, |       "declaring_type": 0, | ||||||
|       "callers": ["~2@8:10-8:16"] |       "callers": ["~2@8:10-8:16"] | ||||||
|     }, { |     }, { | ||||||
|  | |||||||
| @ -25,7 +25,9 @@ OUTPUT: | |||||||
|       "usr": "c:@S@Foo@F@Used#", |       "usr": "c:@S@Foo@F@Used#", | ||||||
|       "short_name": "Used", |       "short_name": "Used", | ||||||
|       "detailed_name": "void Foo::Used()", |       "detailed_name": "void Foo::Used()", | ||||||
|       "declarations": ["2:8-2:12"], |       "declarations": [{ | ||||||
|  |           "spelling": "2:8-2:12" | ||||||
|  |         }], | ||||||
|       "declaring_type": 0, |       "declaring_type": 0, | ||||||
|       "callers": ["1@6:18-6:22"] |       "callers": ["1@6:18-6:22"] | ||||||
|     }, { |     }, { | ||||||
|  | |||||||
| @ -26,7 +26,9 @@ OUTPUT: | |||||||
|       "usr": "c:@S@Foo@F@Used#", |       "usr": "c:@S@Foo@F@Used#", | ||||||
|       "short_name": "Used", |       "short_name": "Used", | ||||||
|       "detailed_name": "void Foo::Used()", |       "detailed_name": "void Foo::Used()", | ||||||
|       "declarations": ["2:8-2:12"], |       "declarations": [{ | ||||||
|  |           "spelling": "2:8-2:12" | ||||||
|  |         }], | ||||||
|       "declaring_type": 0, |       "declaring_type": 0, | ||||||
|       "callers": ["1@7:6-7:10"] |       "callers": ["1@7:6-7:10"] | ||||||
|     }, { |     }, { | ||||||
|  | |||||||
| @ -11,7 +11,9 @@ OUTPUT: | |||||||
|       "usr": "c:@F@foo#", |       "usr": "c:@F@foo#", | ||||||
|       "short_name": "foo", |       "short_name": "foo", | ||||||
|       "detailed_name": "void foo()", |       "detailed_name": "void foo()", | ||||||
|       "declarations": ["1:6-1:9"], |       "declarations": [{ | ||||||
|  |           "spelling": "1:6-1:9" | ||||||
|  |         }], | ||||||
|       "callers": ["1@4:3-4:6"] |       "callers": ["1@4:3-4:6"] | ||||||
|     }, { |     }, { | ||||||
|       "id": 1, |       "id": 1, | ||||||
|  | |||||||
| @ -25,7 +25,9 @@ OUTPUT: | |||||||
|       "usr": "c:@S@Foo@F@foo#", |       "usr": "c:@S@Foo@F@foo#", | ||||||
|       "short_name": "foo", |       "short_name": "foo", | ||||||
|       "detailed_name": "void Foo::foo()", |       "detailed_name": "void Foo::foo()", | ||||||
|       "declarations": ["2:8-2:11"], |       "declarations": [{ | ||||||
|  |           "spelling": "2:8-2:11" | ||||||
|  |         }], | ||||||
|       "declaring_type": 0, |       "declaring_type": 0, | ||||||
|       "callers": ["1@7:6-7:9"] |       "callers": ["1@7:6-7:9"] | ||||||
|     }, { |     }, { | ||||||
|  | |||||||
| @ -14,7 +14,9 @@ OUTPUT: | |||||||
|       "usr": "c:@FT@>1#Taccept#t0.0#v#", |       "usr": "c:@FT@>1#Taccept#t0.0#v#", | ||||||
|       "short_name": "accept", |       "short_name": "accept", | ||||||
|       "detailed_name": "void accept(T)", |       "detailed_name": "void accept(T)", | ||||||
|       "declarations": ["2:6-2:12"], |       "declarations": [{ | ||||||
|  |           "spelling": "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, | ||||||
|  | |||||||
| @ -131,7 +131,9 @@ OUTPUT: | |||||||
|       "usr": "c:@S@Foo@F@foo#", |       "usr": "c:@S@Foo@F@foo#", | ||||||
|       "short_name": "foo", |       "short_name": "foo", | ||||||
|       "detailed_name": "unique_ptr<S1, S2> *Foo::foo()", |       "detailed_name": "unique_ptr<S1, S2> *Foo::foo()", | ||||||
|       "declarations": ["65:23-65:26"], |       "declarations": [{ | ||||||
|  |           "spelling": "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", | ||||||
|       "declaring_type": 3 |       "declaring_type": 3 | ||||||
|  | |||||||
| @ -22,7 +22,9 @@ OUTPUT: | |||||||
|       "usr": "c:@F@foo#*$@S@Foo#S0_#", |       "usr": "c:@F@foo#*$@S@Foo#S0_#", | ||||||
|       "short_name": "foo", |       "short_name": "foo", | ||||||
|       "detailed_name": "void foo(Foo *, Foo *)", |       "detailed_name": "void foo(Foo *, Foo *)", | ||||||
|       "declarations": ["3:6-3:9"], |       "declarations": [{ | ||||||
|  |           "spelling": "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" | ||||||
|     }], |     }], | ||||||
|  | |||||||
| @ -39,7 +39,11 @@ OUTPUT: | |||||||
|       "usr": "c:@F@foo#", |       "usr": "c:@F@foo#", | ||||||
|       "short_name": "foo", |       "short_name": "foo", | ||||||
|       "detailed_name": "Type *foo()", |       "detailed_name": "Type *foo()", | ||||||
|       "declarations": ["3:7-3:10", "4:7-4:10"], |       "declarations": [{ | ||||||
|  |           "spelling": "3:7-3:10" | ||||||
|  |         }, { | ||||||
|  |           "spelling": "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" | ||||||
|     }, { |     }, { | ||||||
| @ -47,7 +51,9 @@ OUTPUT: | |||||||
|       "usr": "c:@S@Foo@F@Get#I#", |       "usr": "c:@S@Foo@F@Get#I#", | ||||||
|       "short_name": "Get", |       "short_name": "Get", | ||||||
|       "detailed_name": "Type *Foo::Get(int)", |       "detailed_name": "Type *Foo::Get(int)", | ||||||
|       "declarations": ["8:9-8:12"], |       "declarations": [{ | ||||||
|  |           "spelling": "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", | ||||||
|       "declaring_type": 1 |       "declaring_type": 1 | ||||||
| @ -56,7 +62,9 @@ OUTPUT: | |||||||
|       "usr": "c:@S@Foo@F@Empty#", |       "usr": "c:@S@Foo@F@Empty#", | ||||||
|       "short_name": "Empty", |       "short_name": "Empty", | ||||||
|       "detailed_name": "void Foo::Empty()", |       "detailed_name": "void Foo::Empty()", | ||||||
|       "declarations": ["9:8-9:13"], |       "declarations": [{ | ||||||
|  |           "spelling": "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", | ||||||
|       "declaring_type": 1 |       "declaring_type": 1 | ||||||
| @ -65,13 +73,17 @@ OUTPUT: | |||||||
|       "usr": "c:@F@external#", |       "usr": "c:@F@external#", | ||||||
|       "short_name": "external", |       "short_name": "external", | ||||||
|       "detailed_name": "const Type &external()", |       "detailed_name": "const Type &external()", | ||||||
|       "declarations": ["15:20-15:28"] |       "declarations": [{ | ||||||
|  |           "spelling": "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", | ||||||
|       "detailed_name": "Type *bar()", |       "detailed_name": "Type *bar()", | ||||||
|       "declarations": ["17:14-17:17"], |       "declarations": [{ | ||||||
|  |           "spelling": "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" | ||||||
|     }] |     }] | ||||||
|  | |||||||
| @ -28,7 +28,9 @@ OUTPUT: | |||||||
|       "usr": "c:@S@Foo@F@make#", |       "usr": "c:@S@Foo@F@make#", | ||||||
|       "short_name": "make", |       "short_name": "make", | ||||||
|       "detailed_name": "Foo *Foo::make()", |       "detailed_name": "Foo *Foo::make()", | ||||||
|       "declarations": ["2:8-2:12"], |       "declarations": [{ | ||||||
|  |           "spelling": "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", | ||||||
|       "declaring_type": 0 |       "declaring_type": 0 | ||||||
|  | |||||||
| @ -32,14 +32,18 @@ OUTPUT: | |||||||
|       "usr": "c:@F@called#I#", |       "usr": "c:@F@called#I#", | ||||||
|       "short_name": "called", |       "short_name": "called", | ||||||
|       "detailed_name": "void called(int)", |       "detailed_name": "void called(int)", | ||||||
|       "declarations": ["1:6-1:12"], |       "declarations": [{ | ||||||
|  |           "spelling": "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", | ||||||
|       "detailed_name": "int gen()", |       "detailed_name": "int gen()", | ||||||
|       "declarations": ["3:5-3:8"], |       "declarations": [{ | ||||||
|  |           "spelling": "3:5-3:8" | ||||||
|  |         }], | ||||||
|       "callers": ["2@14:14-14:17"] |       "callers": ["2@14:14-14:17"] | ||||||
|     }, { |     }, { | ||||||
|       "id": 2, |       "id": 2, | ||||||
|  | |||||||
| @ -14,7 +14,9 @@ OUTPUT: | |||||||
|       "usr": "c:@F@called#I#", |       "usr": "c:@F@called#I#", | ||||||
|       "short_name": "called", |       "short_name": "called", | ||||||
|       "detailed_name": "void called(int)", |       "detailed_name": "void called(int)", | ||||||
|       "declarations": ["1:6-1:12"], |       "declarations": [{ | ||||||
|  |           "spelling": "1:6-1:12" | ||||||
|  |         }], | ||||||
|       "callers": ["2@6:3-6:9"] |       "callers": ["2@6:3-6:9"] | ||||||
|     }, { |     }, { | ||||||
|       "id": 1, |       "id": 1, | ||||||
|  | |||||||
| @ -36,14 +36,18 @@ OUTPUT: | |||||||
|       "usr": "c:@F@accept#I#", |       "usr": "c:@F@accept#I#", | ||||||
|       "short_name": "accept", |       "short_name": "accept", | ||||||
|       "detailed_name": "void accept(int)", |       "detailed_name": "void accept(int)", | ||||||
|       "declarations": ["7:6-7:12"], |       "declarations": [{ | ||||||
|  |           "spelling": "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", | ||||||
|       "detailed_name": "void accept(int *)", |       "detailed_name": "void accept(int *)", | ||||||
|       "declarations": ["8:6-8:12"], |       "declarations": [{ | ||||||
|  |           "spelling": "8:6-8:12" | ||||||
|  |         }], | ||||||
|       "callers": ["2@16:3-16:9"] |       "callers": ["2@16:3-16:9"] | ||||||
|     }, { |     }, { | ||||||
|       "id": 2, |       "id": 2, | ||||||
|  | |||||||
| @ -25,7 +25,9 @@ OUTPUT: | |||||||
|       "usr": "c:@F@accept#I#", |       "usr": "c:@F@accept#I#", | ||||||
|       "short_name": "accept", |       "short_name": "accept", | ||||||
|       "detailed_name": "void accept(int)", |       "detailed_name": "void accept(int)", | ||||||
|       "declarations": ["5:6-5:12"], |       "declarations": [{ | ||||||
|  |           "spelling": "5:6-5:12" | ||||||
|  |         }], | ||||||
|       "callers": ["1@8:3-8:9"] |       "callers": ["1@8:3-8:9"] | ||||||
|     }, { |     }, { | ||||||
|       "id": 1, |       "id": 1, | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user