aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Index/IndexDecl.cpp
AgeCommit message (Collapse)AuthorFilesLines
2017-07-04[index] Index nested name qualifiers in a forward declaration of aAlex Lorenz1-0/+2
class template specialization rdar://33122110 llvm-svn: 307074
2017-06-22[index] Add the "SpecializationOf" relation to the forward declarationsAlex Lorenz1-12/+10
of class template specializations This commit fixes an issue where a forward declaration of a class template specialization was not related to the base template. We need to relate even forward declarations because specializations don't have to be defined. rdar://32869409 Differential Revision: https://reviews.llvm.org/D34462 llvm-svn: 305996
2017-06-21[index] Nested class declarations should be annotated with theAlex Lorenz1-1/+3
"specializationOf" relation if they pseudo-override a type in the base template This commit fixes an issue where Xcode's renaming engine couldn't find the reference to the second occurrence of "InnerClass" in this example: template<typename T> struct Ts { template<typename U> struct InnerClass { }; }; template<> struct Ts<int> { template<typename U> struct InnerClass; // This occurrence wasn't renamed }; rdar://31884960 Differential Revision: https://reviews.llvm.org/D34392 llvm-svn: 305911
2017-06-15[index] Record C++17 global binding declarationsAlex Lorenz1-0/+6
The global C++17 binding declarations should be indexed as variable symbols. Differential Revision: https://reviews.llvm.org/D33920 llvm-svn: 305508
2017-06-15[index] Index static_assert declarationsAlex Lorenz1-0/+7
static_assert declarations have to be visited while indexing so that we can gather the references to declarations that are present in their assert expression. Differential Revision: https://reviews.llvm.org/D33913 llvm-svn: 305504
2017-05-22[index] Index the default template parameter valuesAlex Lorenz1-0/+46
rdar://32323724 llvm-svn: 303568
2017-05-22[index] Index the deleted functionsAlex Lorenz1-3/+0
rdar://32323386 llvm-svn: 303563
2017-05-22[index] Visit the default argument values in function definitionsAlex Lorenz1-0/+11
rdar://32323315 llvm-svn: 303559
2017-05-22[index] 'using namespace' declarations in functions should recordAlex Lorenz1-2/+6
the reference to the namespace rdar://32323190 llvm-svn: 303555
2017-05-15[index] Visit and store information about namespace alias declarationsAlex Lorenz1-0/+8
rdar://32195226 llvm-svn: 303048
2017-05-12[index] Index template specialization arguments for function templatsAlex Lorenz1-0/+22
Also ensure that class template specialization arguments are covered rdar://31812032 llvm-svn: 302918
2017-05-04[Index] The relation between the declarations in templateAlex Lorenz1-3/+1
specializations that 'override' declarations in the base template should use the 'specializationOf' relation instead of 'specializationOf | overrideOf'. The indexer relations are meant to be orthogonal, so 'specializationOf' is better than the combined relation. llvm-svn: 302136
2017-04-27[index] Mark the ObjC implicit accessor method definitions as 'dynamic' as wellArgyrios Kyrtzidis1-4/+4
llvm-svn: 301548
2017-04-25[index] Index type source info for class specializationsAlex Lorenz1-0/+3
rdar://31758344 llvm-svn: 301315
2017-04-25[index] Record the 'SpecializationOf' relation for function specializationsAlex Lorenz1-0/+4
rdar://31603531 llvm-svn: 301310
2017-04-24[index] The relation between the declarations in template specializationsAlex Lorenz1-4/+60
that 'override' declarations in the base template should be recorded This can be used for improved "go to definition" feature in Xcode. rdar://31604739 Differential Revision: https://reviews.llvm.org/D32020 llvm-svn: 301180
2017-04-21[index] Take advantage of 'external_source_symbol' attribute for indexing ↵Argyrios Kyrtzidis1-28/+24
purposes - Ignore decls marked as 'generated_declaration' - Include the 'defined_in' in the USR for additional namespacing llvm-svn: 300949
2017-04-21[index] For 'transparent' tag typedefs, ignore their tag referenceArgyrios Kyrtzidis1-2/+3
llvm-svn: 300948
2017-04-20[index] Record class template specializations using a new 'SpecializationOf'Alex Lorenz1-2/+12
relationship rdar://31603531 Differential Revision: https://reviews.llvm.org/D32010 llvm-svn: 300832
2017-03-21[index/AST] Determine if a typedef shares a name and spelling location with ↵Argyrios Kyrtzidis1-2/+3
its underlying tag type In such a case, as when using the NS_ENUM macro, for indexing purposes treat the typedef as 'transparent', meaning we treat its references as symbols of the underlying tag symbol. Also provide a libclang API to check for such typedefs. llvm-svn: 298392
2017-03-17[index] For C++ constructors/destructors, add references to the parent type ↵Argyrios Kyrtzidis1-0/+9
where its name appears in definitions and declarations Patch by Nathan Hawes! https://reviews.llvm.org/D30730 llvm-svn: 298170
2017-03-16[index/AST] Add references for ObjC getter=/setter= property attributes and ↵Argyrios Kyrtzidis1-2/+21
related property getter/setter role fixes This enhances the AST to keep track of locations of the names in those ObjC property attributes, and reports them for indexing. Patch by Nathan Hawes! https://reviews.llvm.org/D30907 llvm-svn: 297972
2017-03-04[index] ObjC: Improve handling of typedefs as base names in ObjC interface ↵Argyrios Kyrtzidis1-8/+27
declarations - Report the typedef reference occurrence - Mark super or protocol references as 'implicit' when they come from a typedef. llvm-svn: 296974
2017-02-17[index] Improvde how we handle synthesized ObjC properties and the ↵Argyrios Kyrtzidis1-30/+57
associated ivars. Related synthesized properties with the ivar they use with the 'accessor' relation, and make sure we mark them 'implicit' when appropriate. Patch by Nathan Hawes! https://reviews.llvm.org/D30012 llvm-svn: 295416
2017-01-26[index] When indexing an ObjC method declaration use its base name for the ↵Argyrios Kyrtzidis1-1/+7
location. Instead of using the location of the beginning '-'/'+'. This is consistent with location used for function decls and ObjC method calls where we use the base name as the location as well. llvm-svn: 293134
2017-01-11[index] Ignore invalid ObjC categories.Argyrios Kyrtzidis1-5/+6
We currently are unable to get a USR for those and it doesn't seem useful to try to index them. llvm-svn: 291705
2017-01-11[index] Add 'IBTypeOf' relation for ObjC methods marked with IBAction and ↵Argyrios Kyrtzidis1-4/+13
properties with IBOutletCollection. llvm-svn: 291703
2016-10-25[index] Fixes for locations and relations in Objective C categories and ↵Argyrios Kyrtzidis1-9/+37
getters/setters - Add entries for protocols on categories - Add relation between categories and class they extend - Add relation between getters/setters and their corresponding property - Use category name location as the location of category decls/defs if it has one llvm-svn: 285120
2016-06-24Use more ArrayRefsDavid Majnemer1-2/+2
No functional change is intended, just a small refactoring. llvm-svn: 273647
2016-03-09[index] libclang: Make sure to treat forward ObjC protocols as ↵Argyrios Kyrtzidis1-4/+4
ObjCProtocolRef declarations, and fix related crash. rdar://25035376 llvm-svn: 262985
2016-03-03[index] Report references of ObjC super class/protocols in interfaces and ↵Argyrios Kyrtzidis1-6/+31
protocols. llvm-svn: 262584
2016-02-12[libclang] Separate the underlying indexing functionality of libclang and ↵Argyrios Kyrtzidis1-0/+429
introduce it into the clangIndex library. It is a general goodness for libclang itself to mostly be a wrapper of functionality provided by the libraries. llvm-svn: 260760