Samuel Benzaquen
922bef4f38
[ASTMatchers] Add matcher hasAnyName.
...
Summary: Add matcher hasAnyName as an optimization over anyOf(hasName(),...)
Reviewers: alexfh
Subscribers: klimek, cfe-commits
Differential Revision: http://reviews.llvm.org/D17163
llvm-svn: 261574
2016-02-22 21:13:02 +00:00
Aaron Ballman
eb7e5d9074
Add an AST matcher for real floating-point types. e.g., float, double, long double, but not complex.
...
llvm-svn: 261221
2016-02-18 16:36:01 +00:00
Aaron Ballman
232e63d00b
Add a nullPointerConstant() AST matcher to handle variations of null pointer constants in one matcher.
...
llvm-svn: 261008
2016-02-16 21:02:23 +00:00
Aaron Ballman
7e7b7b2def
Reapply r259210 with a fix for RegistryTest.cpp.
...
Patch by Richard Thomson.
llvm-svn: 259359
2016-02-01 14:11:47 +00:00
Hans Wennborg
2b79910d8b
Revert r259210 "Extend hasType narrowing matcher for TypedefDecls, add functionProtoType matcher for FunctionProtoType nodes, extend parameterCountIs to FunctionProtoType nodes."
...
It didn't pass check-clang.
llvm-svn: 259218
2016-01-29 18:24:34 +00:00
Aaron Ballman
fb9d0e354d
Extend hasType narrowing matcher for TypedefDecls, add functionProtoType matcher for FunctionProtoType nodes, extend parameterCountIs to FunctionProtoType nodes.
...
Patch by Richard Thomson
llvm-svn: 259210
2016-01-29 17:03:11 +00:00
Aaron Ballman
a681151ebd
Improving documentation for the isMoveAssignmentOperator AST matcher.
...
Patch by Jonathan Coe.
llvm-svn: 258628
2016-01-23 17:49:18 +00:00
Aaron Ballman
672dde2b3e
Properly encode the < entity; it was missing the semicolon. Regenerating the AST matcher reference after fixing the issue. Thanks to Richard for noticing the issue and bringing it to my attention!
...
llvm-svn: 258579
2016-01-22 23:15:00 +00:00
Aaron Ballman
31bde8762e
Add am AST matcher for isMoveAssignmentOperator.
...
Patch by Jonathan Coe.
llvm-svn: 258573
2016-01-22 22:37:09 +00:00
Nico Weber
a415a1d0d7
Add an isVirtualAsWritten AST matcher.
...
http://reviews.llvm.org/D16394
llvm-svn: 258415
2016-01-21 17:56:24 +00:00
Aaron Ballman
c35724cc72
When dumping documentation for AST matchers, do something more useful with \see doxygen commands. Ideally this would link to the target of \see, but for now it translates \see into "See also: "
...
Regenerate the AST documentation for this new functionality.
llvm-svn: 258401
2016-01-21 15:18:25 +00:00
Aaron Ballman
2b6963fce9
Add AST matcher support for FunctionDecls with the hasBody matcher.
...
Patch by Aleksei Sidorin.
llvm-svn: 258322
2016-01-20 16:26:48 +00:00
Aaron Ballman
e8295d7980
Add AST matcher for paren expressions.
...
Patch by Adrian Zgorzałek.
llvm-svn: 258321
2016-01-20 16:17:39 +00:00
Aaron Ballman
eb85b04c7e
Add an AST matcher for checking whether a function is defaulted.
...
Patch by Jonathan Coe.
llvm-svn: 258072
2016-01-18 20:37:44 +00:00
Aaron Ballman
d7b18b9f2f
Augments r258042; changes the AST matcher tests to use matchesNot and EXPECT_TRUE instead of EXPECT_FALSE. Adds a matcher test to ensure that static member functions are properly handled. Generates the documentation from the matcher.
...
llvm-svn: 258070
2016-01-18 20:28:57 +00:00
Samuel Benzaquen
30747f72eb
[ASTMatchers] Fix typo in booleanType() doc.
...
Fix typo in booleanType() doc and recreate the
LibASTMatchersReference.html reference document.
llvm-svn: 256284
2015-12-22 21:06:36 +00:00
Aaron Ballman
a60bcdab92
Add a narrowing AST matcher that matches on a FunctionDecl with a non-throwing exception specification.
...
llvm-svn: 254516
2015-12-02 15:23:59 +00:00
Aaron Ballman
6290fc9154
Add an AST matcher for narrowing when a type is volatile-qualified.
...
llvm-svn: 253882
2015-11-23 17:09:24 +00:00
Benjamin Kramer
7d0cc23786
Regenerate ASTMatchersReference without CRLF.
...
llvm-svn: 253654
2015-11-20 07:57:46 +00:00
Benjamin Kramer
611d33a5a2
Fix ASTMatcher reference newlines and make the generator script windows-proof.
...
llvm-svn: 253653
2015-11-20 07:46:19 +00:00
Aaron Ballman
8e7f00b0eb
Re-committing r253473 after hopefully fixing the bot breakage. There was a copy-pasta issue that my local testing did not catch.
...
llvm-svn: 253481
2015-11-18 17:56:55 +00:00
Aaron Ballman
81d17f2f7e
Reverting r253473 while I investigate build bot failures.
...
llvm-svn: 253475
2015-11-18 17:16:01 +00:00
Aaron Ballman
34e0bd40e4
Adding AST matchers for VarDecl storage durations. Can now determine whether a VarDecl has automatic, static, or thread storage duration. This also updates the documentation for matchers, which appear to be missing some previous additions.
...
llvm-svn: 253473
2015-11-18 17:05:39 +00:00
Eric Fiselier
3acf5fdd88
Add an AST node matcher for TemplateTypeParmDecl objects.
...
llvm-svn: 250602
2015-10-17 02:34:44 +00:00
Matthias Gehre
2cf7e803bb
Add decayedType and hasDecayedType AST matchers
...
Summary: Add decayedType and hasDecayedType AST matchers
Reviewers: klimek
Subscribers: klimek, cfe-commits
Differential Revision: http://reviews.llvm.org/D13639
llvm-svn: 250114
2015-10-12 21:46:07 +00:00
Aaron Ballman
478a8eb2b6
Adding an AST node matcher for NonTypeTemplateParmDecl objects.
...
llvm-svn: 249341
2015-10-05 19:44:42 +00:00
Aaron Ballman
3fd6c110be
Adding a narrowing AST matcher for FunctionDecl::isVariadic(), plus tests and documentation.
...
llvm-svn: 249321
2015-10-05 14:41:27 +00:00
Aaron Ballman
512fb64765
Rename AST node matchers to match the AST node names directly. Part of this rename also splits recordDecl() (which used to match CXXRecordDecl) into recordDecl() (that matches RecordDecl) and cxxRecordDecl (that matches CXXRecordDecl). Also adds isStruct(), isUnion(), and isClass() narrowing matchers for RecordDecl objects.
...
llvm-svn: 247885
2015-09-17 13:30:52 +00:00
Aaron Ballman
b85be665b0
Fixed HasDeclarationMatcher to properly convert all types into decls where possible. Added objcObjectPointerType(), objcInterfaceDecl(), templateTypeParmType(), injectedClassNameType(), and unresolvedUsingTypenameDecl(). Updated documentation for pointerType() to call out that it does not match ObjCObjectPointerType types. Changed pointsTo() to handle ObjCObjectPointerType as well as PointerType.
...
While this may seem like a lot of unrelated changes, they all relate back to fixing HasDeclarationMatcher.
This now allows us to write a matcher like:
varDecl(hasType(namedDecl(hasName("Foo"))))
that matches code using typedefs, objc interfaces, template type parameters, injected class names, or unresolved using typenames.
llvm-svn: 247404
2015-09-11 11:51:24 +00:00
Aaron Ballman
6e14652550
Updating the AST matcher documentation with a new entry; NFC.
...
llvm-svn: 246324
2015-08-28 19:39:56 +00:00
Aaron Ballman
6c79f352b8
Adding an AST matcher for namespaceAliasDecl.
...
llvm-svn: 246322
2015-08-28 19:39:21 +00:00
Aaron Ballman
11825f2592
Add AST narrowing matchers for inline and anonymous namespaces. Since the inline keyword can also be specified on a FunctionDecl, this is a polymorphic matcher.
...
llvm-svn: 245337
2015-08-18 19:55:20 +00:00
Manuel Klimek
5d093286f0
Fix AST matcher documentation.
...
Fix a bug in the matcher docs where callExpr(on(...)) was in the examples,
but didn't work (on() only works for memberCallExpr).
Fix a bug in the doc dump script that was introduced in r231575 when
removing a regexp capture without adapting the code that uses the
captures.
llvm-svn: 245040
2015-08-14 11:47:51 +00:00
Aaron Ballman
b2e2c57419
Add missing documentation for conversionDecl; NFC.
...
llvm-svn: 244669
2015-08-11 21:12:46 +00:00
Aaron Ballman
6f6d0b6c5a
Add a polymorphic AST matcher for testing whether a constructor or a conversion declaration is marked as explicit or not.
...
llvm-svn: 244666
2015-08-11 21:09:52 +00:00
Aaron Ballman
ed455d4062
Add an AST matcher to match member intializers of a CXXCtorInitializer.
...
llvm-svn: 244662
2015-08-11 20:42:00 +00:00
Aaron Ballman
1ca258e6a8
Add AST matchers for narrowing constructors that are default, copy, or move constructors, as well as functionality to determine whether a ctor initializer is a base initializer.
...
llvm-svn: 244036
2015-08-05 12:11:30 +00:00
Aaron Ballman
41143bb573
Add an AST matcher, isFinal(), for testing whether a method or class declaration are marked final.
...
llvm-svn: 243107
2015-07-24 12:35:41 +00:00
Aaron Ballman
3f07e7b063
Updating the documentation for the hasAttr AST matcher, which behaves somewhat differently when used within clang-query. Fixes PR24217.
...
llvm-svn: 243029
2015-07-23 17:54:59 +00:00
Aaron Ballman
079d3e152d
Something was unbalanced, and it wasn't the parentheses. ;-) Reverts r242915.
...
llvm-svn: 242927
2015-07-22 20:02:00 +00:00
Aaron Ballman
cd1646823b
Balancing parenthesis in comments and documentation; NFC.
...
llvm-svn: 242915
2015-07-22 17:51:42 +00:00
Aaron Ballman
3991846c33
Add the ability to AST match a variable declaration that is an exception variable.
...
llvm-svn: 242303
2015-07-15 17:11:21 +00:00
Aaron Ballman
9b869aa4a1
Implement an AST matcher for C++ exception catch handlers that can catch any exception type (...).
...
llvm-svn: 241256
2015-07-02 12:53:22 +00:00
Samuel Benzaquen
ef621f43ff
Add translationUnitDecl matcher.
...
Summary: Add translationUnitDecl matcher.
Reviewers: alexfh
Subscribers: klimek, cfe-commits
Differential Revision: http://reviews.llvm.org/D7512
llvm-svn: 228694
2015-02-10 14:46:45 +00:00
Manuel Klimek
d3aa1f4a63
Re-apply r222646 (was reverted in r222667). Adding 4 ASTMatchers: typedefDecl, isInMainFile, isInSystemFile, isInFileMatchingName
...
Change to original: ifndef out tests in Windows due to /-separated
paths.
Summary:
Often one is only interested in matches within the main-file or matches
that are not within a system-header, for which this patch adds
isInMainFile and isInSystemFile. They take no arguments and narrow down
the matches.
The isInFileMatchingName is mainly thought for interactive
clang-query-sessions, to make a matcher more specific without restarting
the session with the files you are interested in for that moment. It
takes a string that will be used as regular-expression to match the
filename of where the matched node is expanded.
Patch by Hendrik von Prince.
llvm-svn: 222765
2014-11-25 17:01:06 +00:00
Aaron Ballman
6265102c17
Reverting r222646; the tests do not pass on Windows. Also reverts r222664, which was required for r222646 to compile with Visual Studio 2012.
...
llvm-svn: 222667
2014-11-24 17:39:44 +00:00
Manuel Klimek
da50ff8e4a
Adding 4 ASTMatchers: typedefDecl, isInMainFile, isInSystemFile, isInFileMatchingName
...
Summary:
Often one is only interested in matches within the main-file or matches
that are not within a system-header, for which this patch adds
isInMainFile and isInSystemFile. They take no arguments and narrow down
the matches.
The isInFileMatchingName is mainly thought for interactive
clang-query-sessions, to make a matcher more specific without restarting
the session with the files you are interested in for that moment. It
takes a string that will be used as regular-expression to match the
filename of where the matched node is expanded.
Patch by Hendrik von Prince.
llvm-svn: 222646
2014-11-24 09:10:56 +00:00
Manuel Klimek
7735e40a87
Implement various matchers around template argument handling.
...
llvm-svn: 219408
2014-10-09 13:06:22 +00:00
Manuel Klimek
94ad0bf10d
Add matcher for linkage specification
...
Patch by Jacques Pienaar.
llvm-svn: 217135
2014-09-04 08:51:06 +00:00
Manuel Klimek
3fe8a38110
Add hasAttr matcher for declarations.
...
Delete special-case CUDA attribute matchers.
Patch by Jacques Pienaar.
llvm-svn: 216379
2014-08-25 11:23:50 +00:00