| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
before evaluating it rather than afterwards.
This is groundwork for C++20's P0784R7, where non-trivial destructors
can be constexpr, so we need ExprWithCleanups markers in constant
expressions.
No significant functionality change intended (though this fixes a bug
only visible through libclang / -ast-dump / tooling: we now store the
converted condition on the StaticAssertDecl rather than the original).
llvm-svn: 372368
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
NameReference
Summary:
In current indexing logic we get references to class itself when we see
a constructor/destructor which is only syntactically true. Semantically
this information is not correct. This patch marks that reference as
NameReference to let clients deal with it.
Reviewers: akyrtzi, gribozavr, nathawes, benlangmuir
Reviewed By: gribozavr, nathawes
Subscribers: nathawes, arphaman, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D58814
llvm-svn: 355668
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Indexing context was skipping explicit template instantiations as well.
This patch makes sure it only skips implicit ones.
Subscribers: arphaman, jdoerfert, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D58189
llvm-svn: 354262
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This makes BindingDecl's of the same name have different USRs, so that references can be correctly attributed.
int a[1] = {};
{ auto [x] = a; x; }
{ auto [x] = a; x; }
Reviewers: akyrtzi, arphaman, rsmith, hokein
Reviewed By: hokein
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D52445
llvm-svn: 344010
|
|
|
|
|
|
|
| |
* Create a USR for the occurrences of the 'module' symbol kind
* Record module references for each identifier in an import declaration
llvm-svn: 342484
|
|
|
|
|
|
|
| |
This is useful to directly infer that a method or property is from a protocol interface
at the point of the symbol occurrences.
llvm-svn: 340696
|
|
|
|
|
|
| |
they are present in the ObjC type
llvm-svn: 340109
|
|
|
|
| |
llvm-svn: 336532
|
|
|
|
|
|
|
|
|
|
|
|
| |
Reviewers: akyrtzi, arphaman, sammccall
Reviewed By: sammccall
Subscribers: malaperle, sammccall, cfe-commits
Differential Revision: https://reviews.llvm.org/D48961
llvm-svn: 336524
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
TemplateTemplateParmDecls of alias templates
TemplateTemplateParmDecls of alias templates ended-up serialized as 'file-level decls' which was causing a crash while trying to index a PCH/module file that contained them.
Commit makes sure TemplateTemplateParmDecls are not recorded as such kind of decls.
Fixes crash of rdar://36608297
Differential Revision: https://reviews.llvm.org/D42588
llvm-svn: 323549
|
|
|
|
|
|
|
|
|
| |
The 'decl' role is more canonical than the 'ref'. This helps us establish the
'specialization-of' relation just by looking at decls or defs.
rdar://31884960
llvm-svn: 317832
|
|
|
|
|
|
| |
The starting location is the location of the '.'
llvm-svn: 317596
|
|
|
|
|
|
| |
rdar://35109556
llvm-svn: 317593
|
|
|
|
|
|
|
|
|
|
|
| |
In dependent contexts we end up referencing these, so make sure they
have USRs, and have their declarations indexed. For the most part they
behave like typedefs, but we also need to worry about having multiple
using declarations with the same "name".
rdar://problem/33883650
llvm-svn: 311053
|
|
|
|
|
|
|
|
|
|
|
| |
CXXDeductionGuideDecls can't be referenced so there's no need to output a symbol occurrence for them.
Also handle DeducedTemplateSpecializationTypeLocs in the TypeIndexer so we don't miss the symbol occurrences of the corresponding template decls.
Patch by Nathan Hawes!
Differential Revision: https://reviews.llvm.org/D36641
llvm-svn: 310933
|
|
|
|
|
|
|
|
|
| |
We have the same relation between class properties and getter/setters
that we have for instance properties, so set the same symbol sub-kind.
rdar://problem/32376404
llvm-svn: 308800
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This patch prevents getCanonicalDecl returning nullptr in case it finds
a canonical TemplateDeclaration with no attached TemplatedDecl.
Found by running the indexer over a version of the standard library deep inside
a template metaprogramming mess.
Reviewers: klimek, vsk
Reviewed By: vsk
Subscribers: vsk, arphaman, cfe-commits
Differential Revision: https://reviews.llvm.org/D35212
llvm-svn: 308269
|
|
|
|
|
|
|
|
| |
an empty first selector piece should store the location of the first ':'
rdar://33188656
llvm-svn: 307901
|
|
|
|
|
|
|
|
|
|
|
|
| |
Unless it's one of the special cases (tag, category) that we can handle.
This syncs up the check between handling a decl and handling a relation.
This would cause invalid nameless decls to end up in relations despite
having no name or USR.
rdar://problem/32474406
llvm-svn: 307855
|
|
|
|
|
|
|
|
| |
class template specialization
rdar://33122110
llvm-svn: 307074
|
|
|
|
|
|
|
|
| |
property references
rdar://32375673
llvm-svn: 307016
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
"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
|
|
|
|
|
|
|
|
| |
The global C++17 binding declarations should be indexed as variable symbols.
Differential Revision: https://reviews.llvm.org/D33920
llvm-svn: 305508
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
rdar://32376363
llvm-svn: 303751
|
|
|
|
|
|
|
|
|
| |
from template instantiations should refer to the enum constant in the pattern
enum in the base template
rdar://32325459
llvm-svn: 303651
|
|
|
|
|
|
|
|
| |
refer to the pattern member enum in the base template
rdar://32325459
llvm-svn: 303650
|
|
|
|
|
|
|
|
|
| |
instantiations should refer to the pattern type aliases / typedefs in the base
templates
rdar://32325459
llvm-svn: 303648
|
|
|
|
|
|
|
|
| |
should refer to the pattern fields in the nested records in the base templates
rdar://32352429
llvm-svn: 303647
|
|
|
|
|
|
|
|
| |
to the pattern records in the base templates
rdar://32325459
llvm-svn: 303646
|
|
|
|
|
|
| |
rdar://32323724
llvm-svn: 303568
|
|
|
|
|
|
| |
rdar://32323386
llvm-svn: 303563
|
|
|
|
|
|
| |
rdar://32323315
llvm-svn: 303559
|
|
|
|
|
|
|
|
| |
the reference to the namespace
rdar://32323190
llvm-svn: 303555
|
|
|
|
|
|
|
|
|
| |
source symbols
Patch by Nathan Hawes.
https://reviews.llvm.org/D33346
llvm-svn: 303484
|
|
|
|
|
|
|
|
|
|
| |
looking up a dependent name in a record that derives from itself
rdar://32273000
Differential Revision: https://reviews.llvm.org/D33324
llvm-svn: 303366
|
|
|
|
|
|
| |
rdar://32250025
llvm-svn: 303343
|
|
|
|
|
|
|
|
| |
in a record that has a base without a definition
rdar://32224197
llvm-svn: 303192
|
|
|
|
|
|
|
|
| |
fields in base templates
rdar://32197158
llvm-svn: 303068
|
|
|
|
|
|
| |
rdar://32195226
llvm-svn: 303048
|
|
|
|
|
|
| |
rdar://32195200
llvm-svn: 303046
|
|
|
|
|
|
|
|
| |
in a record that has no definition
rdar://32194921
llvm-svn: 303045
|
|
|
|
|
|
|
|
| |
Also ensure that class template specialization arguments are covered
rdar://31812032
llvm-svn: 302918
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit implements basic support for indexing of dependent declaration
references. Now the indexer tries to find a suitable match in the base template
for a dependent member ref/decl ref/dependent type.
rdar://29158210
Differential Revision: https://reviews.llvm.org/D32972
llvm-svn: 302632
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 301548
|
|
|
|
|
|
| |
rdar://31758344
llvm-svn: 301315
|
|
|
|
|
|
| |
rdar://31603531
llvm-svn: 301310
|
|
|
|
|
|
| |
language then report it accordingly
llvm-svn: 301183
|