diff options
author | Eduardo Caldas <ecaldas@google.com> | 2020-09-11 08:56:10 +0000 |
---|---|---|
committer | Eduardo Caldas <ecaldas@google.com> | 2020-09-11 14:54:18 +0000 |
commit | 4c14ee61b73746b314d83e7c52e03d6527b78105 (patch) | |
tree | 8ed7e9665bfad410bd020dfce751e1dd00f612d9 /clang/lib | |
parent | 324a53205a3af979e3de109fdd52f91781816cba (diff) | |
download | llvm-4c14ee61b73746b314d83e7c52e03d6527b78105.zip llvm-4c14ee61b73746b314d83e7c52e03d6527b78105.tar.gz llvm-4c14ee61b73746b314d83e7c52e03d6527b78105.tar.bz2 |
[SyntaxTree] Rename functions to start with verb
According to LLVM coding standards:
https://llvm.org/docs/CodingStandards.html#name-types-functions-variables-and-enumerators-properly
Differential Revision: https://reviews.llvm.org/D87498
Diffstat (limited to 'clang/lib')
-rw-r--r-- | clang/lib/Tooling/Syntax/BuildTree.cpp | 43 | ||||
-rw-r--r-- | clang/lib/Tooling/Syntax/ComputeReplacements.cpp | 15 | ||||
-rw-r--r-- | clang/lib/Tooling/Syntax/Mutations.cpp | 20 | ||||
-rw-r--r-- | clang/lib/Tooling/Syntax/Nodes.cpp | 8 | ||||
-rw-r--r-- | clang/lib/Tooling/Syntax/Synthesis.cpp | 4 | ||||
-rw-r--r-- | clang/lib/Tooling/Syntax/Tree.cpp | 80 |
6 files changed, 90 insertions, 80 deletions
diff --git a/clang/lib/Tooling/Syntax/BuildTree.cpp b/clang/lib/Tooling/Syntax/BuildTree.cpp index 1942290..8de50dd 100644 --- a/clang/lib/Tooling/Syntax/BuildTree.cpp +++ b/clang/lib/Tooling/Syntax/BuildTree.cpp @@ -366,12 +366,14 @@ private: class syntax::TreeBuilder { public: TreeBuilder(syntax::Arena &Arena) : Arena(Arena), Pending(Arena) { - for (const auto &T : Arena.tokenBuffer().expandedTokens()) + for (const auto &T : Arena.getTokenBuffer().expandedTokens()) LocationToToken.insert({T.location().getRawEncoding(), &T}); } - llvm::BumpPtrAllocator &allocator() { return Arena.allocator(); } - const SourceManager &sourceManager() const { return Arena.sourceManager(); } + llvm::BumpPtrAllocator &allocator() { return Arena.getAllocator(); } + const SourceManager &sourceManager() const { + return Arena.getSourceManager(); + } /// Populate children for \p New node, assuming it covers tokens from \p /// Range. @@ -421,13 +423,13 @@ public: /// Finish building the tree and consume the root node. syntax::TranslationUnit *finalize() && { - auto Tokens = Arena.tokenBuffer().expandedTokens(); + auto Tokens = Arena.getTokenBuffer().expandedTokens(); assert(!Tokens.empty()); assert(Tokens.back().kind() == tok::eof); // Build the root of the tree, consuming all the children. Pending.foldChildren(Arena, Tokens.drop_back(), - new (Arena.allocator()) syntax::TranslationUnit); + new (Arena.getAllocator()) syntax::TranslationUnit); auto *TU = cast<syntax::TranslationUnit>(std::move(Pending).finalize()); TU->assertInvariantsRecursive(); @@ -451,7 +453,7 @@ public: assert(First.isValid()); assert(Last.isValid()); assert(First == Last || - Arena.sourceManager().isBeforeInTranslationUnit(First, Last)); + Arena.getSourceManager().isBeforeInTranslationUnit(First, Last)); return llvm::makeArrayRef(findToken(First), std::next(findToken(Last))); } @@ -540,7 +542,7 @@ private: } void setRole(syntax::Node *N, NodeRole R) { - assert(N->role() == NodeRole::Detached); + assert(N->getRole() == NodeRole::Detached); N->setRole(R); } @@ -552,14 +554,14 @@ private: /// Ensures that added nodes properly nest and cover the whole token stream. struct Forest { Forest(syntax::Arena &A) { - assert(!A.tokenBuffer().expandedTokens().empty()); - assert(A.tokenBuffer().expandedTokens().back().kind() == tok::eof); + assert(!A.getTokenBuffer().expandedTokens().empty()); + assert(A.getTokenBuffer().expandedTokens().back().kind() == tok::eof); // Create all leaf nodes. // Note that we do not have 'eof' in the tree. - for (auto &T : A.tokenBuffer().expandedTokens().drop_back()) { - auto *L = new (A.allocator()) syntax::Leaf(&T); + for (auto &T : A.getTokenBuffer().expandedTokens().drop_back()) { + auto *L = new (A.getAllocator()) syntax::Leaf(&T); L->Original = true; - L->CanModify = A.tokenBuffer().spelledForExpanded(T).hasValue(); + L->CanModify = A.getTokenBuffer().spelledForExpanded(T).hasValue(); Trees.insert(Trees.end(), {&T, L}); } } @@ -572,7 +574,7 @@ private: assert((std::next(It) == Trees.end() || std::next(It)->first == Range.end()) && "no child with the specified range"); - assert(It->second->role() == NodeRole::Detached && + assert(It->second->getRole() == NodeRole::Detached && "re-assigning role for a child"); It->second->setRole(Role); } @@ -581,7 +583,7 @@ private: void foldChildren(const syntax::Arena &A, ArrayRef<syntax::Token> Tokens, syntax::Tree *Node) { // Attach children to `Node`. - assert(Node->firstChild() == nullptr && "node already has children"); + assert(Node->getFirstChild() == nullptr && "node already has children"); auto *FirstToken = Tokens.begin(); auto BeginChildren = Trees.lower_bound(FirstToken); @@ -597,14 +599,15 @@ private: // We need to go in reverse order, because we can only prepend. for (auto It = EndChildren; It != BeginChildren; --It) { auto *C = std::prev(It)->second; - if (C->role() == NodeRole::Detached) + if (C->getRole() == NodeRole::Detached) C->setRole(NodeRole::Unknown); Node->prependChildLowLevel(C); } // Mark that this node came from the AST and is backed by the source code. Node->Original = true; - Node->CanModify = A.tokenBuffer().spelledForExpanded(Tokens).hasValue(); + Node->CanModify = + A.getTokenBuffer().spelledForExpanded(Tokens).hasValue(); Trees.erase(BeginChildren, EndChildren); Trees.insert({FirstToken, Node}); @@ -624,12 +627,12 @@ private: unsigned CoveredTokens = It != Trees.end() ? (std::next(It)->first - It->first) - : A.tokenBuffer().expandedTokens().end() - It->first; + : A.getTokenBuffer().expandedTokens().end() - It->first; R += std::string( - formatv("- '{0}' covers '{1}'+{2} tokens\n", It->second->kind(), - It->first->text(A.sourceManager()), CoveredTokens)); - R += It->second->dump(A.sourceManager()); + formatv("- '{0}' covers '{1}'+{2} tokens\n", It->second->getKind(), + It->first->text(A.getSourceManager()), CoveredTokens)); + R += It->second->dump(A.getSourceManager()); } return R; } diff --git a/clang/lib/Tooling/Syntax/ComputeReplacements.cpp b/clang/lib/Tooling/Syntax/ComputeReplacements.cpp index 30b3ee1..93b1c44 100644 --- a/clang/lib/Tooling/Syntax/ComputeReplacements.cpp +++ b/clang/lib/Tooling/Syntax/ComputeReplacements.cpp @@ -32,13 +32,14 @@ void enumerateTokenSpans(const syntax::Tree *Root, ProcessTokensFn Callback) { private: void process(const syntax::Node *N) { if (auto *T = dyn_cast<syntax::Tree>(N)) { - for (auto *C = T->firstChild(); C != nullptr; C = C->nextSibling()) + for (auto *C = T->getFirstChild(); C != nullptr; + C = C->getNextSibling()) process(C); return; } auto *L = cast<syntax::Leaf>(N); - if (SpanEnd == L->token() && SpanIsOriginal == L->isOriginal()) { + if (SpanEnd == L->getToken() && SpanIsOriginal == L->isOriginal()) { // Extend the current span. ++SpanEnd; return; @@ -47,7 +48,7 @@ void enumerateTokenSpans(const syntax::Tree *Root, ProcessTokensFn Callback) { if (SpanBegin) Callback(llvm::makeArrayRef(SpanBegin, SpanEnd), SpanIsOriginal); // Start recording a new span. - SpanBegin = L->token(); + SpanBegin = L->getToken(); SpanEnd = SpanBegin + 1; SpanIsOriginal = L->isOriginal(); } @@ -63,8 +64,8 @@ void enumerateTokenSpans(const syntax::Tree *Root, ProcessTokensFn Callback) { syntax::FileRange rangeOfExpanded(const syntax::Arena &A, llvm::ArrayRef<syntax::Token> Expanded) { - auto &Buffer = A.tokenBuffer(); - auto &SM = A.sourceManager(); + auto &Buffer = A.getTokenBuffer(); + auto &SM = A.getSourceManager(); // Check that \p Expanded actually points into expanded tokens. assert(Buffer.expandedTokens().begin() <= Expanded.begin()); @@ -84,8 +85,8 @@ syntax::FileRange rangeOfExpanded(const syntax::Arena &A, tooling::Replacements syntax::computeReplacements(const syntax::Arena &A, const syntax::TranslationUnit &TU) { - auto &Buffer = A.tokenBuffer(); - auto &SM = A.sourceManager(); + auto &Buffer = A.getTokenBuffer(); + auto &SM = A.getSourceManager(); tooling::Replacements Replacements; // Text inserted by the replacement we are building now. diff --git a/clang/lib/Tooling/Syntax/Mutations.cpp b/clang/lib/Tooling/Syntax/Mutations.cpp index 24048b2..bf1bcda 100644 --- a/clang/lib/Tooling/Syntax/Mutations.cpp +++ b/clang/lib/Tooling/Syntax/Mutations.cpp @@ -36,7 +36,7 @@ public: assert(Role != NodeRole::Detached); New->setRole(Role); - auto *P = Anchor->parent(); + auto *P = Anchor->getParent(); P->replaceChildRangeLowLevel(Anchor, Anchor, New); P->assertInvariants(); @@ -52,16 +52,16 @@ public: assert(New->isDetached()); New->Role = Old->Role; - auto *P = Old->parent(); - P->replaceChildRangeLowLevel(findPrevious(Old), Old->nextSibling(), New); + auto *P = Old->getParent(); + P->replaceChildRangeLowLevel(findPrevious(Old), Old->getNextSibling(), New); P->assertInvariants(); } /// Completely remove the node from its parent. static void remove(syntax::Node *N) { - auto *P = N->parent(); - P->replaceChildRangeLowLevel(findPrevious(N), N->nextSibling(), + auto *P = N->getParent(); + P->replaceChildRangeLowLevel(findPrevious(N), N->getNextSibling(), /*New=*/nullptr); P->assertInvariants(); @@ -70,11 +70,11 @@ public: private: static syntax::Node *findPrevious(syntax::Node *N) { - if (N->parent()->firstChild() == N) + if (N->getParent()->getFirstChild() == N) return nullptr; - for (syntax::Node *C = N->parent()->firstChild(); C != nullptr; - C = C->nextSibling()) { - if (C->nextSibling() == N) + for (syntax::Node *C = N->getParent()->getFirstChild(); C != nullptr; + C = C->getNextSibling()) { + if (C->getNextSibling() == N) return C; } llvm_unreachable("could not find a child node"); @@ -85,7 +85,7 @@ void syntax::removeStatement(syntax::Arena &A, syntax::Statement *S) { assert(S); assert(S->canModify()); - if (isa<CompoundStatement>(S->parent())) { + if (isa<CompoundStatement>(S->getParent())) { // A child of CompoundStatement can just be safely removed. MutationsImpl::remove(S); return; diff --git a/clang/lib/Tooling/Syntax/Nodes.cpp b/clang/lib/Tooling/Syntax/Nodes.cpp index 6102c45..bb63585 100644 --- a/clang/lib/Tooling/Syntax/Nodes.cpp +++ b/clang/lib/Tooling/Syntax/Nodes.cpp @@ -501,8 +501,8 @@ syntax::Leaf *syntax::CompoundStatement::getLbrace() { std::vector<syntax::Statement *> syntax::CompoundStatement::getStatements() { std::vector<syntax::Statement *> Children; - for (auto *C = firstChild(); C; C = C->nextSibling()) { - assert(C->role() == syntax::NodeRole::Statement); + for (auto *C = getFirstChild(); C; C = C->getNextSibling()) { + assert(C->getRole() == syntax::NodeRole::Statement); Children.push_back(cast<syntax::Statement>(C)); } return Children; @@ -524,8 +524,8 @@ syntax::Expression *syntax::StaticAssertDeclaration::getMessage() { std::vector<syntax::SimpleDeclarator *> syntax::SimpleDeclaration::getDeclarators() { std::vector<syntax::SimpleDeclarator *> Children; - for (auto *C = firstChild(); C; C = C->nextSibling()) { - if (C->role() == syntax::NodeRole::Declarator) + for (auto *C = getFirstChild(); C; C = C->getNextSibling()) { + if (C->getRole() == syntax::NodeRole::Declarator) Children.push_back(cast<syntax::SimpleDeclarator>(C)); } return Children; diff --git a/clang/lib/Tooling/Syntax/Synthesis.cpp b/clang/lib/Tooling/Syntax/Synthesis.cpp index aa01a34..701a1e6 100644 --- a/clang/lib/Tooling/Syntax/Synthesis.cpp +++ b/clang/lib/Tooling/Syntax/Synthesis.cpp @@ -28,7 +28,7 @@ clang::syntax::Leaf *syntax::createPunctuation(clang::syntax::Arena &A, .second; assert(Tokens.size() == 1); assert(Tokens.front().kind() == K); - auto *L = new (A.allocator()) clang::syntax::Leaf(Tokens.begin()); + auto *L = new (A.getAllocator()) clang::syntax::Leaf(Tokens.begin()); FactoryImpl::setCanModify(L); L->assertInvariants(); return L; @@ -36,7 +36,7 @@ clang::syntax::Leaf *syntax::createPunctuation(clang::syntax::Arena &A, clang::syntax::EmptyStatement * syntax::createEmptyStatement(clang::syntax::Arena &A) { - auto *S = new (A.allocator()) clang::syntax::EmptyStatement; + auto *S = new (A.getAllocator()) clang::syntax::EmptyStatement; FactoryImpl::setCanModify(S); FactoryImpl::prependChildLowLevel(S, createPunctuation(A, clang::tok::semi), NodeRole::Unknown); diff --git a/clang/lib/Tooling/Syntax/Tree.cpp b/clang/lib/Tooling/Syntax/Tree.cpp index 2cef806..f9d1fa6 100644 --- a/clang/lib/Tooling/Syntax/Tree.cpp +++ b/clang/lib/Tooling/Syntax/Tree.cpp @@ -19,7 +19,7 @@ namespace { static void traverse(const syntax::Node *N, llvm::function_ref<void(const syntax::Node *)> Visit) { if (auto *T = dyn_cast<syntax::Tree>(N)) { - for (auto *C = T->firstChild(); C; C = C->nextSibling()) + for (auto *C = T->getFirstChild(); C; C = C->getNextSibling()) traverse(C, Visit); } Visit(N); @@ -36,7 +36,9 @@ syntax::Arena::Arena(SourceManager &SourceMgr, const LangOptions &LangOpts, const TokenBuffer &Tokens) : SourceMgr(SourceMgr), LangOpts(LangOpts), Tokens(Tokens) {} -const syntax::TokenBuffer &syntax::Arena::tokenBuffer() const { return Tokens; } +const syntax::TokenBuffer &syntax::Arena::getTokenBuffer() const { + return Tokens; +} std::pair<FileID, ArrayRef<syntax::Token>> syntax::Arena::lexBuffer(std::unique_ptr<llvm::MemoryBuffer> Input) { @@ -51,7 +53,7 @@ syntax::Leaf::Leaf(const syntax::Token *Tok) : Node(NodeKind::Leaf), Tok(Tok) { } bool syntax::Leaf::classof(const Node *N) { - return N->kind() == NodeKind::Leaf; + return N->getKind() == NodeKind::Leaf; } syntax::Node::Node(NodeKind Kind) @@ -60,16 +62,20 @@ syntax::Node::Node(NodeKind Kind) this->setRole(NodeRole::Detached); } -bool syntax::Node::isDetached() const { return role() == NodeRole::Detached; } +bool syntax::Node::isDetached() const { + return getRole() == NodeRole::Detached; +} void syntax::Node::setRole(NodeRole NR) { this->Role = static_cast<unsigned>(NR); } -bool syntax::Tree::classof(const Node *N) { return N->kind() > NodeKind::Leaf; } +bool syntax::Tree::classof(const Node *N) { + return N->getKind() > NodeKind::Leaf; +} void syntax::Tree::prependChildLowLevel(Node *Child, NodeRole Role) { - assert(Child->role() == NodeRole::Detached); + assert(Child->getRole() == NodeRole::Detached); assert(Role != NodeRole::Detached); Child->setRole(Role); @@ -79,7 +85,7 @@ void syntax::Tree::prependChildLowLevel(Node *Child, NodeRole Role) { void syntax::Tree::prependChildLowLevel(Node *Child) { assert(Child->Parent == nullptr); assert(Child->NextSibling == nullptr); - assert(Child->role() != NodeRole::Detached); + assert(Child->getRole() != NodeRole::Detached); Child->Parent = this; Child->NextSibling = this->FirstChild; @@ -91,15 +97,15 @@ void syntax::Tree::replaceChildRangeLowLevel(Node *BeforeBegin, Node *End, assert(!BeforeBegin || BeforeBegin->Parent == this); #ifndef NDEBUG - for (auto *N = New; N; N = N->nextSibling()) { + for (auto *N = New; N; N = N->getNextSibling()) { assert(N->Parent == nullptr); - assert(N->role() != NodeRole::Detached && "Roles must be set"); + assert(N->getRole() != NodeRole::Detached && "Roles must be set"); // FIXME: sanity-check the role. } #endif // Detach old nodes. - for (auto *N = !BeforeBegin ? FirstChild : BeforeBegin->nextSibling(); + for (auto *N = !BeforeBegin ? FirstChild : BeforeBegin->getNextSibling(); N != End;) { auto *Next = N->NextSibling; @@ -120,7 +126,7 @@ void syntax::Tree::replaceChildRangeLowLevel(Node *BeforeBegin, Node *End, if (New) { auto *Last = New; - for (auto *N = New; N != nullptr; N = N->nextSibling()) { + for (auto *N = New; N != nullptr; N = N->getNextSibling()) { Last = N; N->Parent = this; } @@ -136,7 +142,7 @@ namespace { static void dumpLeaf(raw_ostream &OS, const syntax::Leaf *L, const SourceManager &SM) { assert(L); - const auto *Token = L->token(); + const auto *Token = L->getToken(); assert(Token); // Handle 'eof' separately, calling text() on it produces an empty string. if (Token->kind() == tok::eof) @@ -148,8 +154,8 @@ static void dumpLeaf(raw_ostream &OS, const syntax::Leaf *L, static void dumpNode(raw_ostream &OS, const syntax::Node *N, const SourceManager &SM, std::vector<bool> IndentMask) { auto dumpExtraInfo = [&OS](const syntax::Node *N) { - if (N->role() != syntax::NodeRole::Unknown) - OS << " " << N->role(); + if (N->getRole() != syntax::NodeRole::Unknown) + OS << " " << N->getRole(); if (!N->isOriginal()) OS << " synthesized"; if (!N->canModify()) @@ -167,18 +173,18 @@ static void dumpNode(raw_ostream &OS, const syntax::Node *N, } const auto *T = cast<syntax::Tree>(N); - OS << T->kind(); + OS << T->getKind(); dumpExtraInfo(N); OS << "\n"; - for (const auto *It = T->firstChild(); It; It = It->nextSibling()) { + for (const auto *It = T->getFirstChild(); It; It = It->getNextSibling()) { for (bool Filled : IndentMask) { if (Filled) OS << "| "; else OS << " "; } - if (!It->nextSibling()) { + if (!It->getNextSibling()) { OS << "`-"; IndentMask.push_back(false); } else { @@ -213,18 +219,18 @@ std::string syntax::Node::dumpTokens(const SourceManager &SM) const { void syntax::Node::assertInvariants() const { #ifndef NDEBUG if (isDetached()) - assert(parent() == nullptr); + assert(getParent() == nullptr); else - assert(parent() != nullptr); + assert(getParent() != nullptr); auto *T = dyn_cast<Tree>(this); if (!T) return; - for (auto *C = T->firstChild(); C; C = C->nextSibling()) { + for (auto *C = T->getFirstChild(); C; C = C->getNextSibling()) { if (T->isOriginal()) assert(C->isOriginal()); assert(!C->isDetached()); - assert(C->parent() == T); + assert(C->getParent() == T); } #endif } @@ -235,9 +241,9 @@ void syntax::Node::assertInvariantsRecursive() const { #endif } -syntax::Leaf *syntax::Tree::firstLeaf() { +syntax::Leaf *syntax::Tree::findFirstLeaf() { auto *T = this; - while (auto *C = T->firstChild()) { + while (auto *C = T->getFirstChild()) { if (auto *L = dyn_cast<syntax::Leaf>(C)) return L; T = cast<syntax::Tree>(C); @@ -245,11 +251,11 @@ syntax::Leaf *syntax::Tree::firstLeaf() { return nullptr; } -syntax::Leaf *syntax::Tree::lastLeaf() { +syntax::Leaf *syntax::Tree::findLastLeaf() { auto *T = this; - while (auto *C = T->firstChild()) { + while (auto *C = T->getFirstChild()) { // Find the last child. - while (auto *Next = C->nextSibling()) + while (auto *Next = C->getNextSibling()) C = Next; if (auto *L = dyn_cast<syntax::Leaf>(C)) @@ -260,8 +266,8 @@ syntax::Leaf *syntax::Tree::lastLeaf() { } syntax::Node *syntax::Tree::findChild(NodeRole R) { - for (auto *C = FirstChild; C; C = C->nextSibling()) { - if (C->role() == R) + for (auto *C = FirstChild; C; C = C->getNextSibling()) { + if (C->getRole() == R) return C; } return nullptr; @@ -269,13 +275,13 @@ syntax::Node *syntax::Tree::findChild(NodeRole R) { std::vector<syntax::List::ElementAndDelimiter<syntax::Node>> syntax::List::getElementsAsNodesAndDelimiters() { - if (!firstChild()) + if (!getFirstChild()) return {}; auto children = std::vector<syntax::List::ElementAndDelimiter<Node>>(); syntax::Node *elementWithoutDelimiter = nullptr; - for (auto *C = firstChild(); C; C = C->nextSibling()) { - switch (C->role()) { + for (auto *C = getFirstChild(); C; C = C->getNextSibling()) { + switch (C->getRole()) { case syntax::NodeRole::ListElement: { if (elementWithoutDelimiter) { children.push_back({elementWithoutDelimiter, nullptr}); @@ -314,13 +320,13 @@ syntax::List::getElementsAsNodesAndDelimiters() { // Almost the same implementation of `getElementsAsNodesAndDelimiters` but // ignoring delimiters std::vector<syntax::Node *> syntax::List::getElementsAsNodes() { - if (!firstChild()) + if (!getFirstChild()) return {}; auto children = std::vector<syntax::Node *>(); syntax::Node *elementWithoutDelimiter = nullptr; - for (auto *C = firstChild(); C; C = C->nextSibling()) { - switch (C->role()) { + for (auto *C = getFirstChild(); C; C = C->getNextSibling()) { + switch (C->getRole()) { case syntax::NodeRole::ListElement: { if (elementWithoutDelimiter) { children.push_back(elementWithoutDelimiter); @@ -356,7 +362,7 @@ std::vector<syntax::Node *> syntax::List::getElementsAsNodes() { } clang::tok::TokenKind syntax::List::getDelimiterTokenKind() { - switch (this->kind()) { + switch (this->getKind()) { case NodeKind::NestedNameSpecifier: return clang::tok::coloncolon; case NodeKind::CallArguments: @@ -369,7 +375,7 @@ clang::tok::TokenKind syntax::List::getDelimiterTokenKind() { } syntax::List::TerminationKind syntax::List::getTerminationKind() { - switch (this->kind()) { + switch (this->getKind()) { case NodeKind::NestedNameSpecifier: return TerminationKind::Terminated; case NodeKind::CallArguments: @@ -382,7 +388,7 @@ syntax::List::TerminationKind syntax::List::getTerminationKind() { } bool syntax::List::canBeEmpty() { - switch (this->kind()) { + switch (this->getKind()) { case NodeKind::NestedNameSpecifier: return false; case NodeKind::CallArguments: |