11 Commits

Author SHA1 Message Date
Argyrios Kyrtzidis
898c241b26 [index] C++: Improve handling of typedefs as base names in C++ class declarations
Report the typedef as reference, and desugar it to report the underlying class as an
implicit 'base' reference.
Reporting the underlying base class for 'base' relations matches the ObjC handling and
leads to a simpler model.

llvm-svn: 296975
2017-03-04 17:54:56 +00:00
Argyrios Kyrtzidis
7d90ed0ac9 [index] USR generation: use getTemplateArgs() instead of getTemplateInstantiationArgs()
Otherwise we may end up creating a different USR for the definition of a function, vs its declaration.

llvm-svn: 295191
2017-02-15 16:16:27 +00:00
Argyrios Kyrtzidis
df60aa83a3 [index] Add 'contained-by' relation between references and their lexical container.
llvm-svn: 291700
2017-01-11 20:51:10 +00:00
Argyrios Kyrtzidis
e24f5e204b [index] Introduce SymbolSubKind for reporting language-specific details.
Initially reports if a constructor symbol is a copy or move constructor.

llvm-svn: 291409
2017-01-08 23:21:35 +00:00
Argyrios Kyrtzidis
9d8ab72a69 [index] Handle properly C++14's template variables.
- Infer the right symbol kind.
- Provide a templated USR, similar to how we handle class templates.

rdar://28980398

llvm-svn: 286154
2016-11-07 21:20:15 +00:00
Argyrios Kyrtzidis
3e5b61f7da [index] Make sure to mark class template symbols as having 'generic' sub-kind.
llvm-svn: 286153
2016-11-07 21:20:08 +00:00
Argyrios Kyrtzidis
f12918d218 [index] Fix assertion hit when handling a declaration of C++'s 'operator new' function.
Part of this is to allow creating a USR for the canonical decl of that which is implicit and does
not have a source location.

rdar://28978992

llvm-svn: 285868
2016-11-02 23:42:33 +00:00
Argyrios Kyrtzidis
f60c395e84 [index] Fix crash with indexing designated init expressions inside templates.
rdar://27452869

llvm-svn: 277570
2016-08-03 05:38:53 +00:00
Ben Langmuir
443913f4d6 [index] Remove redundancy between symbol kind and language
Condense the ObjCKIND and CXXKIND options into just KIND, since the
language was already specified on a per-symbol basis and this
information was redundant. This only changes the internal
representation; naturally the libclang interface remains the same.

llvm-svn: 264423
2016-03-25 17:01:59 +00:00
Argyrios Kyrtzidis
d97ec18fe4 [index] Use ',' to separate symbol roles when printing.
llvm-svn: 262205
2016-02-29 07:55:51 +00:00
Argyrios Kyrtzidis
d571908445 [AST/index] Introduce an option 'SuppressTemplateArgsInCXXConstructors' in printing policy.
Enable it for USRs and names when indexing.
Forward references can have different template argument names; including them
makes USRs and names unstable, since the name depends on whether we saw a forward reference or not.

llvm-svn: 260866
2016-02-15 01:32:36 +00:00