aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Tooling/Syntax/BuildTree.cpp
diff options
context:
space:
mode:
authorEduardo Caldas <ecaldas@google.com>2020-08-20 15:47:48 +0000
committerEduardo Caldas <ecaldas@google.com>2020-08-21 08:01:29 +0000
commit85c15f17cc684b35cdb4a5f3a76d45160de7b597 (patch)
tree09308ad98256666558235c6c89399676b141612f /clang/lib/Tooling/Syntax/BuildTree.cpp
parentacf0bb41e45c50c0f4e7310038d85101d4c1ef37 (diff)
downloadllvm-85c15f17cc684b35cdb4a5f3a76d45160de7b597.zip
llvm-85c15f17cc684b35cdb4a5f3a76d45160de7b597.tar.gz
llvm-85c15f17cc684b35cdb4a5f3a76d45160de7b597.tar.bz2
[SyntaxTree] Add support for `this`
Differential Revision: https://reviews.llvm.org/D86298
Diffstat (limited to 'clang/lib/Tooling/Syntax/BuildTree.cpp')
-rw-r--r--clang/lib/Tooling/Syntax/BuildTree.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/clang/lib/Tooling/Syntax/BuildTree.cpp b/clang/lib/Tooling/Syntax/BuildTree.cpp
index 37d29a2..3ab52ce 100644
--- a/clang/lib/Tooling/Syntax/BuildTree.cpp
+++ b/clang/lib/Tooling/Syntax/BuildTree.cpp
@@ -950,6 +950,16 @@ public:
return true;
}
+ bool WalkUpFromCXXThisExpr(CXXThisExpr *S) {
+ if (!S->isImplicit()) {
+ Builder.markChildToken(S->getLocation(),
+ syntax::NodeRole::IntroducerKeyword);
+ Builder.foldNode(Builder.getExprRange(S),
+ new (allocator()) syntax::ThisExpression, S);
+ }
+ return true;
+ }
+
bool WalkUpFromParenExpr(ParenExpr *S) {
Builder.markChildToken(S->getLParen(), syntax::NodeRole::OpenParen);
Builder.markExprChild(S->getSubExpr(),