mirror of
				https://github.com/MaskRay/ccls.git
				synced 2025-10-31 12:42:34 +00:00 
			
		
		
		
	indexer: fix getAdjustedDecl for explicit instantiations; fix incorrect short_offset_size=1 when name is empty
Fix #516
This commit is contained in:
		
							parent
							
								
									7e795e9b9e
								
							
						
					
					
						commit
						0a1e08a8ca
					
				| @ -358,7 +358,7 @@ const Decl *getAdjustedDecl(const Decl *d) { | ||||
|   while (d) { | ||||
|     if (auto *r = dyn_cast<CXXRecordDecl>(d)) { | ||||
|       if (auto *s = dyn_cast<ClassTemplateSpecializationDecl>(r)) { | ||||
|         if (!s->getTypeAsWritten()) { | ||||
|         if (!s->isExplicitSpecialization()) { | ||||
|           llvm::PointerUnion<ClassTemplateDecl *, | ||||
|                              ClassTemplatePartialSpecializationDecl *> | ||||
|               result = s->getSpecializedTemplateOrPartial(); | ||||
| @ -534,7 +534,8 @@ public: | ||||
|       name.replace(i, short_name.size(), qualified); | ||||
|       def.short_name_offset = i + qualified.size() - short_name.size(); | ||||
|     } | ||||
|     def.short_name_size = short_name.size(); | ||||
|     // name may be empty while short_name is not.
 | ||||
|     def.short_name_size = name.empty() ? 0 : short_name.size(); | ||||
|     for (int paren = 0; i; i--) { | ||||
|       // Skip parentheses in "(anon struct)::name"
 | ||||
|       if (name[i - 1] == ')') | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user