Eric Liu
09ee48e2af
[ASTMatchers] Regenerate documentation after r325678
...
llvm-svn: 325682
2018-02-21 14:22:42 +00:00
Julie Hockett
239d25a158
Add hasTrailingReturn AST matcher
...
Adds AST matcher for a FunctionDecl that has a trailing return type.
Differential Revision: https://reviews.llvm.org/D42273
llvm-svn: 323158
2018-01-22 22:45:23 +00:00
Fangrui Song
55942abb92
[ASTMatchers] [NFC] Fix code examples
...
Subscribers: klimek, cfe-commits
Differential Revision: https://reviews.llvm.org/D42213
llvm-svn: 323157
2018-01-22 22:34:15 +00:00
Haojian Wu
9c3be3a4e5
[ASTMatcher] Add isScoped matcher for enumDecl.
...
Summary:
Reviewers: bkramer, aaron.ballman
Subscribers: aaron.ballman, cfe-commits, klimek
Differential Revision: https://reviews.llvm.org/D42185
llvm-svn: 322826
2018-01-18 09:47:57 +00:00
Roman Lebedev
6c3871b139
[ASTMatchers] Add isNoReturn() match narrower for FunctionDeclarations
...
Reviewers: aaron.ballman
Reviewed By: aaron.ballman
Subscribers: dblaikie, klimek, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D41455
llvm-svn: 322746
2018-01-17 19:40:55 +00:00
Benjamin Kramer
ae7ff385c6
Update dump_ast_matchers for many recent changes.
...
The html file hasn't been updated in a long time so there are quite a
few changes in there. No matchers were removed though.
llvm-svn: 322687
2018-01-17 16:50:14 +00:00
Aaron Ballman
813e36c2c1
Add the hasDefinition() AST matcher to match class declarations that also have a definition.
...
Patch by Julie Hockett.
llvm-svn: 319360
2017-11-29 21:21:51 +00:00
Adam Balogh
da488a65e2
[ASTMatchers] Matchers for new[] operators
...
Two new matchers for `CXXNewExpr` are added which may be useful e.g. in
`clang-tidy` checkers. One of them is `isArray` which matches `new[]` but not
plain `new`. The other one, `hasArraySize` matches `new[]` for a given size.
llvm-svn: 318909
2017-11-23 12:43:20 +00:00
Aaron Ballman
5f8980a995
Add an AST matcher for hasDefaultArgument() to match on parameter declarations that have a default value.
...
Patch by Julie Hockett.
llvm-svn: 318794
2017-11-21 19:22:34 +00:00
Dave Lee
be39868bfc
Make isDefinition matcher support ObjCMethodDecl
...
Summary:
Allow the `isDefinition()` matcher to apply to `ObjCMethodDecl` nodes, in
addition to those it already supports. For whatever reason, `ObjCMethodDecl`
does not inherit from `FunctionDecl` and so this is specialization is necessary.
Reviewers: aaron.ballman, malcolm.parsons, alexshap
Reviewed By: aaron.ballman
Subscribers: cfe-commits, klimek
Differential Revision: https://reviews.llvm.org/D39948
llvm-svn: 318152
2017-11-14 14:17:26 +00:00
Dave Lee
bfb990b783
Fix AST matcher documentation typo
...
llvm-svn: 317993
2017-11-11 23:53:27 +00:00
Dave Lee
0934fdc3a5
Add ObjC exception statement AST matchers
...
Summary: Add AST matchers for Objective-C @throw, @try, @catch and @finally.
Reviewers: aaron.ballman, malcolm.parsons, alexshap, compnerd
Reviewed By: aaron.ballman
Subscribers: cfe-commits, klimek
Differential Revision: https://reviews.llvm.org/D39940
llvm-svn: 317992
2017-11-11 22:46:15 +00:00
Dave Lee
55540a0ce7
Add objcCategoryImplDecl matcher
...
Summary:
Add `objcCategoryImplDecl` which matches ObjC category definitions
(`@implementation`). This matcher complements `objcCategoryDecl` (`@interface`)
which was added in D30854.
Reviewers: aaron.ballman, malcolm.parsons, alexshap
Reviewed By: aaron.ballman
Subscribers: klimek, cfe-commits
Differential Revision: https://reviews.llvm.org/D39293
llvm-svn: 316670
2017-10-26 15:53:37 +00:00
Alexander Shaposhnikov
f681c4e5a9
[clang] Fix isExternC matcher docs
...
The wording in the documentation for the matcher isExternC
appears to be misleading since this matcher
is applicable to functions and variables as well.
This diff changes the comment and regenerates the html file.
Differential revision: https://reviews.llvm.org/D38151
llvm-svn: 314022
2017-09-22 19:29:38 +00:00
Dave Lee
e6d362cea8
Add objcImplementationDecl matcher
...
Summary:
Add the `objcImplementationDecl` matcher. See related: D30854
Tested with:
```
./tools/clang/unittests/ASTMatchers/ASTMatchersTests
```
Reviewers: aaron.ballman, compnerd, alexshap
Reviewed By: aaron.ballman
Subscribers: klimek, cfe-commits
Differential Revision: https://reviews.llvm.org/D37643
llvm-svn: 312889
2017-09-10 21:00:15 +00:00
Manuel Klimek
696e505278
Unify and simplify the behavior of the hasDeclaration matcher.
...
Originally, we weren't able to match on Type nodes themselves (only QualType),
so the hasDeclaration matcher was initially written to give what we thought are
reasonable results for QualType matches.
When we chagned the matchers to allow matching on Type nodes, it turned out
that the hasDeclaration matcher was by chance written templated enough to now
allow hasDeclaration to also match on (some) Type nodes.
This patch change the hasDeclaration matcher to:
a) work the same on Type and QualType nodes,
b) be completely explicit about what nodes we can match instead of just allowing
anything with a getDecl() to match,
c) explicitly control desugaring only one level in very specific instances.
d) adds hasSpecializedTemplate and tagType matchers to allow migrating
existing use cases that now need more explicit matchers
Note: This patch breaks clang-tools-extra. The corresponding patch there
is approved and will land in a subsequent patch.
Differential Revision: https://reviews.llvm.org/D27104
llvm-svn: 309809
2017-08-02 13:04:44 +00:00
Clement Courbet
43bdba4086
[ASTMatchers][NFC] integerLiteral(): Mention negative integers in
...
documentation.
Trying to match integerLiteral(-1) will silently fail, because an numeric
literal is always positive.
- Update the documentation to explain how to match negative numeric
literals.
- Add a unit test.
Differential Revision: https://reviews.llvm.org/D35196
llvm-svn: 307663
2017-07-11 15:45:22 +00:00
Peter Wu
a9244b57ff
[ASTMatchers] Add clang-query support for equals matcher
...
Summary:
This allows the clang-query tool to use matchers like
"integerLiteral(equals(32))". For this to work, an overloaded function
is added for each possible parameter type.
Reviewed By: aaron.ballman
Differential Revision: https://reviews.llvm.org/D33094
llvm-svn: 305022
2017-06-08 22:00:58 +00:00
Jakub Kuderski
64b6c78e94
Add cxxStdInitializerListExpr AST matcher
...
Summary:
This adds a new ASTMatcher for CXXStdInitializerListExprs that matches C++ initializer list expressions.
The primary motivation is to use it to fix [[ https://bugs.llvm.org/show_bug.cgi?id=32896 | PR32896 ]] (review here [[ https://reviews.llvm.org/D32767 | D32767 ]]).
Reviewers: alexfh, Prazek, aaron.ballman
Reviewed By: alexfh, aaron.ballman
Subscribers: malcolm.parsons, cfe-commits, klimek
Differential Revision: https://reviews.llvm.org/D32810
llvm-svn: 302287
2017-05-05 21:01:12 +00:00
Eric Liu
285f804282
[ASTMatchers] add typeAliasTemplateDecl matcher.
...
Reviewers: hokein, aaron.ballman
Reviewed By: aaron.ballman
Subscribers: aaron.ballman, cfe-commits, klimek
Differential Revision: https://reviews.llvm.org/D28671
llvm-svn: 298912
2017-03-28 12:56:47 +00:00
Aaron Ballman
9fd6ee6a78
Add AST matchers for ObjCProtocolDecl, ObjCCategoryDecl, ObjCMethodDecl, ObjCIvarDecl, and ObjCPropertyDecl.
...
Patch by Dave Lee.
llvm-svn: 297882
2017-03-15 20:14:25 +00:00
Malcolm Parsons
def8f90e67
Fix documentation typo.
...
llvm-svn: 292595
2017-01-20 09:54:26 +00:00
Malcolm Parsons
4ca3d18b96
[ASTMatchers] Add hasInClassInitializer traversal matcher for FieldDecl.
...
Summary:
I needed to know whether a FieldDecl had an in-class
initializer for D26453. I used a narrowing matcher there, but a
traversal matcher might be generally useful.
Reviewers: sbenza, bkramer, klimek, aaron.ballman
Subscribers: aaron.ballman, Prazek, cfe-commits
Differential Revision: https://reviews.llvm.org/D28034
llvm-svn: 290492
2016-12-24 13:35:14 +00:00
Malcolm Parsons
81e48b26bc
[ASTMatchers] Fix doc for hasBitWidth
...
llvm-svn: 290491
2016-12-24 13:22:26 +00:00
Malcolm Parsons
77f039bf58
[ASTMatcher] Add hasReplacementType matcher for SubstTemplateTypeParmType
...
Summary: Needed for https://reviews.llvm.org/D27166
Reviewers: sbenza, bkramer, klimek
Subscribers: aemerson, cfe-commits
Differential Revision: https://reviews.llvm.org/D27447
llvm-svn: 289042
2016-12-08 11:46:22 +00:00
Manuel Klimek
a37e110def
Adds hasUnqualifiedDesugaredType to allow matching through type sugar.
...
Differential Revision: https://reviews.llvm.org/D27207
llvm-svn: 288366
2016-12-01 15:45:06 +00:00
Artem Dergachev
ded92a9274
[ASTMatchers] Fix a typo in cStyleCastExpr() HTML docs as well. NFC.
...
llvm-svn: 286651
2016-11-11 22:34:53 +00:00
Malcolm Parsons
7d96c334d2
[ASTMatcher] Add CXXNewExpr support to hasDeclaration
...
Reviewers: sbenza, lukasza, aaron.ballman, klimek
Subscribers: lukasza, sbenza, cfe-commits
Differential Revision: https://reviews.llvm.org/D26032
llvm-svn: 285644
2016-10-31 22:04:07 +00:00
Haojian Wu
398a8eaf33
[ASTMatcher] Clarify isStaticStorageClass and hasStaticStorageDuration documents.
...
Reviewers: aaron.ballman
Subscribers: klimek, cfe-commits
Differential Revision: https://reviews.llvm.org/D24928
llvm-svn: 282474
2016-09-27 07:53:20 +00:00
Haojian Wu
b3d2546c43
[ASTMatcher] Add isStaticStorageClass matcher for varDecl and functionDecl.
...
Reviewers: klimek
Subscribers: cfe-commits, klimek
Differential Revision: https://reviews.llvm.org/D24821
llvm-svn: 282415
2016-09-26 16:01:52 +00:00
Sylvestre Ledru
61122c4fd0
Fix a typo in the doc: overriden -> overridden
...
llvm-svn: 279942
2016-08-28 20:22:34 +00:00
Aaron Ballman
75de707d84
Correct the documentation for isSignedInteger() and isUnsignedInteger().
...
Patch by Visoiu Mistrih Francis
llvm-svn: 279055
2016-08-18 12:26:17 +00:00
Aaron Ballman
a086b9fd15
Add an AST matcher for external formal linkage.
...
Patch by Visoiu Mistrih
llvm-svn: 278926
2016-08-17 13:10:42 +00:00
Martin Bohme
8cef2c2f2d
[ASTMatchers] Add matchers canReferToDecl() and hasUnderlyingDecl()
...
Summary: Required for D22220
Reviewers: sbenza, klimek, aaron.ballman, alexfh
Subscribers: alexfh, klimek, cfe-commits
Differential Revision: https://reviews.llvm.org/D23004
llvm-svn: 278123
2016-08-09 15:07:52 +00:00
Benjamin Kramer
87e6d99487
Make isExternC work on VarDecls too.
...
llvm-svn: 277712
2016-08-04 10:02:03 +00:00
Haojian Wu
99e39a7af8
Fix a typo in document.
...
llvm-svn: 277174
2016-07-29 17:30:13 +00:00
Haojian Wu
b33b02e9f0
[ASTMatcher] Add templateName matcher.
...
Reviewers: klimek
Subscribers: klimek, cfe-commits
Differential Revision: https://reviews.llvm.org/D22963
llvm-svn: 277155
2016-07-29 15:45:11 +00:00
Haojian Wu
d898b0982a
[ASTMatcher] Add hasTemplateArgument/hasAnyTemplateArgument support in functionDecl.
...
Reviewers: klimek
Subscribers: klimek, cfe-commits
Differential Revision: https://reviews.llvm.org/D22957
llvm-svn: 277142
2016-07-29 13:57:27 +00:00
Clement Courbet
425175934e
[ASTMatchers] isSignedInteger() and isUnsignedInteger()
...
Complementary to isInteger(), these match signed and unsigned integers
respectively.
Review: http://reviews.llvm.org/D21989
llvm-svn: 275157
2016-07-12 06:36:00 +00:00
Aaron Ballman
5c574341f5
Add AST matchers for handling bit-fields and narrowing based on their width.
...
llvm-svn: 274652
2016-07-06 18:25:16 +00:00
Clement Courbet
6ecaec83ba
[ASTMatchers] New forEachOverriden matcher.
...
Matches methods overridden by the given method.
llvm-svn: 274531
2016-07-05 07:49:31 +00:00
Haojian Wu
e775de8171
[ASTMatcher] Add a node matcher for EnumType.
...
Reviewers: aaron.ballman
Subscribers: cfe-commits, klimek
Differential Revision: http://reviews.llvm.org/D21860
llvm-svn: 274217
2016-06-30 07:50:01 +00:00
Samuel Benzaquen
49385c78bc
[ASTMatchers] Add isLambda() matcher.
...
llvm-svn: 274015
2016-06-28 14:08:56 +00:00
Cong Liu
8a02efb143
IgnoringImplicit matcher.
...
llvm-svn: 273659
2016-06-24 09:38:03 +00:00
Chandler Carruth
b1bcd5dc7b
Revert "[ASTMatchers] New forEachOverriden matcher."
...
This reverts commit r272386. It doesn't compile with MSVC and those bots
have been red the entire day as a consequence.
llvm-svn: 272453
2016-06-11 04:45:38 +00:00
Clement Courbet
8251ebfac6
[ASTMatchers] New forEachOverriden matcher.
...
Matches methods overridden by the given method.
llvm-svn: 272386
2016-06-10 11:54:43 +00:00
Aaron Ballman
230ad97156
Make isNoThrow and hasDynamicExceptionSpec polymorphic so they can be used with both functionDecl and functionPrototype matchers.
...
Patch by Don Hinton.
llvm-svn: 272028
2016-06-07 17:34:45 +00:00
Aaron Ballman
ba8dbbe86f
Adding an AST matcher to ignore parenthesis in *types* (rather than expressions). This is required for traversing certain types (like function pointer types).
...
llvm-svn: 271927
2016-06-06 18:52:17 +00:00
Etienne Bergeron
5500f95a00
[ASTMatchers] Add support of hasCondition for SwitchStmt.
...
Summary:
The switch statement could be added to the hasCondition matcher.
Example:
```
clang-query> match switchStmt(hasCondition(ignoringImpCasts(declRefExpr())))
```
Output:
```
Match #1 :
Binding for "root":
SwitchStmt 0x2f9b528 </usr/local/google/home/etienneb/examples/enum.cc:35:3, line:38:3>
|-<<<NULL>>>
|-ImplicitCastExpr 0x2f9b510 <line:35:11> 'int' <IntegralCast>
| `-ImplicitCastExpr 0x2f9b4f8 <col:11> 'enum Color' <LValueToRValue>
| `-DeclRefExpr 0x2f9b4d0 <col:11> 'enum Color' lvalue Var 0x2f9a118 'C' 'enum Color'
`-CompoundStmt 0x2f9b610 <col:14, line:38:3>
|-CaseStmt 0x2f9b578 <line:36:3, col:22>
| |-ImplicitCastExpr 0x2f9b638 <col:8> 'int' <IntegralCast>
| | `-DeclRefExpr 0x2f9b550 <col:8> 'enum Size' EnumConstant 0x2f99e40 'Small' 'enum Size'
| |-<<<NULL>>>
| `-ReturnStmt 0x2f9b5d0 <col:15, col:22>
| `-IntegerLiteral 0x2f9b5b0 <col:22> 'int' 1
`-DefaultStmt 0x2f9b5f0 <line:37:3, col:12>
`-BreakStmt 0x2f9b5e8 <col:12>
1 match.
```
Reviewers: aaron.ballman, sbenza, klimek
Subscribers: klimek, cfe-commits
Differential Revision: http://reviews.llvm.org/D20767
llvm-svn: 271208
2016-05-30 15:25:25 +00:00
Haojian Wu
7751c92582
[ASTMatcher] Add a node matcher for UnresolvedLookupExpr.
...
Reviewers: alexfh, aaron.ballman
Subscribers: aaron.ballman, klimek, cfe-commits
Differential Revision: http://reviews.llvm.org/D20360
llvm-svn: 269916
2016-05-18 12:53:59 +00:00