diff options
author | Eduardo Caldas <ecaldas@google.com> | 2020-08-20 15:47:48 +0000 |
---|---|---|
committer | Eduardo Caldas <ecaldas@google.com> | 2020-08-21 08:01:29 +0000 |
commit | 85c15f17cc684b35cdb4a5f3a76d45160de7b597 (patch) | |
tree | 09308ad98256666558235c6c89399676b141612f /clang/lib/Tooling/Syntax/BuildTree.cpp | |
parent | acf0bb41e45c50c0f4e7310038d85101d4c1ef37 (diff) | |
download | llvm-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.cpp | 10 |
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(), |