/Users/buildslave/jenkins/workspace/coverage/llvm-project/clang/include/clang/AST/ASTTypeTraits.h
Line | Count | Source (jump to first uncovered line) |
1 | | //===--- ASTTypeTraits.h ----------------------------------------*- C++ -*-===// |
2 | | // |
3 | | // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
4 | | // See https://llvm.org/LICENSE.txt for license information. |
5 | | // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
6 | | // |
7 | | //===----------------------------------------------------------------------===// |
8 | | // |
9 | | // Provides a dynamic type identifier and a dynamically typed node container |
10 | | // that can be used to store an AST base node at runtime in the same storage in |
11 | | // a type safe way. |
12 | | // |
13 | | //===----------------------------------------------------------------------===// |
14 | | |
15 | | #ifndef LLVM_CLANG_AST_ASTTYPETRAITS_H |
16 | | #define LLVM_CLANG_AST_ASTTYPETRAITS_H |
17 | | |
18 | | #include "clang/AST/ASTFwd.h" |
19 | | #include "clang/AST/DeclCXX.h" |
20 | | #include "clang/AST/NestedNameSpecifier.h" |
21 | | #include "clang/AST/TemplateBase.h" |
22 | | #include "clang/AST/TypeLoc.h" |
23 | | #include "clang/Basic/LLVM.h" |
24 | | #include "llvm/ADT/DenseMapInfo.h" |
25 | | #include "llvm/Support/AlignOf.h" |
26 | | |
27 | | namespace llvm { |
28 | | |
29 | | class raw_ostream; |
30 | | |
31 | | } |
32 | | |
33 | | namespace clang { |
34 | | |
35 | | struct PrintingPolicy; |
36 | | |
37 | | /// Defines how we descend a level in the AST when we pass |
38 | | /// through expressions. |
39 | | enum TraversalKind { |
40 | | /// Will traverse all child nodes. |
41 | | TK_AsIs, |
42 | | |
43 | | /// Ignore AST nodes not written in the source |
44 | | TK_IgnoreUnlessSpelledInSource |
45 | | }; |
46 | | |
47 | | /// Kind identifier. |
48 | | /// |
49 | | /// It can be constructed from any node kind and allows for runtime type |
50 | | /// hierarchy checks. |
51 | | /// Use getFromNodeKind<T>() to construct them. |
52 | | class ASTNodeKind { |
53 | | public: |
54 | | /// Empty identifier. It matches nothing. |
55 | 2.67M | ASTNodeKind() : KindId(NKI_None) {} |
56 | | |
57 | | /// Construct an identifier for T. |
58 | | template <class T> |
59 | 5.85M | static ASTNodeKind getFromNodeKind() { |
60 | 5.85M | return ASTNodeKind(KindToKindId<T>::Id); |
61 | 5.85M | } clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::QualType>() Line | Count | Source | 59 | 783k | static ASTNodeKind getFromNodeKind() { | 60 | 783k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 783k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::TypeLoc>() Line | Count | Source | 59 | 300k | static ASTNodeKind getFromNodeKind() { | 60 | 300k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 300k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::NestedNameSpecifierLoc>() Line | Count | Source | 59 | 123k | static ASTNodeKind getFromNodeKind() { | 60 | 123k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 123k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::Stmt>() Line | Count | Source | 59 | 694k | static ASTNodeKind getFromNodeKind() { | 60 | 694k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 694k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::TemplateArgument>() Line | Count | Source | 59 | 914 | static ASTNodeKind getFromNodeKind() { | 60 | 914 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 914 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::TemplateArgumentLoc>() Line | Count | Source | 59 | 503 | static ASTNodeKind getFromNodeKind() { | 60 | 503 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 503 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::TemplateName>() Line | Count | Source | 59 | 82 | static ASTNodeKind getFromNodeKind() { | 60 | 82 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 82 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::NestedNameSpecifier>() Line | Count | Source | 59 | 3.65k | static ASTNodeKind getFromNodeKind() { | 60 | 3.65k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 3.65k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::Type>() Line | Count | Source | 59 | 508k | static ASTNodeKind getFromNodeKind() { | 60 | 508k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 508k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXCtorInitializer>() Line | Count | Source | 59 | 1.41k | static ASTNodeKind getFromNodeKind() { | 60 | 1.41k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 1.41k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::OMPClause>() Line | Count | Source | 59 | 149 | static ASTNodeKind getFromNodeKind() { | 60 | 149 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 149 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::Expr>() Line | Count | Source | 59 | 1.64M | static ASTNodeKind getFromNodeKind() { | 60 | 1.64M | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 1.64M | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::Decl>() Line | Count | Source | 59 | 512k | static ASTNodeKind getFromNodeKind() { | 60 | 512k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 512k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::DeclStmt>() Line | Count | Source | 59 | 20.7k | static ASTNodeKind getFromNodeKind() { | 60 | 20.7k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 20.7k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CompoundStmt>() Line | Count | Source | 59 | 4.27k | static ASTNodeKind getFromNodeKind() { | 60 | 4.27k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 4.27k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::BlockPointerType>() Line | Count | Source | 59 | 1.39k | static ASTNodeKind getFromNodeKind() { | 60 | 1.39k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 1.39k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::TypedefType>() Line | Count | Source | 59 | 1.19k | static ASTNodeKind getFromNodeKind() { | 60 | 1.19k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 1.19k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::TypedefDecl>() Line | Count | Source | 59 | 2.33k | static ASTNodeKind getFromNodeKind() { | 60 | 2.33k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 2.33k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::RecordType>() Line | Count | Source | 59 | 657 | static ASTNodeKind getFromNodeKind() { | 60 | 657 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 657 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ObjCObjectPointerType>() Line | Count | Source | 59 | 1.17k | static ASTNodeKind getFromNodeKind() { | 60 | 1.17k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 1.17k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ObjCAutoreleasePoolStmt>() Line | Count | Source | 59 | 2.73k | static ASTNodeKind getFromNodeKind() { | 60 | 2.73k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 2.73k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::BlockDecl>() Line | Count | Source | 59 | 2.35k | static ASTNodeKind getFromNodeKind() { | 60 | 2.35k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 2.35k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::PointerType>() Line | Count | Source | 59 | 2.07k | static ASTNodeKind getFromNodeKind() { | 60 | 2.07k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 2.07k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CStyleCastExpr>() Line | Count | Source | 59 | 219 | static ASTNodeKind getFromNodeKind() { | 60 | 219 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 219 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::RecordDecl>() Line | Count | Source | 59 | 13.9k | static ASTNodeKind getFromNodeKind() { | 60 | 13.9k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 13.9k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ConditionalOperator>() Line | Count | Source | 59 | 31.9k | static ASTNodeKind getFromNodeKind() { | 60 | 31.9k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 31.9k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ObjCIvarRefExpr>() Line | Count | Source | 59 | 211 | static ASTNodeKind getFromNodeKind() { | 60 | 211 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 211 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::BinaryOperator>() Line | Count | Source | 59 | 25.9k | static ASTNodeKind getFromNodeKind() { | 60 | 25.9k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 25.9k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::IntegerLiteral>() Line | Count | Source | 59 | 3.51k | static ASTNodeKind getFromNodeKind() { | 60 | 3.51k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 3.51k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::UnaryOperator>() Line | Count | Source | 59 | 95.6k | static ASTNodeKind getFromNodeKind() { | 60 | 95.6k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 95.6k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::GotoStmt>() Line | Count | Source | 59 | 584 | static ASTNodeKind getFromNodeKind() { | 60 | 584 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 584 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXOperatorCallExpr>() Line | Count | Source | 59 | 12.9k | static ASTNodeKind getFromNodeKind() { | 60 | 12.9k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 12.9k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ReferenceType>() Line | Count | Source | 59 | 51.3k | static ASTNodeKind getFromNodeKind() { | 60 | 51.3k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 51.3k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXMemberCallExpr>() Line | Count | Source | 59 | 3.77k | static ASTNodeKind getFromNodeKind() { | 60 | 3.77k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 3.77k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXRecordDecl>() Line | Count | Source | 59 | 49.5k | static ASTNodeKind getFromNodeKind() { | 60 | 49.5k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 49.5k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::NamedDecl>() Line | Count | Source | 59 | 103k | static ASTNodeKind getFromNodeKind() { | 60 | 103k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 103k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ObjCInterfaceDecl>() Line | Count | Source | 59 | 9.11k | static ASTNodeKind getFromNodeKind() { | 60 | 9.11k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 9.11k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXBaseSpecifier>() Line | Count | Source | 59 | 1.44k | static ASTNodeKind getFromNodeKind() { | 60 | 1.44k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 1.44k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CallExpr>() Line | Count | Source | 59 | 42.0k | static ASTNodeKind getFromNodeKind() { | 60 | 42.0k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 42.0k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::FunctionDecl>() Line | Count | Source | 59 | 31.4k | static ASTNodeKind getFromNodeKind() { | 60 | 31.4k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 31.4k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::LambdaExpr>() Line | Count | Source | 59 | 2.81k | static ASTNodeKind getFromNodeKind() { | 60 | 2.81k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 2.81k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::FieldDecl>() Line | Count | Source | 59 | 4.38k | static ASTNodeKind getFromNodeKind() { | 60 | 4.38k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 4.38k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ClassTemplateSpecializationDecl>() Line | Count | Source | 59 | 3.78k | static ASTNodeKind getFromNodeKind() { | 60 | 3.78k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 3.78k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::InitListExpr>() Line | Count | Source | 59 | 17.1k | static ASTNodeKind getFromNodeKind() { | 60 | 17.1k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 17.1k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ForStmt>() Line | Count | Source | 59 | 2.78k | static ASTNodeKind getFromNodeKind() { | 60 | 2.78k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 2.78k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXForRangeStmt>() Line | Count | Source | 59 | 3.17k | static ASTNodeKind getFromNodeKind() { | 60 | 3.17k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 3.17k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::DesignatedInitExpr>() Line | Count | Source | 59 | 337 | static ASTNodeKind getFromNodeKind() { | 60 | 337 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 337 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::UnaryExprOrTypeTraitExpr>() Line | Count | Source | 59 | 5.32k | static ASTNodeKind getFromNodeKind() { | 60 | 5.32k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 5.32k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXDependentScopeMemberExpr>() Line | Count | Source | 59 | 1.89k | static ASTNodeKind getFromNodeKind() { | 60 | 1.89k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 1.89k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ObjCMessageExpr>() Line | Count | Source | 59 | 14.6k | static ASTNodeKind getFromNodeKind() { | 60 | 14.6k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 14.6k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ObjCMethodDecl>() Line | Count | Source | 59 | 2.61k | static ASTNodeKind getFromNodeKind() { | 60 | 2.61k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 2.61k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::DeclaratorDecl>() Line | Count | Source | 59 | 219 | static ASTNodeKind getFromNodeKind() { | 60 | 219 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 219 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::DeclRefExpr>() Line | Count | Source | 59 | 72.9k | static ASTNodeKind getFromNodeKind() { | 60 | 72.9k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 72.9k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::OverloadExpr>() Line | Count | Source | 59 | 44 | static ASTNodeKind getFromNodeKind() { | 60 | 44 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 44 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::VarDecl>() Line | Count | Source | 59 | 203k | static ASTNodeKind getFromNodeKind() { | 60 | 203k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 203k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXCatchStmt>() Line | Count | Source | 59 | 269 | static ASTNodeKind getFromNodeKind() { | 60 | 269 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 269 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXConstructorDecl>() Line | Count | Source | 59 | 11.5k | static ASTNodeKind getFromNodeKind() { | 60 | 11.5k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 11.5k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXConstructExpr>() Line | Count | Source | 59 | 4.88k | static ASTNodeKind getFromNodeKind() { | 60 | 4.88k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 4.88k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ParmVarDecl>() Line | Count | Source | 59 | 52.8k | static ASTNodeKind getFromNodeKind() { | 60 | 52.8k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 52.8k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::IfStmt>() Line | Count | Source | 59 | 3.32k | static ASTNodeKind getFromNodeKind() { | 60 | 3.32k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 3.32k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ArraySubscriptExpr>() Line | Count | Source | 59 | 2.05k | static ASTNodeKind getFromNodeKind() { | 60 | 2.05k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 2.05k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CastExpr>() Line | Count | Source | 59 | 42.2k | static ASTNodeKind getFromNodeKind() { | 60 | 42.2k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 42.2k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ExplicitCastExpr>() Line | Count | Source | 59 | 3.30k | static ASTNodeKind getFromNodeKind() { | 60 | 3.30k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 3.30k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ImplicitCastExpr>() Line | Count | Source | 59 | 178k | static ASTNodeKind getFromNodeKind() { | 60 | 178k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 178k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::TagDecl>() Line | Count | Source | 59 | 568 | static ASTNodeKind getFromNodeKind() { | 60 | 568 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 568 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::AbstractConditionalOperator>() Line | Count | Source | 59 | 17.2k | static ASTNodeKind getFromNodeKind() { | 60 | 17.2k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 17.2k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXMethodDecl>() Line | Count | Source | 59 | 31.8k | static ASTNodeKind getFromNodeKind() { | 60 | 31.8k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 31.8k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::MemberExpr>() Line | Count | Source | 59 | 3.40k | static ASTNodeKind getFromNodeKind() { | 60 | 3.40k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 3.40k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::UsingDecl>() Line | Count | Source | 59 | 220 | static ASTNodeKind getFromNodeKind() { | 60 | 220 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 220 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::UsingShadowDecl>() Line | Count | Source | 59 | 118 | static ASTNodeKind getFromNodeKind() { | 60 | 118 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 118 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::VariableArrayType>() Line | Count | Source | 59 | 1.20k | static ASTNodeKind getFromNodeKind() { | 60 | 1.20k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 1.20k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ElaboratedType>() Line | Count | Source | 59 | 228 | static ASTNodeKind getFromNodeKind() { | 60 | 228 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 228 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::DecayedType>() Line | Count | Source | 59 | 153 | static ASTNodeKind getFromNodeKind() { | 60 | 153 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 153 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::SwitchStmt>() Line | Count | Source | 59 | 917 | static ASTNodeKind getFromNodeKind() { | 60 | 917 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 917 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::NamespaceDecl>() Line | Count | Source | 59 | 410 | static ASTNodeKind getFromNodeKind() { | 60 | 410 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 410 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CaseStmt>() Line | Count | Source | 59 | 142 | static ASTNodeKind getFromNodeKind() { | 60 | 142 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 142 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ReturnStmt>() Line | Count | Source | 59 | 1.15k | static ASTNodeKind getFromNodeKind() { | 60 | 1.15k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 1.15k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXNewExpr>() Line | Count | Source | 59 | 288 | static ASTNodeKind getFromNodeKind() { | 60 | 288 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 288 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::EnumDecl>() Line | Count | Source | 59 | 3.27k | static ASTNodeKind getFromNodeKind() { | 60 | 3.27k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 3.27k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::OMPExecutableDirective>() Line | Count | Source | 59 | 1.07k | static ASTNodeKind getFromNodeKind() { | 60 | 1.07k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 1.07k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::OMPDefaultClause>() Line | Count | Source | 59 | 321 | static ASTNodeKind getFromNodeKind() { | 60 | 321 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 321 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::TranslationUnitDecl>() Line | Count | Source | 59 | 2.60k | static ASTNodeKind getFromNodeKind() { | 60 | 2.60k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 2.60k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXThisExpr>() Line | Count | Source | 59 | 304 | static ASTNodeKind getFromNodeKind() { | 60 | 304 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 304 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::FriendDecl>() Line | Count | Source | 59 | 773 | static ASTNodeKind getFromNodeKind() { | 60 | 773 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 773 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::TypedefNameDecl>() Line | Count | Source | 59 | 1.46k | static ASTNodeKind getFromNodeKind() { | 60 | 1.46k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 1.46k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ValueDecl>() Line | Count | Source | 59 | 315 | static ASTNodeKind getFromNodeKind() { | 60 | 315 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 315 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CharacterLiteral>() Line | Count | Source | 59 | 293 | static ASTNodeKind getFromNodeKind() { | 60 | 293 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 293 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXBoolLiteralExpr>() Line | Count | Source | 59 | 600 | static ASTNodeKind getFromNodeKind() { | 60 | 600 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 600 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::FloatingLiteral>() Line | Count | Source | 59 | 669 | static ASTNodeKind getFromNodeKind() { | 60 | 669 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 669 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::AccessSpecDecl>() Line | Count | Source | 59 | 196 | static ASTNodeKind getFromNodeKind() { | 60 | 196 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 196 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::AddrLabelExpr>() Line | Count | Source | 59 | 130 | static ASTNodeKind getFromNodeKind() { | 60 | 130 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 130 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXUnresolvedConstructExpr>() Line | Count | Source | 59 | 495 | static ASTNodeKind getFromNodeKind() { | 60 | 495 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 495 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ArrayType>() Line | Count | Source | 59 | 911 | static ASTNodeKind getFromNodeKind() { | 60 | 911 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 911 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::AsmStmt>() Line | Count | Source | 59 | 88 | static ASTNodeKind getFromNodeKind() { | 60 | 88 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 88 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::AtomicExpr>() Line | Count | Source | 59 | 130 | static ASTNodeKind getFromNodeKind() { | 60 | 130 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 130 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::AtomicType>() Line | Count | Source | 59 | 207 | static ASTNodeKind getFromNodeKind() { | 60 | 207 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 207 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::AutoType>() Line | Count | Source | 59 | 117 | static ASTNodeKind getFromNodeKind() { | 60 | 117 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 117 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::BinaryConditionalOperator>() Line | Count | Source | 59 | 28.2k | static ASTNodeKind getFromNodeKind() { | 60 | 28.2k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 28.2k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXRewrittenBinaryOperator>() Line | Count | Source | 59 | 1.72k | static ASTNodeKind getFromNodeKind() { | 60 | 1.72k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 1.72k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::BlockExpr>() Line | Count | Source | 59 | 88 | static ASTNodeKind getFromNodeKind() { | 60 | 88 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 88 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::BreakStmt>() Line | Count | Source | 59 | 88 | static ASTNodeKind getFromNodeKind() { | 60 | 88 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 88 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::BuiltinType>() Line | Count | Source | 59 | 571 | static ASTNodeKind getFromNodeKind() { | 60 | 571 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 571 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ChooseExpr>() Line | Count | Source | 59 | 140 | static ASTNodeKind getFromNodeKind() { | 60 | 140 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 140 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ClassTemplateDecl>() Line | Count | Source | 59 | 5.97k | static ASTNodeKind getFromNodeKind() { | 60 | 5.97k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 5.97k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ClassTemplatePartialSpecializationDecl>() Line | Count | Source | 59 | 138 | static ASTNodeKind getFromNodeKind() { | 60 | 138 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 138 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ComplexType>() Line | Count | Source | 59 | 196 | static ASTNodeKind getFromNodeKind() { | 60 | 196 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 196 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CompoundLiteralExpr>() Line | Count | Source | 59 | 97 | static ASTNodeKind getFromNodeKind() { | 60 | 97 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 97 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ConstantArrayType>() Line | Count | Source | 59 | 335 | static ASTNodeKind getFromNodeKind() { | 60 | 335 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 335 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ConstantExpr>() Line | Count | Source | 59 | 82 | static ASTNodeKind getFromNodeKind() { | 60 | 82 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 82 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ContinueStmt>() Line | Count | Source | 59 | 88 | static ASTNodeKind getFromNodeKind() { | 60 | 88 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 88 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CUDAKernelCallExpr>() Line | Count | Source | 59 | 52 | static ASTNodeKind getFromNodeKind() { | 60 | 52 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 52 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXBindTemporaryExpr>() Line | Count | Source | 59 | 76 | static ASTNodeKind getFromNodeKind() { | 60 | 76 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 76 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXConstCastExpr>() Line | Count | Source | 59 | 46 | static ASTNodeKind getFromNodeKind() { | 60 | 46 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 46 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXConversionDecl>() Line | Count | Source | 59 | 153 | static ASTNodeKind getFromNodeKind() { | 60 | 153 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 153 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXDeductionGuideDecl>() Line | Count | Source | 59 | 305 | static ASTNodeKind getFromNodeKind() { | 60 | 305 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 305 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXDefaultArgExpr>() Line | Count | Source | 59 | 85 | static ASTNodeKind getFromNodeKind() { | 60 | 85 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 85 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXDeleteExpr>() Line | Count | Source | 59 | 76 | static ASTNodeKind getFromNodeKind() { | 60 | 76 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 76 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXDestructorDecl>() Line | Count | Source | 59 | 129 | static ASTNodeKind getFromNodeKind() { | 60 | 129 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 129 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXDynamicCastExpr>() Line | Count | Source | 59 | 76 | static ASTNodeKind getFromNodeKind() { | 60 | 76 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 76 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXFunctionalCastExpr>() Line | Count | Source | 59 | 147 | static ASTNodeKind getFromNodeKind() { | 60 | 147 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 147 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXNoexceptExpr>() Line | Count | Source | 59 | 1.08k | static ASTNodeKind getFromNodeKind() { | 60 | 1.08k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 1.08k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXNullPtrLiteralExpr>() Line | Count | Source | 59 | 82 | static ASTNodeKind getFromNodeKind() { | 60 | 82 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 82 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXReinterpretCastExpr>() Line | Count | Source | 59 | 196 | static ASTNodeKind getFromNodeKind() { | 60 | 196 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 196 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXStaticCastExpr>() Line | Count | Source | 59 | 198 | static ASTNodeKind getFromNodeKind() { | 60 | 198 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 198 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXStdInitializerListExpr>() Line | Count | Source | 59 | 142 | static ASTNodeKind getFromNodeKind() { | 60 | 142 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 142 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXTemporaryObjectExpr>() Line | Count | Source | 59 | 81 | static ASTNodeKind getFromNodeKind() { | 60 | 81 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 81 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXThrowExpr>() Line | Count | Source | 59 | 166 | static ASTNodeKind getFromNodeKind() { | 60 | 166 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 166 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXTryStmt>() Line | Count | Source | 59 | 76 | static ASTNodeKind getFromNodeKind() { | 60 | 76 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 76 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::DecompositionDecl>() Line | Count | Source | 59 | 46 | static ASTNodeKind getFromNodeKind() { | 60 | 46 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 46 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::DecltypeType>() Line | Count | Source | 59 | 117 | static ASTNodeKind getFromNodeKind() { | 60 | 117 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 117 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::DeducedTemplateSpecializationType>() Line | Count | Source | 59 | 58 | static ASTNodeKind getFromNodeKind() { | 60 | 58 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 58 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::DefaultStmt>() Line | Count | Source | 59 | 49 | static ASTNodeKind getFromNodeKind() { | 60 | 49 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 49 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::DependentSizedArrayType>() Line | Count | Source | 59 | 118 | static ASTNodeKind getFromNodeKind() { | 60 | 118 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 118 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::DoStmt>() Line | Count | Source | 59 | 222 | static ASTNodeKind getFromNodeKind() { | 60 | 222 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 222 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::EnumConstantDecl>() Line | Count | Source | 59 | 196 | static ASTNodeKind getFromNodeKind() { | 60 | 196 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 196 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::EnumType>() Line | Count | Source | 59 | 166 | static ASTNodeKind getFromNodeKind() { | 60 | 166 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 166 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ExprWithCleanups>() Line | Count | Source | 59 | 122 | static ASTNodeKind getFromNodeKind() { | 60 | 122 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 122 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::SwitchCase>() Line | Count | Source | 59 | 253 | static ASTNodeKind getFromNodeKind() { | 60 | 253 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 253 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::FunctionProtoType>() Line | Count | Source | 59 | 531 | static ASTNodeKind getFromNodeKind() { | 60 | 531 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 531 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::FunctionTemplateDecl>() Line | Count | Source | 59 | 4.42k | static ASTNodeKind getFromNodeKind() { | 60 | 4.42k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 4.42k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::FunctionType>() Line | Count | Source | 59 | 328 | static ASTNodeKind getFromNodeKind() { | 60 | 328 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 328 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::GenericSelectionExpr>() Line | Count | Source | 59 | 494 | static ASTNodeKind getFromNodeKind() { | 60 | 494 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 494 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::GNUNullExpr>() Line | Count | Source | 59 | 88 | static ASTNodeKind getFromNodeKind() { | 60 | 88 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 88 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::StmtExpr>() Line | Count | Source | 59 | 147 | static ASTNodeKind getFromNodeKind() { | 60 | 147 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 147 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::TemplateSpecializationType>() Line | Count | Source | 59 | 281 | static ASTNodeKind getFromNodeKind() { | 60 | 281 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 281 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::WhileStmt>() Line | Count | Source | 59 | 235 | static ASTNodeKind getFromNodeKind() { | 60 | 235 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 235 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::InjectedClassNameType>() Line | Count | Source | 59 | 76 | static ASTNodeKind getFromNodeKind() { | 60 | 76 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 76 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::LabelStmt>() Line | Count | Source | 59 | 134 | static ASTNodeKind getFromNodeKind() { | 60 | 134 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 134 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::TagType>() Line | Count | Source | 59 | 70 | static ASTNodeKind getFromNodeKind() { | 60 | 70 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 70 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::TemplateTypeParmType>() Line | Count | Source | 59 | 1.06k | static ASTNodeKind getFromNodeKind() { | 60 | 1.06k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 1.06k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::UnresolvedUsingType>() Line | Count | Source | 59 | 24 | static ASTNodeKind getFromNodeKind() { | 60 | 24 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 24 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::UnresolvedMemberExpr>() Line | Count | Source | 59 | 1.53k | static ASTNodeKind getFromNodeKind() { | 60 | 1.53k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 1.53k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::SubstTemplateTypeParmType>() Line | Count | Source | 59 | 136 | static ASTNodeKind getFromNodeKind() { | 60 | 136 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 136 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::StringLiteral>() Line | Count | Source | 59 | 480 | static ASTNodeKind getFromNodeKind() { | 60 | 480 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 480 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::OpaqueValueExpr>() Line | Count | Source | 59 | 143 | static ASTNodeKind getFromNodeKind() { | 60 | 143 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 143 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ImaginaryLiteral>() Line | Count | Source | 59 | 58 | static ASTNodeKind getFromNodeKind() { | 60 | 58 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 58 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ImplicitValueInitExpr>() Line | Count | Source | 59 | 62 | static ASTNodeKind getFromNodeKind() { | 60 | 62 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 62 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::IncompleteArrayType>() Line | Count | Source | 59 | 172 | static ASTNodeKind getFromNodeKind() { | 60 | 172 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 172 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::IndirectFieldDecl>() Line | Count | Source | 59 | 62 | static ASTNodeKind getFromNodeKind() { | 60 | 62 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 62 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ParenType>() Line | Count | Source | 59 | 241 | static ASTNodeKind getFromNodeKind() { | 60 | 241 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 241 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::LValueReferenceType>() Line | Count | Source | 59 | 202 | static ASTNodeKind getFromNodeKind() { | 60 | 202 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 202 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::LabelDecl>() Line | Count | Source | 59 | 90 | static ASTNodeKind getFromNodeKind() { | 60 | 90 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 90 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::LinkageSpecDecl>() Line | Count | Source | 59 | 106 | static ASTNodeKind getFromNodeKind() { | 60 | 106 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 106 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::MaterializeTemporaryExpr>() Line | Count | Source | 59 | 100 | static ASTNodeKind getFromNodeKind() { | 60 | 100 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 100 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::MemberPointerType>() Line | Count | Source | 59 | 196 | static ASTNodeKind getFromNodeKind() { | 60 | 196 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 196 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::NamespaceAliasDecl>() Line | Count | Source | 59 | 66 | static ASTNodeKind getFromNodeKind() { | 60 | 66 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 66 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::NonTypeTemplateParmDecl>() Line | Count | Source | 59 | 130 | static ASTNodeKind getFromNodeKind() { | 60 | 130 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 130 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::NullStmt>() Line | Count | Source | 59 | 214 | static ASTNodeKind getFromNodeKind() { | 60 | 214 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 214 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ObjCAtCatchStmt>() Line | Count | Source | 59 | 49 | static ASTNodeKind getFromNodeKind() { | 60 | 49 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 49 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ObjCCategoryDecl>() Line | Count | Source | 59 | 48 | static ASTNodeKind getFromNodeKind() { | 60 | 48 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 48 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ObjCCategoryImplDecl>() Line | Count | Source | 59 | 48 | static ASTNodeKind getFromNodeKind() { | 60 | 48 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 48 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ObjCAtFinallyStmt>() Line | Count | Source | 59 | 49 | static ASTNodeKind getFromNodeKind() { | 60 | 49 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 49 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ObjCImplementationDecl>() Line | Count | Source | 59 | 48 | static ASTNodeKind getFromNodeKind() { | 60 | 48 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 48 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ObjCIvarDecl>() Line | Count | Source | 59 | 48 | static ASTNodeKind getFromNodeKind() { | 60 | 48 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 48 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ObjCPropertyDecl>() Line | Count | Source | 59 | 52 | static ASTNodeKind getFromNodeKind() { | 60 | 52 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 52 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ObjCProtocolDecl>() Line | Count | Source | 59 | 48 | static ASTNodeKind getFromNodeKind() { | 60 | 48 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 48 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ObjCAtThrowStmt>() Line | Count | Source | 59 | 49 | static ASTNodeKind getFromNodeKind() { | 60 | 49 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 49 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ObjCAtTryStmt>() Line | Count | Source | 59 | 49 | static ASTNodeKind getFromNodeKind() { | 60 | 49 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 49 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ParenExpr>() Line | Count | Source | 59 | 222 | static ASTNodeKind getFromNodeKind() { | 60 | 222 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 222 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ParenListExpr>() Line | Count | Source | 59 | 420 | static ASTNodeKind getFromNodeKind() { | 60 | 420 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 420 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::PredefinedExpr>() Line | Count | Source | 59 | 208 | static ASTNodeKind getFromNodeKind() { | 60 | 208 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 208 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::RValueReferenceType>() Line | Count | Source | 59 | 202 | static ASTNodeKind getFromNodeKind() { | 60 | 202 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 202 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::StaticAssertDecl>() Line | Count | Source | 59 | 68 | static ASTNodeKind getFromNodeKind() { | 60 | 68 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 68 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::SubstNonTypeTemplateParmExpr>() Line | Count | Source | 59 | 108 | static ASTNodeKind getFromNodeKind() { | 60 | 108 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 108 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::TemplateTemplateParmDecl>() Line | Count | Source | 59 | 128 | static ASTNodeKind getFromNodeKind() { | 60 | 128 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 128 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::TemplateTypeParmDecl>() Line | Count | Source | 59 | 1.18k | static ASTNodeKind getFromNodeKind() { | 60 | 1.18k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 1.18k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::TypeAliasDecl>() Line | Count | Source | 59 | 138 | static ASTNodeKind getFromNodeKind() { | 60 | 138 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 138 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::TypeAliasTemplateDecl>() Line | Count | Source | 59 | 81 | static ASTNodeKind getFromNodeKind() { | 60 | 81 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 81 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::UnaryTransformType>() Line | Count | Source | 59 | 49 | static ASTNodeKind getFromNodeKind() { | 60 | 49 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 49 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::UnresolvedLookupExpr>() Line | Count | Source | 59 | 1.07k | static ASTNodeKind getFromNodeKind() { | 60 | 1.07k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 1.07k | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::UnresolvedUsingTypenameDecl>() Line | Count | Source | 59 | 48 | static ASTNodeKind getFromNodeKind() { | 60 | 48 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 48 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::UnresolvedUsingValueDecl>() Line | Count | Source | 59 | 51 | static ASTNodeKind getFromNodeKind() { | 60 | 51 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 51 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::UserDefinedLiteral>() Line | Count | Source | 59 | 70 | static ASTNodeKind getFromNodeKind() { | 60 | 70 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 70 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::UsingDirectiveDecl>() Line | Count | Source | 59 | 109 | static ASTNodeKind getFromNodeKind() { | 60 | 109 | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 109 | } |
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXTypeidExpr>() Line | Count | Source | 59 | 1.37k | static ASTNodeKind getFromNodeKind() { | 60 | 1.37k | return ASTNodeKind(KindToKindId<T>::Id); | 61 | 1.37k | } |
|
62 | | |
63 | | /// \{ |
64 | | /// Construct an identifier for the dynamic type of the node |
65 | | static ASTNodeKind getFromNode(const Decl &D); |
66 | | static ASTNodeKind getFromNode(const Stmt &S); |
67 | | static ASTNodeKind getFromNode(const Type &T); |
68 | | static ASTNodeKind getFromNode(const OMPClause &C); |
69 | | /// \} |
70 | | |
71 | | /// Returns \c true if \c this and \c Other represent the same kind. |
72 | 2.22M | bool isSame(ASTNodeKind Other) const { |
73 | 2.22M | return KindId != NKI_None && KindId == Other.KindId2.22M ; |
74 | 2.22M | } |
75 | | |
76 | | /// Returns \c true only for the default \c ASTNodeKind() |
77 | 644 | bool isNone() const { return KindId == NKI_None; } |
78 | | |
79 | | /// Returns \c true if \c this is a base kind of (or same as) \c Other. |
80 | | /// \param Distance If non-null, used to return the distance between \c this |
81 | | /// and \c Other in the class hierarchy. |
82 | | bool isBaseOf(ASTNodeKind Other, unsigned *Distance = nullptr) const; |
83 | | |
84 | | /// String representation of the kind. |
85 | | StringRef asStringRef() const; |
86 | | |
87 | | /// Strict weak ordering for ASTNodeKind. |
88 | 511k | bool operator<(const ASTNodeKind &Other) const { |
89 | 511k | return KindId < Other.KindId; |
90 | 511k | } |
91 | | |
92 | | /// Return the most derived type between \p Kind1 and \p Kind2. |
93 | | /// |
94 | | /// Return ASTNodeKind() if they are not related. |
95 | | static ASTNodeKind getMostDerivedType(ASTNodeKind Kind1, ASTNodeKind Kind2); |
96 | | |
97 | | /// Return the most derived common ancestor between Kind1 and Kind2. |
98 | | /// |
99 | | /// Return ASTNodeKind() if they are not related. |
100 | | static ASTNodeKind getMostDerivedCommonAncestor(ASTNodeKind Kind1, |
101 | | ASTNodeKind Kind2); |
102 | | |
103 | | /// Hooks for using ASTNodeKind as a key in a DenseMap. |
104 | | struct DenseMapInfo { |
105 | | // ASTNodeKind() is a good empty key because it is represented as a 0. |
106 | 1.27M | static inline ASTNodeKind getEmptyKey() { return ASTNodeKind(); } |
107 | | // NKI_NumberOfKinds is not a valid value, so it is good for a |
108 | | // tombstone key. |
109 | 1.03M | static inline ASTNodeKind getTombstoneKey() { |
110 | 1.03M | return ASTNodeKind(NKI_NumberOfKinds); |
111 | 1.03M | } |
112 | 507k | static unsigned getHashValue(const ASTNodeKind &Val) { return Val.KindId; } |
113 | 5.93M | static bool isEqual(const ASTNodeKind &LHS, const ASTNodeKind &RHS) { |
114 | 5.93M | return LHS.KindId == RHS.KindId; |
115 | 5.93M | } |
116 | | }; |
117 | | |
118 | | /// Check if the given ASTNodeKind identifies a type that offers pointer |
119 | | /// identity. This is useful for the fast path in DynTypedNode. |
120 | 416k | bool hasPointerIdentity() const { |
121 | 416k | return KindId > NKI_LastKindWithoutPointerIdentity; |
122 | 416k | } |
123 | | |
124 | | private: |
125 | | /// Kind ids. |
126 | | /// |
127 | | /// Includes all possible base and derived kinds. |
128 | | enum NodeKindId { |
129 | | NKI_None, |
130 | | NKI_TemplateArgument, |
131 | | NKI_TemplateArgumentLoc, |
132 | | NKI_TemplateName, |
133 | | NKI_NestedNameSpecifierLoc, |
134 | | NKI_QualType, |
135 | | NKI_TypeLoc, |
136 | | NKI_LastKindWithoutPointerIdentity = NKI_TypeLoc, |
137 | | NKI_CXXBaseSpecifier, |
138 | | NKI_CXXCtorInitializer, |
139 | | NKI_NestedNameSpecifier, |
140 | | NKI_Decl, |
141 | | #define DECL(DERIVED, BASE) NKI_##DERIVED##Decl, |
142 | | #include "clang/AST/DeclNodes.inc" |
143 | | NKI_Stmt, |
144 | | #define STMT(DERIVED, BASE) NKI_##DERIVED, |
145 | | #include "clang/AST/StmtNodes.inc" |
146 | | NKI_Type, |
147 | | #define TYPE(DERIVED, BASE) NKI_##DERIVED##Type, |
148 | | #include "clang/AST/TypeNodes.inc" |
149 | | NKI_OMPClause, |
150 | | #define GEN_CLANG_CLAUSE_CLASS |
151 | | #define CLAUSE_CLASS(Enum, Str, Class) NKI_##Class, |
152 | | #include "llvm/Frontend/OpenMP/OMP.inc" |
153 | | NKI_NumberOfKinds |
154 | | }; |
155 | | |
156 | | /// Use getFromNodeKind<T>() to construct the kind. |
157 | 7.92M | ASTNodeKind(NodeKindId KindId) : KindId(KindId) {} |
158 | | |
159 | | /// Returns \c true if \c Base is a base kind of (or same as) \c |
160 | | /// Derived. |
161 | | /// \param Distance If non-null, used to return the distance between \c Base |
162 | | /// and \c Derived in the class hierarchy. |
163 | | static bool isBaseOf(NodeKindId Base, NodeKindId Derived, unsigned *Distance); |
164 | | |
165 | | /// Helper meta-function to convert a kind T to its enum value. |
166 | | /// |
167 | | /// This struct is specialized below for all known kinds. |
168 | | template <class T> struct KindToKindId { |
169 | | static const NodeKindId Id = NKI_None; |
170 | | }; |
171 | | template <class T> |
172 | | struct KindToKindId<const T> : KindToKindId<T> {}; |
173 | | |
174 | | /// Per kind info. |
175 | | struct KindInfo { |
176 | | /// The id of the parent kind, or None if it has no parent. |
177 | | NodeKindId ParentId; |
178 | | /// Name of the kind. |
179 | | const char *Name; |
180 | | }; |
181 | | static const KindInfo AllKindInfo[NKI_NumberOfKinds]; |
182 | | |
183 | | NodeKindId KindId; |
184 | | }; |
185 | | |
186 | | #define KIND_TO_KIND_ID(Class) \ |
187 | | template <> struct ASTNodeKind::KindToKindId<Class> { \ |
188 | | static const NodeKindId Id = NKI_##Class; \ |
189 | | }; |
190 | | KIND_TO_KIND_ID(CXXCtorInitializer) |
191 | | KIND_TO_KIND_ID(TemplateArgument) |
192 | | KIND_TO_KIND_ID(TemplateArgumentLoc) |
193 | | KIND_TO_KIND_ID(TemplateName) |
194 | | KIND_TO_KIND_ID(NestedNameSpecifier) |
195 | | KIND_TO_KIND_ID(NestedNameSpecifierLoc) |
196 | | KIND_TO_KIND_ID(QualType) |
197 | | KIND_TO_KIND_ID(TypeLoc) |
198 | | KIND_TO_KIND_ID(Decl) |
199 | | KIND_TO_KIND_ID(Stmt) |
200 | | KIND_TO_KIND_ID(Type) |
201 | | KIND_TO_KIND_ID(OMPClause) |
202 | | KIND_TO_KIND_ID(CXXBaseSpecifier) |
203 | | #define DECL(DERIVED, BASE) KIND_TO_KIND_ID(DERIVED##Decl) |
204 | | #include "clang/AST/DeclNodes.inc" |
205 | | #define STMT(DERIVED, BASE) KIND_TO_KIND_ID(DERIVED) |
206 | | #include "clang/AST/StmtNodes.inc" |
207 | | #define TYPE(DERIVED, BASE) KIND_TO_KIND_ID(DERIVED##Type) |
208 | | #include "clang/AST/TypeNodes.inc" |
209 | | #define GEN_CLANG_CLAUSE_CLASS |
210 | | #define CLAUSE_CLASS(Enum, Str, Class) KIND_TO_KIND_ID(Class) |
211 | | #include "llvm/Frontend/OpenMP/OMP.inc" |
212 | | #undef KIND_TO_KIND_ID |
213 | | |
214 | 1.44k | inline raw_ostream &operator<<(raw_ostream &OS, ASTNodeKind K) { |
215 | 1.44k | OS << K.asStringRef(); |
216 | 1.44k | return OS; |
217 | 1.44k | } |
218 | | |
219 | | /// A dynamically typed AST node container. |
220 | | /// |
221 | | /// Stores an AST node in a type safe way. This allows writing code that |
222 | | /// works with different kinds of AST nodes, despite the fact that they don't |
223 | | /// have a common base class. |
224 | | /// |
225 | | /// Use \c create(Node) to create a \c DynTypedNode from an AST node, |
226 | | /// and \c get<T>() to retrieve the node as type T if the types match. |
227 | | /// |
228 | | /// See \c ASTNodeKind for which node base types are currently supported; |
229 | | /// You can create DynTypedNodes for all nodes in the inheritance hierarchy of |
230 | | /// the supported base types. |
231 | | class DynTypedNode { |
232 | | public: |
233 | | /// Creates a \c DynTypedNode from \c Node. |
234 | | template <typename T> |
235 | 1.16M | static DynTypedNode create(const T &Node) { |
236 | 1.16M | return BaseConverter<T>::create(Node); |
237 | 1.16M | } clang::DynTypedNode clang::DynTypedNode::create<clang::Decl>(clang::Decl const&) Line | Count | Source | 235 | 336k | static DynTypedNode create(const T &Node) { | 236 | 336k | return BaseConverter<T>::create(Node); | 237 | 336k | } |
clang::DynTypedNode clang::DynTypedNode::create<clang::Stmt>(clang::Stmt const&) Line | Count | Source | 235 | 233k | static DynTypedNode create(const T &Node) { | 236 | 233k | return BaseConverter<T>::create(Node); | 237 | 233k | } |
clang::DynTypedNode clang::DynTypedNode::create<clang::Expr>(clang::Expr const&) Line | Count | Source | 235 | 393k | static DynTypedNode create(const T &Node) { | 236 | 393k | return BaseConverter<T>::create(Node); | 237 | 393k | } |
clang::DynTypedNode clang::DynTypedNode::create<clang::TypeLoc>(clang::TypeLoc const&) Line | Count | Source | 235 | 69.6k | static DynTypedNode create(const T &Node) { | 236 | 69.6k | return BaseConverter<T>::create(Node); | 237 | 69.6k | } |
clang::DynTypedNode clang::DynTypedNode::create<clang::NestedNameSpecifierLoc>(clang::NestedNameSpecifierLoc const&) Line | Count | Source | 235 | 22.6k | static DynTypedNode create(const T &Node) { | 236 | 22.6k | return BaseConverter<T>::create(Node); | 237 | 22.6k | } |
clang::DynTypedNode clang::DynTypedNode::create<clang::TranslationUnitDecl>(clang::TranslationUnitDecl const&) Line | Count | Source | 235 | 413 | static DynTypedNode create(const T &Node) { | 236 | 413 | return BaseConverter<T>::create(Node); | 237 | 413 | } |
clang::DynTypedNode clang::DynTypedNode::create<clang::EnumConstantDecl>(clang::EnumConstantDecl const&) Line | Count | Source | 235 | 15 | static DynTypedNode create(const T &Node) { | 236 | 15 | return BaseConverter<T>::create(Node); | 237 | 15 | } |
clang::DynTypedNode clang::DynTypedNode::create<clang::DeclRefExpr>(clang::DeclRefExpr const&) Line | Count | Source | 235 | 59 | static DynTypedNode create(const T &Node) { | 236 | 59 | return BaseConverter<T>::create(Node); | 237 | 59 | } |
clang::DynTypedNode clang::DynTypedNode::create<clang::CompoundStmt>(clang::CompoundStmt const&) Line | Count | Source | 235 | 444 | static DynTypedNode create(const T &Node) { | 236 | 444 | return BaseConverter<T>::create(Node); | 237 | 444 | } |
clang::DynTypedNode clang::DynTypedNode::create<clang::UnaryOperator>(clang::UnaryOperator const&) Line | Count | Source | 235 | 33 | static DynTypedNode create(const T &Node) { | 236 | 33 | return BaseConverter<T>::create(Node); | 237 | 33 | } |
clang::DynTypedNode clang::DynTypedNode::create<clang::ExplicitCastExpr>(clang::ExplicitCastExpr const&) Line | Count | Source | 235 | 110 | static DynTypedNode create(const T &Node) { | 236 | 110 | return BaseConverter<T>::create(Node); | 237 | 110 | } |
clang::DynTypedNode clang::DynTypedNode::create<clang::ObjCAutoreleasePoolStmt>(clang::ObjCAutoreleasePoolStmt const&) Line | Count | Source | 235 | 25 | static DynTypedNode create(const T &Node) { | 236 | 25 | return BaseConverter<T>::create(Node); | 237 | 25 | } |
clang::DynTypedNode clang::DynTypedNode::create<clang::ObjCMethodDecl>(clang::ObjCMethodDecl const&) Line | Count | Source | 235 | 18 | static DynTypedNode create(const T &Node) { | 236 | 18 | return BaseConverter<T>::create(Node); | 237 | 18 | } |
clang::DynTypedNode clang::DynTypedNode::create<clang::BlockDecl>(clang::BlockDecl const&) Line | Count | Source | 235 | 1 | static DynTypedNode create(const T &Node) { | 236 | 1 | return BaseConverter<T>::create(Node); | 237 | 1 | } |
clang::DynTypedNode clang::DynTypedNode::create<clang::ObjCMessageExpr>(clang::ObjCMessageExpr const&) Line | Count | Source | 235 | 35 | static DynTypedNode create(const T &Node) { | 236 | 35 | return BaseConverter<T>::create(Node); | 237 | 35 | } |
clang::DynTypedNode clang::DynTypedNode::create<clang::InitListExpr>(clang::InitListExpr const&) Line | Count | Source | 235 | 156 | static DynTypedNode create(const T &Node) { | 236 | 156 | return BaseConverter<T>::create(Node); | 237 | 156 | } |
clang::DynTypedNode clang::DynTypedNode::create<clang::ObjCInterfaceDecl>(clang::ObjCInterfaceDecl const&) Line | Count | Source | 235 | 2.35k | static DynTypedNode create(const T &Node) { | 236 | 2.35k | return BaseConverter<T>::create(Node); | 237 | 2.35k | } |
clang::DynTypedNode clang::DynTypedNode::create<clang::ClassTemplateDecl>(clang::ClassTemplateDecl const&) Line | Count | Source | 235 | 144 | static DynTypedNode create(const T &Node) { | 236 | 144 | return BaseConverter<T>::create(Node); | 237 | 144 | } |
clang::DynTypedNode clang::DynTypedNode::create<clang::QualType>(clang::QualType const&) Line | Count | Source | 235 | 49.0k | static DynTypedNode create(const T &Node) { | 236 | 49.0k | return BaseConverter<T>::create(Node); | 237 | 49.0k | } |
clang::DynTypedNode clang::DynTypedNode::create<clang::TemplateName>(clang::TemplateName const&) Line | Count | Source | 235 | 2 | static DynTypedNode create(const T &Node) { | 236 | 2 | return BaseConverter<T>::create(Node); | 237 | 2 | } |
clang::DynTypedNode clang::DynTypedNode::create<clang::VarDecl>(clang::VarDecl const&) Line | Count | Source | 235 | 990 | static DynTypedNode create(const T &Node) { | 236 | 990 | return BaseConverter<T>::create(Node); | 237 | 990 | } |
clang::DynTypedNode clang::DynTypedNode::create<clang::CXXBaseSpecifier>(clang::CXXBaseSpecifier const&) Line | Count | Source | 235 | 520 | static DynTypedNode create(const T &Node) { | 236 | 520 | return BaseConverter<T>::create(Node); | 237 | 520 | } |
clang::DynTypedNode clang::DynTypedNode::create<clang::NamedDecl>(clang::NamedDecl const&) Line | Count | Source | 235 | 5.77k | static DynTypedNode create(const T &Node) { | 236 | 5.77k | return BaseConverter<T>::create(Node); | 237 | 5.77k | } |
clang::DynTypedNode clang::DynTypedNode::create<clang::Type>(clang::Type const&) Line | Count | Source | 235 | 40.3k | static DynTypedNode create(const T &Node) { | 236 | 40.3k | return BaseConverter<T>::create(Node); | 237 | 40.3k | } |
clang::DynTypedNode clang::DynTypedNode::create<clang::CXXMemberCallExpr>(clang::CXXMemberCallExpr const&) Line | Count | Source | 235 | 188 | static DynTypedNode create(const T &Node) { | 236 | 188 | return BaseConverter<T>::create(Node); | 237 | 188 | } |
clang::DynTypedNode clang::DynTypedNode::create<clang::UsingShadowDecl>(clang::UsingShadowDecl const&) Line | Count | Source | 235 | 30 | static DynTypedNode create(const T &Node) { | 236 | 30 | return BaseConverter<T>::create(Node); | 237 | 30 | } |
clang::DynTypedNode clang::DynTypedNode::create<clang::FieldDecl>(clang::FieldDecl const&) Line | Count | Source | 235 | 201 | static DynTypedNode create(const T &Node) { | 236 | 201 | return BaseConverter<T>::create(Node); | 237 | 201 | } |
clang::DynTypedNode clang::DynTypedNode::create<clang::DeclStmt>(clang::DeclStmt const&) Line | Count | Source | 235 | 162 | static DynTypedNode create(const T &Node) { | 236 | 162 | return BaseConverter<T>::create(Node); | 237 | 162 | } |
clang::DynTypedNode clang::DynTypedNode::create<clang::CXXRecordDecl>(clang::CXXRecordDecl const&) Line | Count | Source | 235 | 7.38k | static DynTypedNode create(const T &Node) { | 236 | 7.38k | return BaseConverter<T>::create(Node); | 237 | 7.38k | } |
clang::DynTypedNode clang::DynTypedNode::create<clang::CXXMethodDecl>(clang::CXXMethodDecl const&) Line | Count | Source | 235 | 662 | static DynTypedNode create(const T &Node) { | 236 | 662 | return BaseConverter<T>::create(Node); | 237 | 662 | } |
clang::DynTypedNode clang::DynTypedNode::create<clang::ValueDecl>(clang::ValueDecl const&) Line | Count | Source | 235 | 73 | static DynTypedNode create(const T &Node) { | 236 | 73 | return BaseConverter<T>::create(Node); | 237 | 73 | } |
clang::DynTypedNode clang::DynTypedNode::create<clang::NestedNameSpecifier>(clang::NestedNameSpecifier const&) Line | Count | Source | 235 | 940 | static DynTypedNode create(const T &Node) { | 236 | 940 | return BaseConverter<T>::create(Node); | 237 | 940 | } |
clang::DynTypedNode clang::DynTypedNode::create<clang::NamespaceDecl>(clang::NamespaceDecl const&) Line | Count | Source | 235 | 73 | static DynTypedNode create(const T &Node) { | 236 | 73 | return BaseConverter<T>::create(Node); | 237 | 73 | } |
clang::DynTypedNode clang::DynTypedNode::create<clang::SwitchCase>(clang::SwitchCase const&) Line | Count | Source | 235 | 23 | static DynTypedNode create(const T &Node) { | 236 | 23 | return BaseConverter<T>::create(Node); | 237 | 23 | } |
clang::DynTypedNode clang::DynTypedNode::create<clang::CXXCtorInitializer>(clang::CXXCtorInitializer const&) Line | Count | Source | 235 | 347 | static DynTypedNode create(const T &Node) { | 236 | 347 | return BaseConverter<T>::create(Node); | 237 | 347 | } |
clang::DynTypedNode clang::DynTypedNode::create<clang::FunctionDecl>(clang::FunctionDecl const&) Line | Count | Source | 235 | 1.89k | static DynTypedNode create(const T &Node) { | 236 | 1.89k | return BaseConverter<T>::create(Node); | 237 | 1.89k | } |
clang::DynTypedNode clang::DynTypedNode::create<clang::OMPClause>(clang::OMPClause const&) Line | Count | Source | 235 | 352 | static DynTypedNode create(const T &Node) { | 236 | 352 | return BaseConverter<T>::create(Node); | 237 | 352 | } |
clang::DynTypedNode clang::DynTypedNode::create<clang::ParmVarDecl>(clang::ParmVarDecl const&) Line | Count | Source | 235 | 671 | static DynTypedNode create(const T &Node) { | 236 | 671 | return BaseConverter<T>::create(Node); | 237 | 671 | } |
clang::DynTypedNode clang::DynTypedNode::create<clang::TemplateArgumentLoc>(clang::TemplateArgumentLoc const&) Line | Count | Source | 235 | 470 | static DynTypedNode create(const T &Node) { | 236 | 470 | return BaseConverter<T>::create(Node); | 237 | 470 | } |
clang::DynTypedNode clang::DynTypedNode::create<clang::TemplateArgument>(clang::TemplateArgument const&) Line | Count | Source | 235 | 265 | static DynTypedNode create(const T &Node) { | 236 | 265 | return BaseConverter<T>::create(Node); | 237 | 265 | } |
clang::DynTypedNode clang::DynTypedNode::create<clang::CastExpr>(clang::CastExpr const&) Line | Count | Source | 235 | 42 | static DynTypedNode create(const T &Node) { | 236 | 42 | return BaseConverter<T>::create(Node); | 237 | 42 | } |
clang::DynTypedNode clang::DynTypedNode::create<clang::ParenListExpr>(clang::ParenListExpr const&) Line | Count | Source | 235 | 30 | static DynTypedNode create(const T &Node) { | 236 | 30 | return BaseConverter<T>::create(Node); | 237 | 30 | } |
|
238 | | |
239 | | /// Retrieve the stored node as type \c T. |
240 | | /// |
241 | | /// Returns NULL if the stored node does not have a type that is |
242 | | /// convertible to \c T. |
243 | | /// |
244 | | /// For types that have identity via their pointer in the AST |
245 | | /// (like \c Stmt, \c Decl, \c Type and \c NestedNameSpecifier) the returned |
246 | | /// pointer points to the referenced AST node. |
247 | | /// For other types (like \c QualType) the value is stored directly |
248 | | /// in the \c DynTypedNode, and the returned pointer points at |
249 | | /// the storage inside DynTypedNode. For those nodes, do not |
250 | | /// use the pointer outside the scope of the DynTypedNode. |
251 | 954k | template <typename T> const T *get() const { |
252 | 954k | return BaseConverter<T>::get(NodeKind, &Storage); |
253 | 954k | } clang::Stmt const* clang::DynTypedNode::get<clang::Stmt>() const Line | Count | Source | 251 | 56.2k | template <typename T> const T *get() const { | 252 | 56.2k | return BaseConverter<T>::get(NodeKind, &Storage); | 253 | 56.2k | } |
clang::TemplateArgument const* clang::DynTypedNode::get<clang::TemplateArgument>() const Line | Count | Source | 251 | 9 | template <typename T> const T *get() const { | 252 | 9 | return BaseConverter<T>::get(NodeKind, &Storage); | 253 | 9 | } |
clang::TemplateArgumentLoc const* clang::DynTypedNode::get<clang::TemplateArgumentLoc>() const Line | Count | Source | 251 | 26 | template <typename T> const T *get() const { | 252 | 26 | return BaseConverter<T>::get(NodeKind, &Storage); | 253 | 26 | } |
clang::TemplateName const* clang::DynTypedNode::get<clang::TemplateName>() const Line | Count | Source | 251 | 8 | template <typename T> const T *get() const { | 252 | 8 | return BaseConverter<T>::get(NodeKind, &Storage); | 253 | 8 | } |
clang::NestedNameSpecifier const* clang::DynTypedNode::get<clang::NestedNameSpecifier>() const Line | Count | Source | 251 | 347 | template <typename T> const T *get() const { | 252 | 347 | return BaseConverter<T>::get(NodeKind, &Storage); | 253 | 347 | } |
clang::NestedNameSpecifierLoc const* clang::DynTypedNode::get<clang::NestedNameSpecifierLoc>() const Line | Count | Source | 251 | 5.62k | template <typename T> const T *get() const { | 252 | 5.62k | return BaseConverter<T>::get(NodeKind, &Storage); | 253 | 5.62k | } |
clang::QualType const* clang::DynTypedNode::get<clang::QualType>() const Line | Count | Source | 251 | 264 | template <typename T> const T *get() const { | 252 | 264 | return BaseConverter<T>::get(NodeKind, &Storage); | 253 | 264 | } |
clang::TypeLoc const* clang::DynTypedNode::get<clang::TypeLoc>() const Line | Count | Source | 251 | 5.53k | template <typename T> const T *get() const { | 252 | 5.53k | return BaseConverter<T>::get(NodeKind, &Storage); | 253 | 5.53k | } |
clang::Type const* clang::DynTypedNode::get<clang::Type>() const Line | Count | Source | 251 | 62 | template <typename T> const T *get() const { | 252 | 62 | return BaseConverter<T>::get(NodeKind, &Storage); | 253 | 62 | } |
clang::CXXCtorInitializer const* clang::DynTypedNode::get<clang::CXXCtorInitializer>() const Line | Count | Source | 251 | 360 | template <typename T> const T *get() const { | 252 | 360 | return BaseConverter<T>::get(NodeKind, &Storage); | 253 | 360 | } |
clang::OMPClause const* clang::DynTypedNode::get<clang::OMPClause>() const Line | Count | Source | 251 | 1 | template <typename T> const T *get() const { | 252 | 1 | return BaseConverter<T>::get(NodeKind, &Storage); | 253 | 1 | } |
clang::Expr const* clang::DynTypedNode::get<clang::Expr>() const Line | Count | Source | 251 | 765k | template <typename T> const T *get() const { | 252 | 765k | return BaseConverter<T>::get(NodeKind, &Storage); | 253 | 765k | } |
clang::Decl const* clang::DynTypedNode::get<clang::Decl>() const Line | Count | Source | 251 | 107k | template <typename T> const T *get() const { | 252 | 107k | return BaseConverter<T>::get(NodeKind, &Storage); | 253 | 107k | } |
clang::DeclStmt const* clang::DynTypedNode::get<clang::DeclStmt>() const Line | Count | Source | 251 | 300 | template <typename T> const T *get() const { | 252 | 300 | return BaseConverter<T>::get(NodeKind, &Storage); | 253 | 300 | } |
clang::CompoundStmt const* clang::DynTypedNode::get<clang::CompoundStmt>() const Line | Count | Source | 251 | 104 | template <typename T> const T *get() const { | 252 | 104 | return BaseConverter<T>::get(NodeKind, &Storage); | 253 | 104 | } |
clang::CallExpr const* clang::DynTypedNode::get<clang::CallExpr>() const Line | Count | Source | 251 | 129 | template <typename T> const T *get() const { | 252 | 129 | return BaseConverter<T>::get(NodeKind, &Storage); | 253 | 129 | } |
clang::ParmVarDecl const* clang::DynTypedNode::get<clang::ParmVarDecl>() const Line | Count | Source | 251 | 88 | template <typename T> const T *get() const { | 252 | 88 | return BaseConverter<T>::get(NodeKind, &Storage); | 253 | 88 | } |
clang::ObjCMethodDecl const* clang::DynTypedNode::get<clang::ObjCMethodDecl>() const Line | Count | Source | 251 | 17 | template <typename T> const T *get() const { | 252 | 17 | return BaseConverter<T>::get(NodeKind, &Storage); | 253 | 17 | } |
clang::ObjCAutoreleasePoolStmt const* clang::DynTypedNode::get<clang::ObjCAutoreleasePoolStmt>() const Line | Count | Source | 251 | 17 | template <typename T> const T *get() const { | 252 | 17 | return BaseConverter<T>::get(NodeKind, &Storage); | 253 | 17 | } |
clang::CastExpr const* clang::DynTypedNode::get<clang::CastExpr>() const Line | Count | Source | 251 | 1 | template <typename T> const T *get() const { | 252 | 1 | return BaseConverter<T>::get(NodeKind, &Storage); | 253 | 1 | } |
clang::CXXRecordDecl const* clang::DynTypedNode::get<clang::CXXRecordDecl>() const Line | Count | Source | 251 | 853 | template <typename T> const T *get() const { | 252 | 853 | return BaseConverter<T>::get(NodeKind, &Storage); | 253 | 853 | } |
clang::ObjCMessageExpr const* clang::DynTypedNode::get<clang::ObjCMessageExpr>() const Line | Count | Source | 251 | 18 | template <typename T> const T *get() const { | 252 | 18 | return BaseConverter<T>::get(NodeKind, &Storage); | 253 | 18 | } |
clang::MemberExpr const* clang::DynTypedNode::get<clang::MemberExpr>() const Line | Count | Source | 251 | 27 | template <typename T> const T *get() const { | 252 | 27 | return BaseConverter<T>::get(NodeKind, &Storage); | 253 | 27 | } |
clang::ForStmt const* clang::DynTypedNode::get<clang::ForStmt>() const Line | Count | Source | 251 | 24 | template <typename T> const T *get() const { | 252 | 24 | return BaseConverter<T>::get(NodeKind, &Storage); | 253 | 24 | } |
clang::IfStmt const* clang::DynTypedNode::get<clang::IfStmt>() const Line | Count | Source | 251 | 175 | template <typename T> const T *get() const { | 252 | 175 | return BaseConverter<T>::get(NodeKind, &Storage); | 253 | 175 | } |
clang::CXXForRangeStmt const* clang::DynTypedNode::get<clang::CXXForRangeStmt>() const Line | Count | Source | 251 | 22 | template <typename T> const T *get() const { | 252 | 22 | return BaseConverter<T>::get(NodeKind, &Storage); | 253 | 22 | } |
clang::ObjCIvarRefExpr const* clang::DynTypedNode::get<clang::ObjCIvarRefExpr>() const Line | Count | Source | 251 | 2 | template <typename T> const T *get() const { | 252 | 2 | return BaseConverter<T>::get(NodeKind, &Storage); | 253 | 2 | } |
clang::IntegerLiteral const* clang::DynTypedNode::get<clang::IntegerLiteral>() const Line | Count | Source | 251 | 245 | template <typename T> const T *get() const { | 252 | 245 | return BaseConverter<T>::get(NodeKind, &Storage); | 253 | 245 | } |
clang::BinaryOperator const* clang::DynTypedNode::get<clang::BinaryOperator>() const Line | Count | Source | 251 | 114 | template <typename T> const T *get() const { | 252 | 114 | return BaseConverter<T>::get(NodeKind, &Storage); | 253 | 114 | } |
clang::VarDecl const* clang::DynTypedNode::get<clang::VarDecl>() const Line | Count | Source | 251 | 1.45k | template <typename T> const T *get() const { | 252 | 1.45k | return BaseConverter<T>::get(NodeKind, &Storage); | 253 | 1.45k | } |
clang::NamedDecl const* clang::DynTypedNode::get<clang::NamedDecl>() const Line | Count | Source | 251 | 1.15k | template <typename T> const T *get() const { | 252 | 1.15k | return BaseConverter<T>::get(NodeKind, &Storage); | 253 | 1.15k | } |
clang::FunctionDecl const* clang::DynTypedNode::get<clang::FunctionDecl>() const Line | Count | Source | 251 | 5.07k | template <typename T> const T *get() const { | 252 | 5.07k | return BaseConverter<T>::get(NodeKind, &Storage); | 253 | 5.07k | } |
clang::LambdaExpr const* clang::DynTypedNode::get<clang::LambdaExpr>() const Line | Count | Source | 251 | 2.17k | template <typename T> const T *get() const { | 252 | 2.17k | return BaseConverter<T>::get(NodeKind, &Storage); | 253 | 2.17k | } |
clang::TranslationUnitDecl const* clang::DynTypedNode::get<clang::TranslationUnitDecl>() const Line | Count | Source | 251 | 887 | template <typename T> const T *get() const { | 252 | 887 | return BaseConverter<T>::get(NodeKind, &Storage); | 253 | 887 | } |
clang::CXXThisExpr const* clang::DynTypedNode::get<clang::CXXThisExpr>() const Line | Count | Source | 251 | 146 | template <typename T> const T *get() const { | 252 | 146 | return BaseConverter<T>::get(NodeKind, &Storage); | 253 | 146 | } |
clang::DeclRefExpr const* clang::DynTypedNode::get<clang::DeclRefExpr>() const Line | Count | Source | 251 | 117 | template <typename T> const T *get() const { | 252 | 117 | return BaseConverter<T>::get(NodeKind, &Storage); | 253 | 117 | } |
clang::InitListExpr const* clang::DynTypedNode::get<clang::InitListExpr>() const Line | Count | Source | 251 | 5 | template <typename T> const T *get() const { | 252 | 5 | return BaseConverter<T>::get(NodeKind, &Storage); | 253 | 5 | } |
|
254 | | |
255 | | /// Retrieve the stored node as type \c T. |
256 | | /// |
257 | | /// Similar to \c get(), but asserts that the type is what we are expecting. |
258 | | template <typename T> |
259 | 339k | const T &getUnchecked() const { |
260 | 339k | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); |
261 | 339k | } clang::QualType const& clang::DynTypedNode::getUnchecked<clang::QualType>() const Line | Count | Source | 259 | 33.0k | const T &getUnchecked() const { | 260 | 33.0k | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 33.0k | } |
clang::TypeLoc const& clang::DynTypedNode::getUnchecked<clang::TypeLoc>() const Line | Count | Source | 259 | 76.1k | const T &getUnchecked() const { | 260 | 76.1k | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 76.1k | } |
clang::NestedNameSpecifierLoc const& clang::DynTypedNode::getUnchecked<clang::NestedNameSpecifierLoc>() const Line | Count | Source | 259 | 1.44k | const T &getUnchecked() const { | 260 | 1.44k | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 1.44k | } |
clang::IntegerLiteral const& clang::DynTypedNode::getUnchecked<clang::IntegerLiteral>() const Line | Count | Source | 259 | 799 | const T &getUnchecked() const { | 260 | 799 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 799 | } |
clang::TypedefType const& clang::DynTypedNode::getUnchecked<clang::TypedefType>() const Line | Count | Source | 259 | 305 | const T &getUnchecked() const { | 260 | 305 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 305 | } |
clang::RecordType const& clang::DynTypedNode::getUnchecked<clang::RecordType>() const Line | Count | Source | 259 | 255 | const T &getUnchecked() const { | 260 | 255 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 255 | } |
clang::ObjCObjectPointerType const& clang::DynTypedNode::getUnchecked<clang::ObjCObjectPointerType>() const Line | Count | Source | 259 | 120 | const T &getUnchecked() const { | 260 | 120 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 120 | } |
clang::ConditionalOperator const& clang::DynTypedNode::getUnchecked<clang::ConditionalOperator>() const Line | Count | Source | 259 | 79 | const T &getUnchecked() const { | 260 | 79 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 79 | } |
clang::ObjCAutoreleasePoolStmt const& clang::DynTypedNode::getUnchecked<clang::ObjCAutoreleasePoolStmt>() const Line | Count | Source | 259 | 25 | const T &getUnchecked() const { | 260 | 25 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 25 | } |
clang::BlockDecl const& clang::DynTypedNode::getUnchecked<clang::BlockDecl>() const Line | Count | Source | 259 | 29 | const T &getUnchecked() const { | 260 | 29 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 29 | } |
clang::PointerType const& clang::DynTypedNode::getUnchecked<clang::PointerType>() const Line | Count | Source | 259 | 698 | const T &getUnchecked() const { | 260 | 698 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 698 | } |
clang::CStyleCastExpr const& clang::DynTypedNode::getUnchecked<clang::CStyleCastExpr>() const Line | Count | Source | 259 | 40 | const T &getUnchecked() const { | 260 | 40 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 40 | } |
clang::ObjCIvarRefExpr const& clang::DynTypedNode::getUnchecked<clang::ObjCIvarRefExpr>() const Line | Count | Source | 259 | 58 | const T &getUnchecked() const { | 260 | 58 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 58 | } |
clang::BinaryOperator const& clang::DynTypedNode::getUnchecked<clang::BinaryOperator>() const Line | Count | Source | 259 | 5.26k | const T &getUnchecked() const { | 260 | 5.26k | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 5.26k | } |
clang::UnaryOperator const& clang::DynTypedNode::getUnchecked<clang::UnaryOperator>() const Line | Count | Source | 259 | 2.98k | const T &getUnchecked() const { | 260 | 2.98k | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 2.98k | } |
clang::ObjCInterfaceDecl const& clang::DynTypedNode::getUnchecked<clang::ObjCInterfaceDecl>() const Line | Count | Source | 259 | 4.31k | const T &getUnchecked() const { | 260 | 4.31k | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 4.31k | } |
clang::FieldDecl const& clang::DynTypedNode::getUnchecked<clang::FieldDecl>() const Line | Count | Source | 259 | 839 | const T &getUnchecked() const { | 260 | 839 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 839 | } |
clang::FunctionDecl const& clang::DynTypedNode::getUnchecked<clang::FunctionDecl>() const Line | Count | Source | 259 | 4.87k | const T &getUnchecked() const { | 260 | 4.87k | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 4.87k | } |
clang::ClassTemplateSpecializationDecl const& clang::DynTypedNode::getUnchecked<clang::ClassTemplateSpecializationDecl>() const Line | Count | Source | 259 | 353 | const T &getUnchecked() const { | 260 | 353 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 353 | } |
clang::Decl const& clang::DynTypedNode::getUnchecked<clang::Decl>() const Line | Count | Source | 259 | 10.4k | const T &getUnchecked() const { | 260 | 10.4k | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 10.4k | } |
clang::Expr const& clang::DynTypedNode::getUnchecked<clang::Expr>() const Line | Count | Source | 259 | 33.7k | const T &getUnchecked() const { | 260 | 33.7k | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 33.7k | } |
clang::TemplateArgument const& clang::DynTypedNode::getUnchecked<clang::TemplateArgument>() const Line | Count | Source | 259 | 238 | const T &getUnchecked() const { | 260 | 238 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 238 | } |
clang::CallExpr const& clang::DynTypedNode::getUnchecked<clang::CallExpr>() const Line | Count | Source | 259 | 6.02k | const T &getUnchecked() const { | 260 | 6.02k | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 6.02k | } |
clang::InitListExpr const& clang::DynTypedNode::getUnchecked<clang::InitListExpr>() const Line | Count | Source | 259 | 294 | const T &getUnchecked() const { | 260 | 294 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 294 | } |
clang::ForStmt const& clang::DynTypedNode::getUnchecked<clang::ForStmt>() const Line | Count | Source | 259 | 693 | const T &getUnchecked() const { | 260 | 693 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 693 | } |
clang::CXXForRangeStmt const& clang::DynTypedNode::getUnchecked<clang::CXXForRangeStmt>() const Line | Count | Source | 259 | 165 | const T &getUnchecked() const { | 260 | 165 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 165 | } |
clang::DesignatedInitExpr const& clang::DynTypedNode::getUnchecked<clang::DesignatedInitExpr>() const Line | Count | Source | 259 | 160 | const T &getUnchecked() const { | 260 | 160 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 160 | } |
clang::UnaryExprOrTypeTraitExpr const& clang::DynTypedNode::getUnchecked<clang::UnaryExprOrTypeTraitExpr>() const Line | Count | Source | 259 | 291 | const T &getUnchecked() const { | 260 | 291 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 291 | } |
clang::NamedDecl const& clang::DynTypedNode::getUnchecked<clang::NamedDecl>() const Line | Count | Source | 259 | 76.8k | const T &getUnchecked() const { | 260 | 76.8k | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 76.8k | } |
clang::CXXDependentScopeMemberExpr const& clang::DynTypedNode::getUnchecked<clang::CXXDependentScopeMemberExpr>() const Line | Count | Source | 259 | 99 | const T &getUnchecked() const { | 260 | 99 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 99 | } |
clang::CXXRecordDecl const& clang::DynTypedNode::getUnchecked<clang::CXXRecordDecl>() const Line | Count | Source | 259 | 16.2k | const T &getUnchecked() const { | 260 | 16.2k | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 16.2k | } |
clang::CXXMemberCallExpr const& clang::DynTypedNode::getUnchecked<clang::CXXMemberCallExpr>() const Line | Count | Source | 259 | 753 | const T &getUnchecked() const { | 260 | 753 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 753 | } |
clang::ObjCMessageExpr const& clang::DynTypedNode::getUnchecked<clang::ObjCMessageExpr>() const Line | Count | Source | 259 | 262 | const T &getUnchecked() const { | 260 | 262 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 262 | } |
clang::ObjCMethodDecl const& clang::DynTypedNode::getUnchecked<clang::ObjCMethodDecl>() const Line | Count | Source | 259 | 111 | const T &getUnchecked() const { | 260 | 111 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 111 | } |
clang::DeclaratorDecl const& clang::DynTypedNode::getUnchecked<clang::DeclaratorDecl>() const Line | Count | Source | 259 | 30 | const T &getUnchecked() const { | 260 | 30 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 30 | } |
clang::Type const& clang::DynTypedNode::getUnchecked<clang::Type>() const Line | Count | Source | 259 | 1.51k | const T &getUnchecked() const { | 260 | 1.51k | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 1.51k | } |
clang::DeclRefExpr const& clang::DynTypedNode::getUnchecked<clang::DeclRefExpr>() const Line | Count | Source | 259 | 3.33k | const T &getUnchecked() const { | 260 | 3.33k | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 3.33k | } |
clang::OverloadExpr const& clang::DynTypedNode::getUnchecked<clang::OverloadExpr>() const Line | Count | Source | 259 | 14 | const T &getUnchecked() const { | 260 | 14 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 14 | } |
clang::DeclStmt const& clang::DynTypedNode::getUnchecked<clang::DeclStmt>() const Line | Count | Source | 259 | 644 | const T &getUnchecked() const { | 260 | 644 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 644 | } |
clang::VarDecl const& clang::DynTypedNode::getUnchecked<clang::VarDecl>() const Line | Count | Source | 259 | 6.35k | const T &getUnchecked() const { | 260 | 6.35k | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 6.35k | } |
clang::CXXCatchStmt const& clang::DynTypedNode::getUnchecked<clang::CXXCatchStmt>() const Line | Count | Source | 259 | 100 | const T &getUnchecked() const { | 260 | 100 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 100 | } |
clang::CXXConstructorDecl const& clang::DynTypedNode::getUnchecked<clang::CXXConstructorDecl>() const Line | Count | Source | 259 | 1.05k | const T &getUnchecked() const { | 260 | 1.05k | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 1.05k | } |
clang::CXXCtorInitializer const& clang::DynTypedNode::getUnchecked<clang::CXXCtorInitializer>() const Line | Count | Source | 259 | 206 | const T &getUnchecked() const { | 260 | 206 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 206 | } |
clang::LambdaExpr const& clang::DynTypedNode::getUnchecked<clang::LambdaExpr>() const Line | Count | Source | 259 | 52 | const T &getUnchecked() const { | 260 | 52 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 52 | } |
clang::CXXConstructExpr const& clang::DynTypedNode::getUnchecked<clang::CXXConstructExpr>() const Line | Count | Source | 259 | 691 | const T &getUnchecked() const { | 260 | 691 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 691 | } |
clang::ParmVarDecl const& clang::DynTypedNode::getUnchecked<clang::ParmVarDecl>() const Line | Count | Source | 259 | 1.73k | const T &getUnchecked() const { | 260 | 1.73k | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 1.73k | } |
clang::IfStmt const& clang::DynTypedNode::getUnchecked<clang::IfStmt>() const Line | Count | Source | 259 | 417 | const T &getUnchecked() const { | 260 | 417 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 417 | } |
clang::ArraySubscriptExpr const& clang::DynTypedNode::getUnchecked<clang::ArraySubscriptExpr>() const Line | Count | Source | 259 | 22 | const T &getUnchecked() const { | 260 | 22 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 22 | } |
clang::CompoundStmt const& clang::DynTypedNode::getUnchecked<clang::CompoundStmt>() const Line | Count | Source | 259 | 1.05k | const T &getUnchecked() const { | 260 | 1.05k | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 1.05k | } |
clang::CastExpr const& clang::DynTypedNode::getUnchecked<clang::CastExpr>() const Line | Count | Source | 259 | 3.62k | const T &getUnchecked() const { | 260 | 3.62k | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 3.62k | } |
clang::ExplicitCastExpr const& clang::DynTypedNode::getUnchecked<clang::ExplicitCastExpr>() const Line | Count | Source | 259 | 351 | const T &getUnchecked() const { | 260 | 351 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 351 | } |
clang::ImplicitCastExpr const& clang::DynTypedNode::getUnchecked<clang::ImplicitCastExpr>() const Line | Count | Source | 259 | 239 | const T &getUnchecked() const { | 260 | 239 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 239 | } |
clang::TagDecl const& clang::DynTypedNode::getUnchecked<clang::TagDecl>() const Line | Count | Source | 259 | 270 | const T &getUnchecked() const { | 260 | 270 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 270 | } |
clang::AbstractConditionalOperator const& clang::DynTypedNode::getUnchecked<clang::AbstractConditionalOperator>() const Line | Count | Source | 259 | 583 | const T &getUnchecked() const { | 260 | 583 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 583 | } |
clang::CXXMethodDecl const& clang::DynTypedNode::getUnchecked<clang::CXXMethodDecl>() const Line | Count | Source | 259 | 3.47k | const T &getUnchecked() const { | 260 | 3.47k | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 3.47k | } |
clang::MemberExpr const& clang::DynTypedNode::getUnchecked<clang::MemberExpr>() const Line | Count | Source | 259 | 464 | const T &getUnchecked() const { | 260 | 464 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 464 | } |
clang::UsingDecl const& clang::DynTypedNode::getUnchecked<clang::UsingDecl>() const Line | Count | Source | 259 | 26 | const T &getUnchecked() const { | 260 | 26 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 26 | } |
clang::UsingShadowDecl const& clang::DynTypedNode::getUnchecked<clang::UsingShadowDecl>() const Line | Count | Source | 259 | 8 | const T &getUnchecked() const { | 260 | 8 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 8 | } |
clang::VariableArrayType const& clang::DynTypedNode::getUnchecked<clang::VariableArrayType>() const Line | Count | Source | 259 | 28 | const T &getUnchecked() const { | 260 | 28 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 28 | } |
clang::ElaboratedType const& clang::DynTypedNode::getUnchecked<clang::ElaboratedType>() const Line | Count | Source | 259 | 12 | const T &getUnchecked() const { | 260 | 12 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 12 | } |
clang::DecayedType const& clang::DynTypedNode::getUnchecked<clang::DecayedType>() const Line | Count | Source | 259 | 28 | const T &getUnchecked() const { | 260 | 28 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 28 | } |
clang::NestedNameSpecifier const& clang::DynTypedNode::getUnchecked<clang::NestedNameSpecifier>() const Line | Count | Source | 259 | 292 | const T &getUnchecked() const { | 260 | 292 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 292 | } |
clang::Stmt const& clang::DynTypedNode::getUnchecked<clang::Stmt>() const Line | Count | Source | 259 | 28.9k | const T &getUnchecked() const { | 260 | 28.9k | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 28.9k | } |
clang::SwitchStmt const& clang::DynTypedNode::getUnchecked<clang::SwitchStmt>() const Line | Count | Source | 259 | 63 | const T &getUnchecked() const { | 260 | 63 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 63 | } |
clang::NamespaceDecl const& clang::DynTypedNode::getUnchecked<clang::NamespaceDecl>() const Line | Count | Source | 259 | 69 | const T &getUnchecked() const { | 260 | 69 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 69 | } |
clang::CaseStmt const& clang::DynTypedNode::getUnchecked<clang::CaseStmt>() const Line | Count | Source | 259 | 10 | const T &getUnchecked() const { | 260 | 10 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 10 | } |
clang::ReturnStmt const& clang::DynTypedNode::getUnchecked<clang::ReturnStmt>() const Line | Count | Source | 259 | 61 | const T &getUnchecked() const { | 260 | 61 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 61 | } |
clang::CXXNewExpr const& clang::DynTypedNode::getUnchecked<clang::CXXNewExpr>() const Line | Count | Source | 259 | 56 | const T &getUnchecked() const { | 260 | 56 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 56 | } |
clang::EnumDecl const& clang::DynTypedNode::getUnchecked<clang::EnumDecl>() const Line | Count | Source | 259 | 53 | const T &getUnchecked() const { | 260 | 53 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 53 | } |
clang::OMPExecutableDirective const& clang::DynTypedNode::getUnchecked<clang::OMPExecutableDirective>() const Line | Count | Source | 259 | 804 | const T &getUnchecked() const { | 260 | 804 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 804 | } |
clang::OMPDefaultClause const& clang::DynTypedNode::getUnchecked<clang::OMPDefaultClause>() const Line | Count | Source | 259 | 174 | const T &getUnchecked() const { | 260 | 174 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 174 | } |
clang::FriendDecl const& clang::DynTypedNode::getUnchecked<clang::FriendDecl>() const Line | Count | Source | 259 | 58 | const T &getUnchecked() const { | 260 | 58 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 58 | } |
clang::TypedefNameDecl const& clang::DynTypedNode::getUnchecked<clang::TypedefNameDecl>() const Line | Count | Source | 259 | 26 | const T &getUnchecked() const { | 260 | 26 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 26 | } |
clang::ValueDecl const& clang::DynTypedNode::getUnchecked<clang::ValueDecl>() const Line | Count | Source | 259 | 102 | const T &getUnchecked() const { | 260 | 102 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 102 | } |
clang::CXXBaseSpecifier const& clang::DynTypedNode::getUnchecked<clang::CXXBaseSpecifier>() const Line | Count | Source | 259 | 520 | const T &getUnchecked() const { | 260 | 520 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 520 | } |
clang::CharacterLiteral const& clang::DynTypedNode::getUnchecked<clang::CharacterLiteral>() const Line | Count | Source | 259 | 8 | const T &getUnchecked() const { | 260 | 8 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 8 | } |
clang::CXXBoolLiteralExpr const& clang::DynTypedNode::getUnchecked<clang::CXXBoolLiteralExpr>() const Line | Count | Source | 259 | 362 | const T &getUnchecked() const { | 260 | 362 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 362 | } |
clang::FloatingLiteral const& clang::DynTypedNode::getUnchecked<clang::FloatingLiteral>() const Line | Count | Source | 259 | 336 | const T &getUnchecked() const { | 260 | 336 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 336 | } |
clang::CXXUnresolvedConstructExpr const& clang::DynTypedNode::getUnchecked<clang::CXXUnresolvedConstructExpr>() const Line | Count | Source | 259 | 16 | const T &getUnchecked() const { | 260 | 16 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 16 | } |
clang::CXXOperatorCallExpr const& clang::DynTypedNode::getUnchecked<clang::CXXOperatorCallExpr>() const Line | Count | Source | 259 | 1.45k | const T &getUnchecked() const { | 260 | 1.45k | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 1.45k | } |
clang::CXXRewrittenBinaryOperator const& clang::DynTypedNode::getUnchecked<clang::CXXRewrittenBinaryOperator>() const Line | Count | Source | 259 | 512 | const T &getUnchecked() const { | 260 | 512 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 512 | } |
clang::StmtExpr const& clang::DynTypedNode::getUnchecked<clang::StmtExpr>() const Line | Count | Source | 259 | 16 | const T &getUnchecked() const { | 260 | 16 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 16 | } |
clang::TemplateSpecializationType const& clang::DynTypedNode::getUnchecked<clang::TemplateSpecializationType>() const Line | Count | Source | 259 | 72 | const T &getUnchecked() const { | 260 | 72 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 72 | } |
clang::DoStmt const& clang::DynTypedNode::getUnchecked<clang::DoStmt>() const Line | Count | Source | 259 | 2 | const T &getUnchecked() const { | 260 | 2 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 2 | } |
clang::WhileStmt const& clang::DynTypedNode::getUnchecked<clang::WhileStmt>() const Line | Count | Source | 259 | 6 | const T &getUnchecked() const { | 260 | 6 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 6 | } |
Unexecuted instantiation: clang::EnumType const& clang::DynTypedNode::getUnchecked<clang::EnumType>() const Unexecuted instantiation: clang::InjectedClassNameType const& clang::DynTypedNode::getUnchecked<clang::InjectedClassNameType>() const clang::LabelStmt const& clang::DynTypedNode::getUnchecked<clang::LabelStmt>() const Line | Count | Source | 259 | 36 | const T &getUnchecked() const { | 260 | 36 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 36 | } |
clang::AddrLabelExpr const& clang::DynTypedNode::getUnchecked<clang::AddrLabelExpr>() const Line | Count | Source | 259 | 8 | const T &getUnchecked() const { | 260 | 8 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 8 | } |
Unexecuted instantiation: clang::TagType const& clang::DynTypedNode::getUnchecked<clang::TagType>() const Unexecuted instantiation: clang::TemplateTypeParmType const& clang::DynTypedNode::getUnchecked<clang::TemplateTypeParmType>() const Unexecuted instantiation: clang::UnresolvedUsingType const& clang::DynTypedNode::getUnchecked<clang::UnresolvedUsingType>() const Unexecuted instantiation: clang::AutoType const& clang::DynTypedNode::getUnchecked<clang::AutoType>() const clang::FunctionProtoType const& clang::DynTypedNode::getUnchecked<clang::FunctionProtoType>() const Line | Count | Source | 259 | 212 | const T &getUnchecked() const { | 260 | 212 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 212 | } |
clang::ArrayType const& clang::DynTypedNode::getUnchecked<clang::ArrayType>() const Line | Count | Source | 259 | 144 | const T &getUnchecked() const { | 260 | 144 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 144 | } |
clang::ComplexType const& clang::DynTypedNode::getUnchecked<clang::ComplexType>() const Line | Count | Source | 259 | 56 | const T &getUnchecked() const { | 260 | 56 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 56 | } |
clang::UnresolvedMemberExpr const& clang::DynTypedNode::getUnchecked<clang::UnresolvedMemberExpr>() const Line | Count | Source | 259 | 42 | const T &getUnchecked() const { | 260 | 42 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 42 | } |
clang::SubstTemplateTypeParmType const& clang::DynTypedNode::getUnchecked<clang::SubstTemplateTypeParmType>() const Line | Count | Source | 259 | 4 | const T &getUnchecked() const { | 260 | 4 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 4 | } |
clang::ConstantArrayType const& clang::DynTypedNode::getUnchecked<clang::ConstantArrayType>() const Line | Count | Source | 259 | 148 | const T &getUnchecked() const { | 260 | 148 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 148 | } |
clang::StringLiteral const& clang::DynTypedNode::getUnchecked<clang::StringLiteral>() const Line | Count | Source | 259 | 144 | const T &getUnchecked() const { | 260 | 144 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 144 | } |
clang::OpaqueValueExpr const& clang::DynTypedNode::getUnchecked<clang::OpaqueValueExpr>() const Line | Count | Source | 259 | 46 | const T &getUnchecked() const { | 260 | 46 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 46 | } |
clang::DecltypeType const& clang::DynTypedNode::getUnchecked<clang::DecltypeType>() const Line | Count | Source | 259 | 16 | const T &getUnchecked() const { | 260 | 16 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 16 | } |
clang::AtomicType const& clang::DynTypedNode::getUnchecked<clang::AtomicType>() const Line | Count | Source | 259 | 56 | const T &getUnchecked() const { | 260 | 56 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 56 | } |
clang::ParenType const& clang::DynTypedNode::getUnchecked<clang::ParenType>() const Line | Count | Source | 259 | 58 | const T &getUnchecked() const { | 260 | 58 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 58 | } |
clang::CXXConversionDecl const& clang::DynTypedNode::getUnchecked<clang::CXXConversionDecl>() const Line | Count | Source | 259 | 44 | const T &getUnchecked() const { | 260 | 44 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 44 | } |
clang::CXXDeductionGuideDecl const& clang::DynTypedNode::getUnchecked<clang::CXXDeductionGuideDecl>() const Line | Count | Source | 259 | 96 | const T &getUnchecked() const { | 260 | 96 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 96 | } |
Unexecuted instantiation: clang::BlockPointerType const& clang::DynTypedNode::getUnchecked<clang::BlockPointerType>() const Unexecuted instantiation: clang::MemberPointerType const& clang::DynTypedNode::getUnchecked<clang::MemberPointerType>() const clang::ReferenceType const& clang::DynTypedNode::getUnchecked<clang::ReferenceType>() const Line | Count | Source | 259 | 306 | const T &getUnchecked() const { | 260 | 306 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 306 | } |
clang::CXXTypeidExpr const& clang::DynTypedNode::getUnchecked<clang::CXXTypeidExpr>() const Line | Count | Source | 259 | 2 | const T &getUnchecked() const { | 260 | 2 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 2 | } |
clang::GenericSelectionExpr const& clang::DynTypedNode::getUnchecked<clang::GenericSelectionExpr>() const Line | Count | Source | 259 | 1 | const T &getUnchecked() const { | 260 | 1 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 1 | } |
clang::ParenListExpr const& clang::DynTypedNode::getUnchecked<clang::ParenListExpr>() const Line | Count | Source | 259 | 30 | const T &getUnchecked() const { | 260 | 30 | return BaseConverter<T>::getUnchecked(NodeKind, &Storage); | 261 | 30 | } |
|
262 | | |
263 | 1.17M | ASTNodeKind getNodeKind() const { return NodeKind; } |
264 | | |
265 | | /// Returns a pointer that identifies the stored AST node. |
266 | | /// |
267 | | /// Note that this is not supported by all AST nodes. For AST nodes |
268 | | /// that don't have a pointer-defined identity inside the AST, this |
269 | | /// method returns NULL. |
270 | 398k | const void *getMemoizationData() const { |
271 | 398k | return NodeKind.hasPointerIdentity() |
272 | 398k | ? *reinterpret_cast<void *const *>(&Storage) |
273 | 793 | : nullptr; |
274 | 398k | } |
275 | | |
276 | | /// Prints the node to the given output stream. |
277 | | void print(llvm::raw_ostream &OS, const PrintingPolicy &PP) const; |
278 | | |
279 | | /// Dumps the node to the given output stream. |
280 | | void dump(llvm::raw_ostream &OS, const ASTContext &Context) const; |
281 | | |
282 | | /// For nodes which represent textual entities in the source code, |
283 | | /// return their SourceRange. For all other nodes, return SourceRange(). |
284 | | SourceRange getSourceRange() const; |
285 | | |
286 | | /// @{ |
287 | | /// Imposes an order on \c DynTypedNode. |
288 | | /// |
289 | | /// Supports comparison of nodes that support memoization. |
290 | | /// FIXME: Implement comparison for other node types (currently |
291 | | /// only Stmt, Decl, Type and NestedNameSpecifier return memoization data). |
292 | 132k | bool operator<(const DynTypedNode &Other) const { |
293 | 132k | if (!NodeKind.isSame(Other.NodeKind)) |
294 | 42.8k | return NodeKind < Other.NodeKind; |
295 | | |
296 | 89.6k | if (ASTNodeKind::getFromNodeKind<QualType>().isSame(NodeKind)) |
297 | 1 | return getUnchecked<QualType>().getAsOpaquePtr() < |
298 | 1 | Other.getUnchecked<QualType>().getAsOpaquePtr(); |
299 | | |
300 | 89.6k | if (ASTNodeKind::getFromNodeKind<TypeLoc>().isSame(NodeKind)) { |
301 | 4 | auto TLA = getUnchecked<TypeLoc>(); |
302 | 4 | auto TLB = Other.getUnchecked<TypeLoc>(); |
303 | 4 | return std::make_pair(TLA.getType().getAsOpaquePtr(), |
304 | 4 | TLA.getOpaqueData()) < |
305 | 4 | std::make_pair(TLB.getType().getAsOpaquePtr(), |
306 | 4 | TLB.getOpaqueData()); |
307 | 4 | } |
308 | | |
309 | 89.6k | if (ASTNodeKind::getFromNodeKind<NestedNameSpecifierLoc>().isSame( |
310 | 0 | NodeKind)) { |
311 | 0 | auto NNSLA = getUnchecked<NestedNameSpecifierLoc>(); |
312 | 0 | auto NNSLB = Other.getUnchecked<NestedNameSpecifierLoc>(); |
313 | 0 | return std::make_pair(NNSLA.getNestedNameSpecifier(), |
314 | 0 | NNSLA.getOpaqueData()) < |
315 | 0 | std::make_pair(NNSLB.getNestedNameSpecifier(), |
316 | 0 | NNSLB.getOpaqueData()); |
317 | 0 | } |
318 | | |
319 | 89.6k | assert(getMemoizationData() && Other.getMemoizationData()); |
320 | 89.6k | return getMemoizationData() < Other.getMemoizationData(); |
321 | 89.6k | } |
322 | 254k | bool operator==(const DynTypedNode &Other) const { |
323 | | // DynTypedNode::create() stores the exact kind of the node in NodeKind. |
324 | | // If they contain the same node, their NodeKind must be the same. |
325 | 254k | if (!NodeKind.isSame(Other.NodeKind)) |
326 | 232k | return false; |
327 | | |
328 | | // FIXME: Implement for other types. |
329 | 21.9k | if (ASTNodeKind::getFromNodeKind<QualType>().isSame(NodeKind)) |
330 | 141 | return getUnchecked<QualType>() == Other.getUnchecked<QualType>(); |
331 | | |
332 | 21.8k | if (ASTNodeKind::getFromNodeKind<TypeLoc>().isSame(NodeKind)) |
333 | 20.2k | return getUnchecked<TypeLoc>() == Other.getUnchecked<TypeLoc>(); |
334 | | |
335 | 1.57k | if (ASTNodeKind::getFromNodeKind<NestedNameSpecifierLoc>().isSame(NodeKind)) |
336 | 134 | return getUnchecked<NestedNameSpecifierLoc>() == |
337 | 134 | Other.getUnchecked<NestedNameSpecifierLoc>(); |
338 | | |
339 | 1.43k | assert(getMemoizationData() && Other.getMemoizationData()); |
340 | 1.43k | return getMemoizationData() == Other.getMemoizationData(); |
341 | 1.43k | } |
342 | 1.16k | bool operator!=(const DynTypedNode &Other) const { |
343 | 1.16k | return !operator==(Other); |
344 | 1.16k | } |
345 | | /// @} |
346 | | |
347 | | /// Hooks for using DynTypedNode as a key in a DenseMap. |
348 | | struct DenseMapInfo { |
349 | 85.3k | static inline DynTypedNode getEmptyKey() { |
350 | 85.3k | DynTypedNode Node; |
351 | 85.3k | Node.NodeKind = ASTNodeKind::DenseMapInfo::getEmptyKey(); |
352 | 85.3k | return Node; |
353 | 85.3k | } |
354 | 60.4k | static inline DynTypedNode getTombstoneKey() { |
355 | 60.4k | DynTypedNode Node; |
356 | 60.4k | Node.NodeKind = ASTNodeKind::DenseMapInfo::getTombstoneKey(); |
357 | 60.4k | return Node; |
358 | 60.4k | } |
359 | 34.4k | static unsigned getHashValue(const DynTypedNode &Val) { |
360 | | // FIXME: Add hashing support for the remaining types. |
361 | 34.4k | if (ASTNodeKind::getFromNodeKind<TypeLoc>().isSame(Val.NodeKind)) { |
362 | 33.5k | auto TL = Val.getUnchecked<TypeLoc>(); |
363 | 33.5k | return llvm::hash_combine(TL.getType().getAsOpaquePtr(), |
364 | 33.5k | TL.getOpaqueData()); |
365 | 33.5k | } |
366 | | |
367 | 962 | if (ASTNodeKind::getFromNodeKind<NestedNameSpecifierLoc>().isSame( |
368 | 962 | Val.NodeKind)) { |
369 | 962 | auto NNSL = Val.getUnchecked<NestedNameSpecifierLoc>(); |
370 | 962 | return llvm::hash_combine(NNSL.getNestedNameSpecifier(), |
371 | 962 | NNSL.getOpaqueData()); |
372 | 962 | } |
373 | | |
374 | 0 | assert(Val.getMemoizationData()); |
375 | 0 | return llvm::hash_value(Val.getMemoizationData()); |
376 | 0 | } |
377 | 418k | static bool isEqual(const DynTypedNode &LHS, const DynTypedNode &RHS) { |
378 | 418k | auto Empty = ASTNodeKind::DenseMapInfo::getEmptyKey(); |
379 | 418k | auto TombStone = ASTNodeKind::DenseMapInfo::getTombstoneKey(); |
380 | 418k | return (ASTNodeKind::DenseMapInfo::isEqual(LHS.NodeKind, Empty) && |
381 | 166k | ASTNodeKind::DenseMapInfo::isEqual(RHS.NodeKind, Empty)) || |
382 | 252k | (ASTNodeKind::DenseMapInfo::isEqual(LHS.NodeKind, TombStone) && |
383 | 0 | ASTNodeKind::DenseMapInfo::isEqual(RHS.NodeKind, TombStone)) || |
384 | 252k | LHS == RHS; |
385 | 418k | } |
386 | | }; |
387 | | |
388 | | private: |
389 | | /// Takes care of converting from and to \c T. |
390 | | template <typename T, typename EnablerT = void> struct BaseConverter; |
391 | | |
392 | | /// Converter that uses dyn_cast<T> from a stored BaseT*. |
393 | | template <typename T, typename BaseT> struct DynCastPtrConverter { |
394 | 942k | static const T *get(ASTNodeKind NodeKind, const void *Storage) { |
395 | 942k | if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)) |
396 | 466k | return &getUnchecked(NodeKind, Storage); |
397 | 476k | return nullptr; |
398 | 476k | } clang::DynTypedNode::DynCastPtrConverter<clang::Stmt, clang::Stmt>::get(clang::ASTNodeKind, void const*) Line | Count | Source | 394 | 56.2k | static const T *get(ASTNodeKind NodeKind, const void *Storage) { | 395 | 56.2k | if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)) | 396 | 44.8k | return &getUnchecked(NodeKind, Storage); | 397 | 11.4k | return nullptr; | 398 | 11.4k | } |
clang::DynTypedNode::DynCastPtrConverter<clang::Type, clang::Type>::get(clang::ASTNodeKind, void const*) Line | Count | Source | 394 | 62 | static const T *get(ASTNodeKind NodeKind, const void *Storage) { | 395 | 62 | if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)) | 396 | 52 | return &getUnchecked(NodeKind, Storage); | 397 | 10 | return nullptr; | 398 | 10 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::OMPClause, clang::OMPClause>::get(clang::ASTNodeKind, void const*) Line | Count | Source | 394 | 1 | static const T *get(ASTNodeKind NodeKind, const void *Storage) { | 395 | 1 | if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)) | 396 | 0 | return &getUnchecked(NodeKind, Storage); | 397 | 1 | return nullptr; | 398 | 1 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::Expr, clang::Stmt>::get(clang::ASTNodeKind, void const*) Line | Count | Source | 394 | 765k | static const T *get(ASTNodeKind NodeKind, const void *Storage) { | 395 | 765k | if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)) | 396 | 357k | return &getUnchecked(NodeKind, Storage); | 397 | 408k | return nullptr; | 398 | 408k | } |
clang::DynTypedNode::DynCastPtrConverter<clang::Decl, clang::Decl>::get(clang::ASTNodeKind, void const*) Line | Count | Source | 394 | 107k | static const T *get(ASTNodeKind NodeKind, const void *Storage) { | 395 | 107k | if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)) | 396 | 56.1k | return &getUnchecked(NodeKind, Storage); | 397 | 51.1k | return nullptr; | 398 | 51.1k | } |
clang::DynTypedNode::DynCastPtrConverter<clang::DeclStmt, clang::Stmt>::get(clang::ASTNodeKind, void const*) Line | Count | Source | 394 | 300 | static const T *get(ASTNodeKind NodeKind, const void *Storage) { | 395 | 300 | if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)) | 396 | 36 | return &getUnchecked(NodeKind, Storage); | 397 | 264 | return nullptr; | 398 | 264 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::CompoundStmt, clang::Stmt>::get(clang::ASTNodeKind, void const*) Line | Count | Source | 394 | 104 | static const T *get(ASTNodeKind NodeKind, const void *Storage) { | 395 | 104 | if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)) | 396 | 56 | return &getUnchecked(NodeKind, Storage); | 397 | 48 | return nullptr; | 398 | 48 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::CallExpr, clang::Stmt>::get(clang::ASTNodeKind, void const*) Line | Count | Source | 394 | 129 | static const T *get(ASTNodeKind NodeKind, const void *Storage) { | 395 | 129 | if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)) | 396 | 128 | return &getUnchecked(NodeKind, Storage); | 397 | 1 | return nullptr; | 398 | 1 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::ParmVarDecl, clang::Decl>::get(clang::ASTNodeKind, void const*) Line | Count | Source | 394 | 88 | static const T *get(ASTNodeKind NodeKind, const void *Storage) { | 395 | 88 | if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)) | 396 | 88 | return &getUnchecked(NodeKind, Storage); | 397 | 0 | return nullptr; | 398 | 0 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::ObjCMethodDecl, clang::Decl>::get(clang::ASTNodeKind, void const*) Line | Count | Source | 394 | 17 | static const T *get(ASTNodeKind NodeKind, const void *Storage) { | 395 | 17 | if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)) | 396 | 17 | return &getUnchecked(NodeKind, Storage); | 397 | 0 | return nullptr; | 398 | 0 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::ObjCAutoreleasePoolStmt, clang::Stmt>::get(clang::ASTNodeKind, void const*) Line | Count | Source | 394 | 17 | static const T *get(ASTNodeKind NodeKind, const void *Storage) { | 395 | 17 | if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)) | 396 | 17 | return &getUnchecked(NodeKind, Storage); | 397 | 0 | return nullptr; | 398 | 0 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::CastExpr, clang::Stmt>::get(clang::ASTNodeKind, void const*) Line | Count | Source | 394 | 1 | static const T *get(ASTNodeKind NodeKind, const void *Storage) { | 395 | 1 | if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)) | 396 | 1 | return &getUnchecked(NodeKind, Storage); | 397 | 0 | return nullptr; | 398 | 0 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::CXXRecordDecl, clang::Decl>::get(clang::ASTNodeKind, void const*) Line | Count | Source | 394 | 853 | static const T *get(ASTNodeKind NodeKind, const void *Storage) { | 395 | 853 | if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)) | 396 | 853 | return &getUnchecked(NodeKind, Storage); | 397 | 0 | return nullptr; | 398 | 0 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::ObjCMessageExpr, clang::Stmt>::get(clang::ASTNodeKind, void const*) Line | Count | Source | 394 | 18 | static const T *get(ASTNodeKind NodeKind, const void *Storage) { | 395 | 18 | if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)) | 396 | 18 | return &getUnchecked(NodeKind, Storage); | 397 | 0 | return nullptr; | 398 | 0 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::MemberExpr, clang::Stmt>::get(clang::ASTNodeKind, void const*) Line | Count | Source | 394 | 27 | static const T *get(ASTNodeKind NodeKind, const void *Storage) { | 395 | 27 | if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)) | 396 | 27 | return &getUnchecked(NodeKind, Storage); | 397 | 0 | return nullptr; | 398 | 0 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::ForStmt, clang::Stmt>::get(clang::ASTNodeKind, void const*) Line | Count | Source | 394 | 24 | static const T *get(ASTNodeKind NodeKind, const void *Storage) { | 395 | 24 | if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)) | 396 | 1 | return &getUnchecked(NodeKind, Storage); | 397 | 23 | return nullptr; | 398 | 23 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::IfStmt, clang::Stmt>::get(clang::ASTNodeKind, void const*) Line | Count | Source | 394 | 175 | static const T *get(ASTNodeKind NodeKind, const void *Storage) { | 395 | 175 | if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)) | 396 | 125 | return &getUnchecked(NodeKind, Storage); | 397 | 50 | return nullptr; | 398 | 50 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::CXXForRangeStmt, clang::Stmt>::get(clang::ASTNodeKind, void const*) Line | Count | Source | 394 | 22 | static const T *get(ASTNodeKind NodeKind, const void *Storage) { | 395 | 22 | if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)) | 396 | 1 | return &getUnchecked(NodeKind, Storage); | 397 | 21 | return nullptr; | 398 | 21 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::ObjCIvarRefExpr, clang::Stmt>::get(clang::ASTNodeKind, void const*) Line | Count | Source | 394 | 2 | static const T *get(ASTNodeKind NodeKind, const void *Storage) { | 395 | 2 | if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)) | 396 | 2 | return &getUnchecked(NodeKind, Storage); | 397 | 0 | return nullptr; | 398 | 0 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::IntegerLiteral, clang::Stmt>::get(clang::ASTNodeKind, void const*) Line | Count | Source | 394 | 245 | static const T *get(ASTNodeKind NodeKind, const void *Storage) { | 395 | 245 | if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)) | 396 | 245 | return &getUnchecked(NodeKind, Storage); | 397 | 0 | return nullptr; | 398 | 0 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::BinaryOperator, clang::Stmt>::get(clang::ASTNodeKind, void const*) Line | Count | Source | 394 | 114 | static const T *get(ASTNodeKind NodeKind, const void *Storage) { | 395 | 114 | if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)) | 396 | 114 | return &getUnchecked(NodeKind, Storage); | 397 | 0 | return nullptr; | 398 | 0 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::VarDecl, clang::Decl>::get(clang::ASTNodeKind, void const*) Line | Count | Source | 394 | 1.45k | static const T *get(ASTNodeKind NodeKind, const void *Storage) { | 395 | 1.45k | if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)) | 396 | 1.45k | return &getUnchecked(NodeKind, Storage); | 397 | 0 | return nullptr; | 398 | 0 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::NamedDecl, clang::Decl>::get(clang::ASTNodeKind, void const*) Line | Count | Source | 394 | 1.15k | static const T *get(ASTNodeKind NodeKind, const void *Storage) { | 395 | 1.15k | if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)) | 396 | 909 | return &getUnchecked(NodeKind, Storage); | 397 | 247 | return nullptr; | 398 | 247 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::FunctionDecl, clang::Decl>::get(clang::ASTNodeKind, void const*) Line | Count | Source | 394 | 5.07k | static const T *get(ASTNodeKind NodeKind, const void *Storage) { | 395 | 5.07k | if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)) | 396 | 2.91k | return &getUnchecked(NodeKind, Storage); | 397 | 2.15k | return nullptr; | 398 | 2.15k | } |
clang::DynTypedNode::DynCastPtrConverter<clang::LambdaExpr, clang::Stmt>::get(clang::ASTNodeKind, void const*) Line | Count | Source | 394 | 2.17k | static const T *get(ASTNodeKind NodeKind, const void *Storage) { | 395 | 2.17k | if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)) | 396 | 32 | return &getUnchecked(NodeKind, Storage); | 397 | 2.14k | return nullptr; | 398 | 2.14k | } |
clang::DynTypedNode::DynCastPtrConverter<clang::TranslationUnitDecl, clang::Decl>::get(clang::ASTNodeKind, void const*) Line | Count | Source | 394 | 887 | static const T *get(ASTNodeKind NodeKind, const void *Storage) { | 395 | 887 | if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)) | 396 | 887 | return &getUnchecked(NodeKind, Storage); | 397 | 0 | return nullptr; | 398 | 0 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::CXXThisExpr, clang::Stmt>::get(clang::ASTNodeKind, void const*) Line | Count | Source | 394 | 146 | static const T *get(ASTNodeKind NodeKind, const void *Storage) { | 395 | 146 | if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)) | 396 | 0 | return &getUnchecked(NodeKind, Storage); | 397 | 146 | return nullptr; | 398 | 146 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::DeclRefExpr, clang::Stmt>::get(clang::ASTNodeKind, void const*) Line | Count | Source | 394 | 117 | static const T *get(ASTNodeKind NodeKind, const void *Storage) { | 395 | 117 | if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)) | 396 | 115 | return &getUnchecked(NodeKind, Storage); | 397 | 2 | return nullptr; | 398 | 2 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::InitListExpr, clang::Stmt>::get(clang::ASTNodeKind, void const*) Line | Count | Source | 394 | 5 | static const T *get(ASTNodeKind NodeKind, const void *Storage) { | 395 | 5 | if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)) | 396 | 4 | return &getUnchecked(NodeKind, Storage); | 397 | 1 | return nullptr; | 398 | 1 | } |
|
399 | 697k | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { |
400 | 697k | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); |
401 | 697k | return *cast<T>(static_cast<const BaseT *>( |
402 | 697k | *reinterpret_cast<const void *const *>(Storage))); |
403 | 697k | } clang::DynTypedNode::DynCastPtrConverter<clang::Stmt, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 73.7k | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 73.7k | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 73.7k | return *cast<T>(static_cast<const BaseT *>( | 402 | 73.7k | *reinterpret_cast<const void *const *>(Storage))); | 403 | 73.7k | } |
clang::DynTypedNode::DynCastPtrConverter<clang::Type, clang::Type>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 1.56k | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 1.56k | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 1.56k | return *cast<T>(static_cast<const BaseT *>( | 402 | 1.56k | *reinterpret_cast<const void *const *>(Storage))); | 403 | 1.56k | } |
Unexecuted instantiation: clang::DynTypedNode::DynCastPtrConverter<clang::OMPClause, clang::OMPClause>::getUnchecked(clang::ASTNodeKind, void const*) clang::DynTypedNode::DynCastPtrConverter<clang::Expr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 391k | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 391k | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 391k | return *cast<T>(static_cast<const BaseT *>( | 402 | 391k | *reinterpret_cast<const void *const *>(Storage))); | 403 | 391k | } |
clang::DynTypedNode::DynCastPtrConverter<clang::Decl, clang::Decl>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 66.6k | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 66.6k | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 66.6k | return *cast<T>(static_cast<const BaseT *>( | 402 | 66.6k | *reinterpret_cast<const void *const *>(Storage))); | 403 | 66.6k | } |
clang::DynTypedNode::DynCastPtrConverter<clang::DeclStmt, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 680 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 680 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 680 | return *cast<T>(static_cast<const BaseT *>( | 402 | 680 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 680 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::CompoundStmt, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 1.10k | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 1.10k | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 1.10k | return *cast<T>(static_cast<const BaseT *>( | 402 | 1.10k | *reinterpret_cast<const void *const *>(Storage))); | 403 | 1.10k | } |
clang::DynTypedNode::DynCastPtrConverter<clang::TypedefType, clang::Type>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 305 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 305 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 305 | return *cast<T>(static_cast<const BaseT *>( | 402 | 305 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 305 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::RecordType, clang::Type>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 255 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 255 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 255 | return *cast<T>(static_cast<const BaseT *>( | 402 | 255 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 255 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::ObjCObjectPointerType, clang::Type>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 120 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 120 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 120 | return *cast<T>(static_cast<const BaseT *>( | 402 | 120 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 120 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::ConditionalOperator, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 79 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 79 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 79 | return *cast<T>(static_cast<const BaseT *>( | 402 | 79 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 79 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::ObjCAutoreleasePoolStmt, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 42 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 42 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 42 | return *cast<T>(static_cast<const BaseT *>( | 402 | 42 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 42 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::BlockDecl, clang::Decl>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 29 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 29 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 29 | return *cast<T>(static_cast<const BaseT *>( | 402 | 29 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 29 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::PointerType, clang::Type>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 699 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 699 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 699 | return *cast<T>(static_cast<const BaseT *>( | 402 | 699 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 699 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::CStyleCastExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 40 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 40 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 40 | return *cast<T>(static_cast<const BaseT *>( | 402 | 40 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 40 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::ObjCIvarRefExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 60 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 60 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 60 | return *cast<T>(static_cast<const BaseT *>( | 402 | 60 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 60 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::BinaryOperator, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 5.38k | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 5.38k | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 5.38k | return *cast<T>(static_cast<const BaseT *>( | 402 | 5.38k | *reinterpret_cast<const void *const *>(Storage))); | 403 | 5.38k | } |
clang::DynTypedNode::DynCastPtrConverter<clang::UnaryOperator, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 2.98k | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 2.98k | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 2.98k | return *cast<T>(static_cast<const BaseT *>( | 402 | 2.98k | *reinterpret_cast<const void *const *>(Storage))); | 403 | 2.98k | } |
clang::DynTypedNode::DynCastPtrConverter<clang::IntegerLiteral, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 1.04k | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 1.04k | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 1.04k | return *cast<T>(static_cast<const BaseT *>( | 402 | 1.04k | *reinterpret_cast<const void *const *>(Storage))); | 403 | 1.04k | } |
clang::DynTypedNode::DynCastPtrConverter<clang::ObjCInterfaceDecl, clang::Decl>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 4.31k | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 4.31k | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 4.31k | return *cast<T>(static_cast<const BaseT *>( | 402 | 4.31k | *reinterpret_cast<const void *const *>(Storage))); | 403 | 4.31k | } |
clang::DynTypedNode::DynCastPtrConverter<clang::NamedDecl, clang::Decl>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 77.7k | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 77.7k | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 77.7k | return *cast<T>(static_cast<const BaseT *>( | 402 | 77.7k | *reinterpret_cast<const void *const *>(Storage))); | 403 | 77.7k | } |
clang::DynTypedNode::DynCastPtrConverter<clang::FunctionDecl, clang::Decl>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 7.78k | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 7.78k | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 7.78k | return *cast<T>(static_cast<const BaseT *>( | 402 | 7.78k | *reinterpret_cast<const void *const *>(Storage))); | 403 | 7.78k | } |
clang::DynTypedNode::DynCastPtrConverter<clang::LambdaExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 84 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 84 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 84 | return *cast<T>(static_cast<const BaseT *>( | 402 | 84 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 84 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::FieldDecl, clang::Decl>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 1.46k | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 1.46k | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 1.46k | return *cast<T>(static_cast<const BaseT *>( | 402 | 1.46k | *reinterpret_cast<const void *const *>(Storage))); | 403 | 1.46k | } |
clang::DynTypedNode::DynCastPtrConverter<clang::ClassTemplateSpecializationDecl, clang::Decl>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 735 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 735 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 735 | return *cast<T>(static_cast<const BaseT *>( | 402 | 735 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 735 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::CallExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 6.15k | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 6.15k | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 6.15k | return *cast<T>(static_cast<const BaseT *>( | 402 | 6.15k | *reinterpret_cast<const void *const *>(Storage))); | 403 | 6.15k | } |
clang::DynTypedNode::DynCastPtrConverter<clang::InitListExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 298 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 298 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 298 | return *cast<T>(static_cast<const BaseT *>( | 402 | 298 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 298 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::ForStmt, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 694 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 694 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 694 | return *cast<T>(static_cast<const BaseT *>( | 402 | 694 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 694 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::CXXForRangeStmt, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 166 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 166 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 166 | return *cast<T>(static_cast<const BaseT *>( | 402 | 166 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 166 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::DesignatedInitExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 160 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 160 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 160 | return *cast<T>(static_cast<const BaseT *>( | 402 | 160 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 160 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::UnaryExprOrTypeTraitExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 291 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 291 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 291 | return *cast<T>(static_cast<const BaseT *>( | 402 | 291 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 291 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::CXXDependentScopeMemberExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 99 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 99 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 99 | return *cast<T>(static_cast<const BaseT *>( | 402 | 99 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 99 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::CXXRecordDecl, clang::Decl>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 17.0k | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 17.0k | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 17.0k | return *cast<T>(static_cast<const BaseT *>( | 402 | 17.0k | *reinterpret_cast<const void *const *>(Storage))); | 403 | 17.0k | } |
clang::DynTypedNode::DynCastPtrConverter<clang::CXXMemberCallExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 837 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 837 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 837 | return *cast<T>(static_cast<const BaseT *>( | 402 | 837 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 837 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::ObjCMessageExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 280 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 280 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 280 | return *cast<T>(static_cast<const BaseT *>( | 402 | 280 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 280 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::ObjCMethodDecl, clang::Decl>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 128 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 128 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 128 | return *cast<T>(static_cast<const BaseT *>( | 402 | 128 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 128 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::DeclaratorDecl, clang::Decl>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 30 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 30 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 30 | return *cast<T>(static_cast<const BaseT *>( | 402 | 30 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 30 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::DeclRefExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 3.44k | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 3.44k | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 3.44k | return *cast<T>(static_cast<const BaseT *>( | 402 | 3.44k | *reinterpret_cast<const void *const *>(Storage))); | 403 | 3.44k | } |
clang::DynTypedNode::DynCastPtrConverter<clang::OverloadExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 14 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 14 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 14 | return *cast<T>(static_cast<const BaseT *>( | 402 | 14 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 14 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::VarDecl, clang::Decl>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 7.80k | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 7.80k | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 7.80k | return *cast<T>(static_cast<const BaseT *>( | 402 | 7.80k | *reinterpret_cast<const void *const *>(Storage))); | 403 | 7.80k | } |
clang::DynTypedNode::DynCastPtrConverter<clang::CXXCatchStmt, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 100 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 100 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 100 | return *cast<T>(static_cast<const BaseT *>( | 402 | 100 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 100 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::CXXConstructorDecl, clang::Decl>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 1.12k | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 1.12k | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 1.12k | return *cast<T>(static_cast<const BaseT *>( | 402 | 1.12k | *reinterpret_cast<const void *const *>(Storage))); | 403 | 1.12k | } |
clang::DynTypedNode::DynCastPtrConverter<clang::CXXConstructExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 692 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 692 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 692 | return *cast<T>(static_cast<const BaseT *>( | 402 | 692 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 692 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::ParmVarDecl, clang::Decl>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 1.82k | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 1.82k | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 1.82k | return *cast<T>(static_cast<const BaseT *>( | 402 | 1.82k | *reinterpret_cast<const void *const *>(Storage))); | 403 | 1.82k | } |
clang::DynTypedNode::DynCastPtrConverter<clang::IfStmt, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 542 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 542 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 542 | return *cast<T>(static_cast<const BaseT *>( | 402 | 542 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 542 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::ArraySubscriptExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 22 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 22 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 22 | return *cast<T>(static_cast<const BaseT *>( | 402 | 22 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 22 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::CastExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 3.62k | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 3.62k | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 3.62k | return *cast<T>(static_cast<const BaseT *>( | 402 | 3.62k | *reinterpret_cast<const void *const *>(Storage))); | 403 | 3.62k | } |
clang::DynTypedNode::DynCastPtrConverter<clang::ExplicitCastExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 351 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 351 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 351 | return *cast<T>(static_cast<const BaseT *>( | 402 | 351 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 351 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::ImplicitCastExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 239 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 239 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 239 | return *cast<T>(static_cast<const BaseT *>( | 402 | 239 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 239 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::TagDecl, clang::Decl>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 270 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 270 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 270 | return *cast<T>(static_cast<const BaseT *>( | 402 | 270 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 270 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::AbstractConditionalOperator, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 583 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 583 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 583 | return *cast<T>(static_cast<const BaseT *>( | 402 | 583 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 583 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::CXXMethodDecl, clang::Decl>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 3.73k | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 3.73k | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 3.73k | return *cast<T>(static_cast<const BaseT *>( | 402 | 3.73k | *reinterpret_cast<const void *const *>(Storage))); | 403 | 3.73k | } |
clang::DynTypedNode::DynCastPtrConverter<clang::MemberExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 491 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 491 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 491 | return *cast<T>(static_cast<const BaseT *>( | 402 | 491 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 491 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::UsingDecl, clang::Decl>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 27 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 27 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 27 | return *cast<T>(static_cast<const BaseT *>( | 402 | 27 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 27 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::UsingShadowDecl, clang::Decl>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 8 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 8 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 8 | return *cast<T>(static_cast<const BaseT *>( | 402 | 8 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 8 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::VariableArrayType, clang::Type>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 28 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 28 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 28 | return *cast<T>(static_cast<const BaseT *>( | 402 | 28 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 28 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::ElaboratedType, clang::Type>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 12 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 12 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 12 | return *cast<T>(static_cast<const BaseT *>( | 402 | 12 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 12 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::DecayedType, clang::Type>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 28 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 28 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 28 | return *cast<T>(static_cast<const BaseT *>( | 402 | 28 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 28 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::SwitchStmt, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 63 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 63 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 63 | return *cast<T>(static_cast<const BaseT *>( | 402 | 63 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 63 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::NamespaceDecl, clang::Decl>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 90 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 90 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 90 | return *cast<T>(static_cast<const BaseT *>( | 402 | 90 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 90 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::CaseStmt, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 28 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 28 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 28 | return *cast<T>(static_cast<const BaseT *>( | 402 | 28 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 28 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::ReturnStmt, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 67 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 67 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 67 | return *cast<T>(static_cast<const BaseT *>( | 402 | 67 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 67 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::CXXNewExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 59 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 59 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 59 | return *cast<T>(static_cast<const BaseT *>( | 402 | 59 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 59 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::EnumDecl, clang::Decl>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 485 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 485 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 485 | return *cast<T>(static_cast<const BaseT *>( | 402 | 485 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 485 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::OMPExecutableDirective, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 804 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 804 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 804 | return *cast<T>(static_cast<const BaseT *>( | 402 | 804 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 804 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::OMPDefaultClause, clang::OMPClause>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 174 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 174 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 174 | return *cast<T>(static_cast<const BaseT *>( | 402 | 174 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 174 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::TranslationUnitDecl, clang::Decl>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 1.21k | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 1.21k | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 1.21k | return *cast<T>(static_cast<const BaseT *>( | 402 | 1.21k | *reinterpret_cast<const void *const *>(Storage))); | 403 | 1.21k | } |
clang::DynTypedNode::DynCastPtrConverter<clang::CXXThisExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 8 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 8 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 8 | return *cast<T>(static_cast<const BaseT *>( | 402 | 8 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 8 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::FriendDecl, clang::Decl>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 181 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 181 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 181 | return *cast<T>(static_cast<const BaseT *>( | 402 | 181 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 181 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::TypedefNameDecl, clang::Decl>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 358 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 358 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 358 | return *cast<T>(static_cast<const BaseT *>( | 402 | 358 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 358 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::ValueDecl, clang::Decl>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 102 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 102 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 102 | return *cast<T>(static_cast<const BaseT *>( | 402 | 102 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 102 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::CharacterLiteral, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 8 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 8 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 8 | return *cast<T>(static_cast<const BaseT *>( | 402 | 8 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 8 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::CXXBoolLiteralExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 362 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 362 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 362 | return *cast<T>(static_cast<const BaseT *>( | 402 | 362 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 362 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::FloatingLiteral, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 336 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 336 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 336 | return *cast<T>(static_cast<const BaseT *>( | 402 | 336 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 336 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::CXXUnresolvedConstructExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 17 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 17 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 17 | return *cast<T>(static_cast<const BaseT *>( | 402 | 17 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 17 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::CXXOperatorCallExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 1.57k | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 1.57k | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 1.57k | return *cast<T>(static_cast<const BaseT *>( | 402 | 1.57k | *reinterpret_cast<const void *const *>(Storage))); | 403 | 1.57k | } |
clang::DynTypedNode::DynCastPtrConverter<clang::CXXRewrittenBinaryOperator, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 512 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 512 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 512 | return *cast<T>(static_cast<const BaseT *>( | 402 | 512 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 512 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::StmtExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 16 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 16 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 16 | return *cast<T>(static_cast<const BaseT *>( | 402 | 16 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 16 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::TemplateSpecializationType, clang::Type>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 72 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 72 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 72 | return *cast<T>(static_cast<const BaseT *>( | 402 | 72 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 72 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::DoStmt, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 2 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 2 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 2 | return *cast<T>(static_cast<const BaseT *>( | 402 | 2 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 2 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::WhileStmt, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 7 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 7 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 7 | return *cast<T>(static_cast<const BaseT *>( | 402 | 7 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 7 | } |
Unexecuted instantiation: clang::DynTypedNode::DynCastPtrConverter<clang::EnumType, clang::Type>::getUnchecked(clang::ASTNodeKind, void const*) Unexecuted instantiation: clang::DynTypedNode::DynCastPtrConverter<clang::InjectedClassNameType, clang::Type>::getUnchecked(clang::ASTNodeKind, void const*) clang::DynTypedNode::DynCastPtrConverter<clang::LabelStmt, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 38 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 38 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 38 | return *cast<T>(static_cast<const BaseT *>( | 402 | 38 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 38 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::AddrLabelExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 8 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 8 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 8 | return *cast<T>(static_cast<const BaseT *>( | 402 | 8 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 8 | } |
Unexecuted instantiation: clang::DynTypedNode::DynCastPtrConverter<clang::TagType, clang::Type>::getUnchecked(clang::ASTNodeKind, void const*) Unexecuted instantiation: clang::DynTypedNode::DynCastPtrConverter<clang::TemplateTypeParmType, clang::Type>::getUnchecked(clang::ASTNodeKind, void const*) Unexecuted instantiation: clang::DynTypedNode::DynCastPtrConverter<clang::UnresolvedUsingType, clang::Type>::getUnchecked(clang::ASTNodeKind, void const*) Unexecuted instantiation: clang::DynTypedNode::DynCastPtrConverter<clang::AutoType, clang::Type>::getUnchecked(clang::ASTNodeKind, void const*) clang::DynTypedNode::DynCastPtrConverter<clang::FunctionProtoType, clang::Type>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 212 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 212 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 212 | return *cast<T>(static_cast<const BaseT *>( | 402 | 212 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 212 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::ArrayType, clang::Type>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 144 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 144 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 144 | return *cast<T>(static_cast<const BaseT *>( | 402 | 144 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 144 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::ComplexType, clang::Type>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 56 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 56 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 56 | return *cast<T>(static_cast<const BaseT *>( | 402 | 56 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 56 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::UnresolvedMemberExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 42 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 42 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 42 | return *cast<T>(static_cast<const BaseT *>( | 402 | 42 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 42 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::SubstTemplateTypeParmType, clang::Type>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 4 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 4 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 4 | return *cast<T>(static_cast<const BaseT *>( | 402 | 4 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 4 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::ConstantArrayType, clang::Type>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 148 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 148 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 148 | return *cast<T>(static_cast<const BaseT *>( | 402 | 148 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 148 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::StringLiteral, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 144 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 144 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 144 | return *cast<T>(static_cast<const BaseT *>( | 402 | 144 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 144 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::OpaqueValueExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 46 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 46 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 46 | return *cast<T>(static_cast<const BaseT *>( | 402 | 46 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 46 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::DecltypeType, clang::Type>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 16 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 16 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 16 | return *cast<T>(static_cast<const BaseT *>( | 402 | 16 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 16 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::AtomicType, clang::Type>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 56 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 56 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 56 | return *cast<T>(static_cast<const BaseT *>( | 402 | 56 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 56 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::ParenType, clang::Type>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 58 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 58 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 58 | return *cast<T>(static_cast<const BaseT *>( | 402 | 58 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 58 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::CXXConversionDecl, clang::Decl>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 46 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 46 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 46 | return *cast<T>(static_cast<const BaseT *>( | 402 | 46 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 46 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::CXXDeductionGuideDecl, clang::Decl>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 120 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 120 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 120 | return *cast<T>(static_cast<const BaseT *>( | 402 | 120 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 120 | } |
Unexecuted instantiation: clang::DynTypedNode::DynCastPtrConverter<clang::BlockPointerType, clang::Type>::getUnchecked(clang::ASTNodeKind, void const*) Unexecuted instantiation: clang::DynTypedNode::DynCastPtrConverter<clang::MemberPointerType, clang::Type>::getUnchecked(clang::ASTNodeKind, void const*) clang::DynTypedNode::DynCastPtrConverter<clang::ReferenceType, clang::Type>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 306 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 306 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 306 | return *cast<T>(static_cast<const BaseT *>( | 402 | 306 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 306 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::CXXTypeidExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 2 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 2 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 2 | return *cast<T>(static_cast<const BaseT *>( | 402 | 2 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 2 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::GenericSelectionExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 9 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 9 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 9 | return *cast<T>(static_cast<const BaseT *>( | 402 | 9 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 9 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::ParenListExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 399 | 30 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 400 | 30 | assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)); | 401 | 30 | return *cast<T>(static_cast<const BaseT *>( | 402 | 30 | *reinterpret_cast<const void *const *>(Storage))); | 403 | 30 | } |
|
404 | 1.02M | static DynTypedNode create(const BaseT &Node) { |
405 | 1.02M | DynTypedNode Result; |
406 | 1.02M | Result.NodeKind = ASTNodeKind::getFromNode(Node); |
407 | 1.02M | new (&Result.Storage) const void *(&Node); |
408 | 1.02M | return Result; |
409 | 1.02M | } clang::DynTypedNode::DynCastPtrConverter<clang::Decl, clang::Decl>::create(clang::Decl const&) Line | Count | Source | 404 | 336k | static DynTypedNode create(const BaseT &Node) { | 405 | 336k | DynTypedNode Result; | 406 | 336k | Result.NodeKind = ASTNodeKind::getFromNode(Node); | 407 | 336k | new (&Result.Storage) const void *(&Node); | 408 | 336k | return Result; | 409 | 336k | } |
clang::DynTypedNode::DynCastPtrConverter<clang::Stmt, clang::Stmt>::create(clang::Stmt const&) Line | Count | Source | 404 | 233k | static DynTypedNode create(const BaseT &Node) { | 405 | 233k | DynTypedNode Result; | 406 | 233k | Result.NodeKind = ASTNodeKind::getFromNode(Node); | 407 | 233k | new (&Result.Storage) const void *(&Node); | 408 | 233k | return Result; | 409 | 233k | } |
clang::DynTypedNode::DynCastPtrConverter<clang::Expr, clang::Stmt>::create(clang::Stmt const&) Line | Count | Source | 404 | 393k | static DynTypedNode create(const BaseT &Node) { | 405 | 393k | DynTypedNode Result; | 406 | 393k | Result.NodeKind = ASTNodeKind::getFromNode(Node); | 407 | 393k | new (&Result.Storage) const void *(&Node); | 408 | 393k | return Result; | 409 | 393k | } |
clang::DynTypedNode::DynCastPtrConverter<clang::TranslationUnitDecl, clang::Decl>::create(clang::Decl const&) Line | Count | Source | 404 | 413 | static DynTypedNode create(const BaseT &Node) { | 405 | 413 | DynTypedNode Result; | 406 | 413 | Result.NodeKind = ASTNodeKind::getFromNode(Node); | 407 | 413 | new (&Result.Storage) const void *(&Node); | 408 | 413 | return Result; | 409 | 413 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::EnumConstantDecl, clang::Decl>::create(clang::Decl const&) Line | Count | Source | 404 | 15 | static DynTypedNode create(const BaseT &Node) { | 405 | 15 | DynTypedNode Result; | 406 | 15 | Result.NodeKind = ASTNodeKind::getFromNode(Node); | 407 | 15 | new (&Result.Storage) const void *(&Node); | 408 | 15 | return Result; | 409 | 15 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::DeclRefExpr, clang::Stmt>::create(clang::Stmt const&) Line | Count | Source | 404 | 59 | static DynTypedNode create(const BaseT &Node) { | 405 | 59 | DynTypedNode Result; | 406 | 59 | Result.NodeKind = ASTNodeKind::getFromNode(Node); | 407 | 59 | new (&Result.Storage) const void *(&Node); | 408 | 59 | return Result; | 409 | 59 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::CompoundStmt, clang::Stmt>::create(clang::Stmt const&) Line | Count | Source | 404 | 444 | static DynTypedNode create(const BaseT &Node) { | 405 | 444 | DynTypedNode Result; | 406 | 444 | Result.NodeKind = ASTNodeKind::getFromNode(Node); | 407 | 444 | new (&Result.Storage) const void *(&Node); | 408 | 444 | return Result; | 409 | 444 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::UnaryOperator, clang::Stmt>::create(clang::Stmt const&) Line | Count | Source | 404 | 33 | static DynTypedNode create(const BaseT &Node) { | 405 | 33 | DynTypedNode Result; | 406 | 33 | Result.NodeKind = ASTNodeKind::getFromNode(Node); | 407 | 33 | new (&Result.Storage) const void *(&Node); | 408 | 33 | return Result; | 409 | 33 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::ExplicitCastExpr, clang::Stmt>::create(clang::Stmt const&) Line | Count | Source | 404 | 110 | static DynTypedNode create(const BaseT &Node) { | 405 | 110 | DynTypedNode Result; | 406 | 110 | Result.NodeKind = ASTNodeKind::getFromNode(Node); | 407 | 110 | new (&Result.Storage) const void *(&Node); | 408 | 110 | return Result; | 409 | 110 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::ObjCAutoreleasePoolStmt, clang::Stmt>::create(clang::Stmt const&) Line | Count | Source | 404 | 25 | static DynTypedNode create(const BaseT &Node) { | 405 | 25 | DynTypedNode Result; | 406 | 25 | Result.NodeKind = ASTNodeKind::getFromNode(Node); | 407 | 25 | new (&Result.Storage) const void *(&Node); | 408 | 25 | return Result; | 409 | 25 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::ObjCMethodDecl, clang::Decl>::create(clang::Decl const&) Line | Count | Source | 404 | 18 | static DynTypedNode create(const BaseT &Node) { | 405 | 18 | DynTypedNode Result; | 406 | 18 | Result.NodeKind = ASTNodeKind::getFromNode(Node); | 407 | 18 | new (&Result.Storage) const void *(&Node); | 408 | 18 | return Result; | 409 | 18 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::BlockDecl, clang::Decl>::create(clang::Decl const&) Line | Count | Source | 404 | 1 | static DynTypedNode create(const BaseT &Node) { | 405 | 1 | DynTypedNode Result; | 406 | 1 | Result.NodeKind = ASTNodeKind::getFromNode(Node); | 407 | 1 | new (&Result.Storage) const void *(&Node); | 408 | 1 | return Result; | 409 | 1 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::ObjCMessageExpr, clang::Stmt>::create(clang::Stmt const&) Line | Count | Source | 404 | 35 | static DynTypedNode create(const BaseT &Node) { | 405 | 35 | DynTypedNode Result; | 406 | 35 | Result.NodeKind = ASTNodeKind::getFromNode(Node); | 407 | 35 | new (&Result.Storage) const void *(&Node); | 408 | 35 | return Result; | 409 | 35 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::InitListExpr, clang::Stmt>::create(clang::Stmt const&) Line | Count | Source | 404 | 156 | static DynTypedNode create(const BaseT &Node) { | 405 | 156 | DynTypedNode Result; | 406 | 156 | Result.NodeKind = ASTNodeKind::getFromNode(Node); | 407 | 156 | new (&Result.Storage) const void *(&Node); | 408 | 156 | return Result; | 409 | 156 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::ObjCInterfaceDecl, clang::Decl>::create(clang::Decl const&) Line | Count | Source | 404 | 2.35k | static DynTypedNode create(const BaseT &Node) { | 405 | 2.35k | DynTypedNode Result; | 406 | 2.35k | Result.NodeKind = ASTNodeKind::getFromNode(Node); | 407 | 2.35k | new (&Result.Storage) const void *(&Node); | 408 | 2.35k | return Result; | 409 | 2.35k | } |
clang::DynTypedNode::DynCastPtrConverter<clang::ClassTemplateDecl, clang::Decl>::create(clang::Decl const&) Line | Count | Source | 404 | 144 | static DynTypedNode create(const BaseT &Node) { | 405 | 144 | DynTypedNode Result; | 406 | 144 | Result.NodeKind = ASTNodeKind::getFromNode(Node); | 407 | 144 | new (&Result.Storage) const void *(&Node); | 408 | 144 | return Result; | 409 | 144 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::VarDecl, clang::Decl>::create(clang::Decl const&) Line | Count | Source | 404 | 990 | static DynTypedNode create(const BaseT &Node) { | 405 | 990 | DynTypedNode Result; | 406 | 990 | Result.NodeKind = ASTNodeKind::getFromNode(Node); | 407 | 990 | new (&Result.Storage) const void *(&Node); | 408 | 990 | return Result; | 409 | 990 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::NamedDecl, clang::Decl>::create(clang::Decl const&) Line | Count | Source | 404 | 5.77k | static DynTypedNode create(const BaseT &Node) { | 405 | 5.77k | DynTypedNode Result; | 406 | 5.77k | Result.NodeKind = ASTNodeKind::getFromNode(Node); | 407 | 5.77k | new (&Result.Storage) const void *(&Node); | 408 | 5.77k | return Result; | 409 | 5.77k | } |
clang::DynTypedNode::DynCastPtrConverter<clang::Type, clang::Type>::create(clang::Type const&) Line | Count | Source | 404 | 40.3k | static DynTypedNode create(const BaseT &Node) { | 405 | 40.3k | DynTypedNode Result; | 406 | 40.3k | Result.NodeKind = ASTNodeKind::getFromNode(Node); | 407 | 40.3k | new (&Result.Storage) const void *(&Node); | 408 | 40.3k | return Result; | 409 | 40.3k | } |
clang::DynTypedNode::DynCastPtrConverter<clang::CXXMemberCallExpr, clang::Stmt>::create(clang::Stmt const&) Line | Count | Source | 404 | 188 | static DynTypedNode create(const BaseT &Node) { | 405 | 188 | DynTypedNode Result; | 406 | 188 | Result.NodeKind = ASTNodeKind::getFromNode(Node); | 407 | 188 | new (&Result.Storage) const void *(&Node); | 408 | 188 | return Result; | 409 | 188 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::UsingShadowDecl, clang::Decl>::create(clang::Decl const&) Line | Count | Source | 404 | 30 | static DynTypedNode create(const BaseT &Node) { | 405 | 30 | DynTypedNode Result; | 406 | 30 | Result.NodeKind = ASTNodeKind::getFromNode(Node); | 407 | 30 | new (&Result.Storage) const void *(&Node); | 408 | 30 | return Result; | 409 | 30 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::FieldDecl, clang::Decl>::create(clang::Decl const&) Line | Count | Source | 404 | 201 | static DynTypedNode create(const BaseT &Node) { | 405 | 201 | DynTypedNode Result; | 406 | 201 | Result.NodeKind = ASTNodeKind::getFromNode(Node); | 407 | 201 | new (&Result.Storage) const void *(&Node); | 408 | 201 | return Result; | 409 | 201 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::DeclStmt, clang::Stmt>::create(clang::Stmt const&) Line | Count | Source | 404 | 162 | static DynTypedNode create(const BaseT &Node) { | 405 | 162 | DynTypedNode Result; | 406 | 162 | Result.NodeKind = ASTNodeKind::getFromNode(Node); | 407 | 162 | new (&Result.Storage) const void *(&Node); | 408 | 162 | return Result; | 409 | 162 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::CXXRecordDecl, clang::Decl>::create(clang::Decl const&) Line | Count | Source | 404 | 7.38k | static DynTypedNode create(const BaseT &Node) { | 405 | 7.38k | DynTypedNode Result; | 406 | 7.38k | Result.NodeKind = ASTNodeKind::getFromNode(Node); | 407 | 7.38k | new (&Result.Storage) const void *(&Node); | 408 | 7.38k | return Result; | 409 | 7.38k | } |
clang::DynTypedNode::DynCastPtrConverter<clang::CXXMethodDecl, clang::Decl>::create(clang::Decl const&) Line | Count | Source | 404 | 662 | static DynTypedNode create(const BaseT &Node) { | 405 | 662 | DynTypedNode Result; | 406 | 662 | Result.NodeKind = ASTNodeKind::getFromNode(Node); | 407 | 662 | new (&Result.Storage) const void *(&Node); | 408 | 662 | return Result; | 409 | 662 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::ValueDecl, clang::Decl>::create(clang::Decl const&) Line | Count | Source | 404 | 73 | static DynTypedNode create(const BaseT &Node) { | 405 | 73 | DynTypedNode Result; | 406 | 73 | Result.NodeKind = ASTNodeKind::getFromNode(Node); | 407 | 73 | new (&Result.Storage) const void *(&Node); | 408 | 73 | return Result; | 409 | 73 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::NamespaceDecl, clang::Decl>::create(clang::Decl const&) Line | Count | Source | 404 | 73 | static DynTypedNode create(const BaseT &Node) { | 405 | 73 | DynTypedNode Result; | 406 | 73 | Result.NodeKind = ASTNodeKind::getFromNode(Node); | 407 | 73 | new (&Result.Storage) const void *(&Node); | 408 | 73 | return Result; | 409 | 73 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::SwitchCase, clang::Stmt>::create(clang::Stmt const&) Line | Count | Source | 404 | 23 | static DynTypedNode create(const BaseT &Node) { | 405 | 23 | DynTypedNode Result; | 406 | 23 | Result.NodeKind = ASTNodeKind::getFromNode(Node); | 407 | 23 | new (&Result.Storage) const void *(&Node); | 408 | 23 | return Result; | 409 | 23 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::FunctionDecl, clang::Decl>::create(clang::Decl const&) Line | Count | Source | 404 | 1.89k | static DynTypedNode create(const BaseT &Node) { | 405 | 1.89k | DynTypedNode Result; | 406 | 1.89k | Result.NodeKind = ASTNodeKind::getFromNode(Node); | 407 | 1.89k | new (&Result.Storage) const void *(&Node); | 408 | 1.89k | return Result; | 409 | 1.89k | } |
clang::DynTypedNode::DynCastPtrConverter<clang::OMPClause, clang::OMPClause>::create(clang::OMPClause const&) Line | Count | Source | 404 | 352 | static DynTypedNode create(const BaseT &Node) { | 405 | 352 | DynTypedNode Result; | 406 | 352 | Result.NodeKind = ASTNodeKind::getFromNode(Node); | 407 | 352 | new (&Result.Storage) const void *(&Node); | 408 | 352 | return Result; | 409 | 352 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::ParmVarDecl, clang::Decl>::create(clang::Decl const&) Line | Count | Source | 404 | 671 | static DynTypedNode create(const BaseT &Node) { | 405 | 671 | DynTypedNode Result; | 406 | 671 | Result.NodeKind = ASTNodeKind::getFromNode(Node); | 407 | 671 | new (&Result.Storage) const void *(&Node); | 408 | 671 | return Result; | 409 | 671 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::CastExpr, clang::Stmt>::create(clang::Stmt const&) Line | Count | Source | 404 | 42 | static DynTypedNode create(const BaseT &Node) { | 405 | 42 | DynTypedNode Result; | 406 | 42 | Result.NodeKind = ASTNodeKind::getFromNode(Node); | 407 | 42 | new (&Result.Storage) const void *(&Node); | 408 | 42 | return Result; | 409 | 42 | } |
clang::DynTypedNode::DynCastPtrConverter<clang::ParenListExpr, clang::Stmt>::create(clang::Stmt const&) Line | Count | Source | 404 | 30 | static DynTypedNode create(const BaseT &Node) { | 405 | 30 | DynTypedNode Result; | 406 | 30 | Result.NodeKind = ASTNodeKind::getFromNode(Node); | 407 | 30 | new (&Result.Storage) const void *(&Node); | 408 | 30 | return Result; | 409 | 30 | } |
|
410 | | }; |
411 | | |
412 | | /// Converter that stores T* (by pointer). |
413 | | template <typename T> struct PtrConverter { |
414 | 707 | static const T *get(ASTNodeKind NodeKind, const void *Storage) { |
415 | 707 | if (ASTNodeKind::getFromNodeKind<T>().isSame(NodeKind)) |
416 | 62 | return &getUnchecked(NodeKind, Storage); |
417 | 645 | return nullptr; |
418 | 645 | } clang::DynTypedNode::PtrConverter<clang::NestedNameSpecifier>::get(clang::ASTNodeKind, void const*) Line | Count | Source | 414 | 347 | static const T *get(ASTNodeKind NodeKind, const void *Storage) { | 415 | 347 | if (ASTNodeKind::getFromNodeKind<T>().isSame(NodeKind)) | 416 | 45 | return &getUnchecked(NodeKind, Storage); | 417 | 302 | return nullptr; | 418 | 302 | } |
clang::DynTypedNode::PtrConverter<clang::CXXCtorInitializer>::get(clang::ASTNodeKind, void const*) Line | Count | Source | 414 | 360 | static const T *get(ASTNodeKind NodeKind, const void *Storage) { | 415 | 360 | if (ASTNodeKind::getFromNodeKind<T>().isSame(NodeKind)) | 416 | 17 | return &getUnchecked(NodeKind, Storage); | 417 | 343 | return nullptr; | 418 | 343 | } |
|
419 | 1.08k | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { |
420 | 1.08k | assert(ASTNodeKind::getFromNodeKind<T>().isSame(NodeKind)); |
421 | 1.08k | return *static_cast<const T *>( |
422 | 1.08k | *reinterpret_cast<const void *const *>(Storage)); |
423 | 1.08k | } clang::DynTypedNode::PtrConverter<clang::NestedNameSpecifier>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 419 | 337 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 420 | 337 | assert(ASTNodeKind::getFromNodeKind<T>().isSame(NodeKind)); | 421 | 337 | return *static_cast<const T *>( | 422 | 337 | *reinterpret_cast<const void *const *>(Storage)); | 423 | 337 | } |
clang::DynTypedNode::PtrConverter<clang::CXXCtorInitializer>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 419 | 223 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 420 | 223 | assert(ASTNodeKind::getFromNodeKind<T>().isSame(NodeKind)); | 421 | 223 | return *static_cast<const T *>( | 422 | 223 | *reinterpret_cast<const void *const *>(Storage)); | 423 | 223 | } |
clang::DynTypedNode::PtrConverter<clang::CXXBaseSpecifier>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 419 | 520 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 420 | 520 | assert(ASTNodeKind::getFromNodeKind<T>().isSame(NodeKind)); | 421 | 520 | return *static_cast<const T *>( | 422 | 520 | *reinterpret_cast<const void *const *>(Storage)); | 423 | 520 | } |
|
424 | 1.80k | static DynTypedNode create(const T &Node) { |
425 | 1.80k | DynTypedNode Result; |
426 | 1.80k | Result.NodeKind = ASTNodeKind::getFromNodeKind<T>(); |
427 | 1.80k | new (&Result.Storage) const void *(&Node); |
428 | 1.80k | return Result; |
429 | 1.80k | } clang::DynTypedNode::PtrConverter<clang::CXXBaseSpecifier>::create(clang::CXXBaseSpecifier const&) Line | Count | Source | 424 | 520 | static DynTypedNode create(const T &Node) { | 425 | 520 | DynTypedNode Result; | 426 | 520 | Result.NodeKind = ASTNodeKind::getFromNodeKind<T>(); | 427 | 520 | new (&Result.Storage) const void *(&Node); | 428 | 520 | return Result; | 429 | 520 | } |
clang::DynTypedNode::PtrConverter<clang::NestedNameSpecifier>::create(clang::NestedNameSpecifier const&) Line | Count | Source | 424 | 940 | static DynTypedNode create(const T &Node) { | 425 | 940 | DynTypedNode Result; | 426 | 940 | Result.NodeKind = ASTNodeKind::getFromNodeKind<T>(); | 427 | 940 | new (&Result.Storage) const void *(&Node); | 428 | 940 | return Result; | 429 | 940 | } |
clang::DynTypedNode::PtrConverter<clang::CXXCtorInitializer>::create(clang::CXXCtorInitializer const&) Line | Count | Source | 424 | 347 | static DynTypedNode create(const T &Node) { | 425 | 347 | DynTypedNode Result; | 426 | 347 | Result.NodeKind = ASTNodeKind::getFromNodeKind<T>(); | 427 | 347 | new (&Result.Storage) const void *(&Node); | 428 | 347 | return Result; | 429 | 347 | } |
|
430 | | }; |
431 | | |
432 | | /// Converter that stores T (by value). |
433 | | template <typename T> struct ValueConverter { |
434 | 11.4k | static const T *get(ASTNodeKind NodeKind, const void *Storage) { |
435 | 11.4k | if (ASTNodeKind::getFromNodeKind<T>().isSame(NodeKind)) |
436 | 2.90k | return reinterpret_cast<const T *>(Storage); |
437 | 8.56k | return nullptr; |
438 | 8.56k | } clang::DynTypedNode::ValueConverter<clang::TemplateArgument>::get(clang::ASTNodeKind, void const*) Line | Count | Source | 434 | 9 | static const T *get(ASTNodeKind NodeKind, const void *Storage) { | 435 | 9 | if (ASTNodeKind::getFromNodeKind<T>().isSame(NodeKind)) | 436 | 1 | return reinterpret_cast<const T *>(Storage); | 437 | 8 | return nullptr; | 438 | 8 | } |
clang::DynTypedNode::ValueConverter<clang::TemplateArgumentLoc>::get(clang::ASTNodeKind, void const*) Line | Count | Source | 434 | 26 | static const T *get(ASTNodeKind NodeKind, const void *Storage) { | 435 | 26 | if (ASTNodeKind::getFromNodeKind<T>().isSame(NodeKind)) | 436 | 18 | return reinterpret_cast<const T *>(Storage); | 437 | 8 | return nullptr; | 438 | 8 | } |
clang::DynTypedNode::ValueConverter<clang::TemplateName>::get(clang::ASTNodeKind, void const*) Line | Count | Source | 434 | 8 | static const T *get(ASTNodeKind NodeKind, const void *Storage) { | 435 | 8 | if (ASTNodeKind::getFromNodeKind<T>().isSame(NodeKind)) | 436 | 0 | return reinterpret_cast<const T *>(Storage); | 437 | 8 | return nullptr; | 438 | 8 | } |
clang::DynTypedNode::ValueConverter<clang::NestedNameSpecifierLoc>::get(clang::ASTNodeKind, void const*) Line | Count | Source | 434 | 5.62k | static const T *get(ASTNodeKind NodeKind, const void *Storage) { | 435 | 5.62k | if (ASTNodeKind::getFromNodeKind<T>().isSame(NodeKind)) | 436 | 174 | return reinterpret_cast<const T *>(Storage); | 437 | 5.45k | return nullptr; | 438 | 5.45k | } |
clang::DynTypedNode::ValueConverter<clang::QualType>::get(clang::ASTNodeKind, void const*) Line | Count | Source | 434 | 264 | static const T *get(ASTNodeKind NodeKind, const void *Storage) { | 435 | 264 | if (ASTNodeKind::getFromNodeKind<T>().isSame(NodeKind)) | 436 | 238 | return reinterpret_cast<const T *>(Storage); | 437 | 26 | return nullptr; | 438 | 26 | } |
clang::DynTypedNode::ValueConverter<clang::TypeLoc>::get(clang::ASTNodeKind, void const*) Line | Count | Source | 434 | 5.53k | static const T *get(ASTNodeKind NodeKind, const void *Storage) { | 435 | 5.53k | if (ASTNodeKind::getFromNodeKind<T>().isSame(NodeKind)) | 436 | 2.47k | return reinterpret_cast<const T *>(Storage); | 437 | 3.06k | return nullptr; | 438 | 3.06k | } |
|
439 | 110k | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { |
440 | 110k | assert(ASTNodeKind::getFromNodeKind<T>().isSame(NodeKind)); |
441 | 110k | return *reinterpret_cast<const T *>(Storage); |
442 | 110k | } clang::DynTypedNode::ValueConverter<clang::QualType>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 439 | 33.0k | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 440 | 33.0k | assert(ASTNodeKind::getFromNodeKind<T>().isSame(NodeKind)); | 441 | 33.0k | return *reinterpret_cast<const T *>(Storage); | 442 | 33.0k | } |
clang::DynTypedNode::ValueConverter<clang::TypeLoc>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 439 | 76.1k | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 440 | 76.1k | assert(ASTNodeKind::getFromNodeKind<T>().isSame(NodeKind)); | 441 | 76.1k | return *reinterpret_cast<const T *>(Storage); | 442 | 76.1k | } |
clang::DynTypedNode::ValueConverter<clang::NestedNameSpecifierLoc>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 439 | 1.44k | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 440 | 1.44k | assert(ASTNodeKind::getFromNodeKind<T>().isSame(NodeKind)); | 441 | 1.44k | return *reinterpret_cast<const T *>(Storage); | 442 | 1.44k | } |
clang::DynTypedNode::ValueConverter<clang::TemplateArgument>::getUnchecked(clang::ASTNodeKind, void const*) Line | Count | Source | 439 | 238 | static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) { | 440 | 238 | assert(ASTNodeKind::getFromNodeKind<T>().isSame(NodeKind)); | 441 | 238 | return *reinterpret_cast<const T *>(Storage); | 442 | 238 | } |
|
443 | 142k | static DynTypedNode create(const T &Node) { |
444 | 142k | DynTypedNode Result; |
445 | 142k | Result.NodeKind = ASTNodeKind::getFromNodeKind<T>(); |
446 | 142k | new (&Result.Storage) T(Node); |
447 | 142k | return Result; |
448 | 142k | } clang::DynTypedNode::ValueConverter<clang::TypeLoc>::create(clang::TypeLoc const&) Line | Count | Source | 443 | 69.6k | static DynTypedNode create(const T &Node) { | 444 | 69.6k | DynTypedNode Result; | 445 | 69.6k | Result.NodeKind = ASTNodeKind::getFromNodeKind<T>(); | 446 | 69.6k | new (&Result.Storage) T(Node); | 447 | 69.6k | return Result; | 448 | 69.6k | } |
clang::DynTypedNode::ValueConverter<clang::NestedNameSpecifierLoc>::create(clang::NestedNameSpecifierLoc const&) Line | Count | Source | 443 | 22.6k | static DynTypedNode create(const T &Node) { | 444 | 22.6k | DynTypedNode Result; | 445 | 22.6k | Result.NodeKind = ASTNodeKind::getFromNodeKind<T>(); | 446 | 22.6k | new (&Result.Storage) T(Node); | 447 | 22.6k | return Result; | 448 | 22.6k | } |
clang::DynTypedNode::ValueConverter<clang::QualType>::create(clang::QualType const&) Line | Count | Source | 443 | 49.0k | static DynTypedNode create(const T &Node) { | 444 | 49.0k | DynTypedNode Result; | 445 | 49.0k | Result.NodeKind = ASTNodeKind::getFromNodeKind<T>(); | 446 | 49.0k | new (&Result.Storage) T(Node); | 447 | 49.0k | return Result; | 448 | 49.0k | } |
clang::DynTypedNode::ValueConverter<clang::TemplateName>::create(clang::TemplateName const&) Line | Count | Source | 443 | 2 | static DynTypedNode create(const T &Node) { | 444 | 2 | DynTypedNode Result; | 445 | 2 | Result.NodeKind = ASTNodeKind::getFromNodeKind<T>(); | 446 | 2 | new (&Result.Storage) T(Node); | 447 | 2 | return Result; | 448 | 2 | } |
clang::DynTypedNode::ValueConverter<clang::TemplateArgumentLoc>::create(clang::TemplateArgumentLoc const&) Line | Count | Source | 443 | 470 | static DynTypedNode create(const T &Node) { | 444 | 470 | DynTypedNode Result; | 445 | 470 | Result.NodeKind = ASTNodeKind::getFromNodeKind<T>(); | 446 | 470 | new (&Result.Storage) T(Node); | 447 | 470 | return Result; | 448 | 470 | } |
clang::DynTypedNode::ValueConverter<clang::TemplateArgument>::create(clang::TemplateArgument const&) Line | Count | Source | 443 | 265 | static DynTypedNode create(const T &Node) { | 444 | 265 | DynTypedNode Result; | 445 | 265 | Result.NodeKind = ASTNodeKind::getFromNodeKind<T>(); | 446 | 265 | new (&Result.Storage) T(Node); | 447 | 265 | return Result; | 448 | 265 | } |
|
449 | | }; |
450 | | |
451 | | ASTNodeKind NodeKind; |
452 | | |
453 | | /// Stores the data of the node. |
454 | | /// |
455 | | /// Note that we can store \c Decls, \c Stmts, \c Types, |
456 | | /// \c NestedNameSpecifiers and \c CXXCtorInitializer by pointer as they are |
457 | | /// guaranteed to be unique pointers pointing to dedicated storage in the AST. |
458 | | /// \c QualTypes, \c NestedNameSpecifierLocs, \c TypeLocs, |
459 | | /// \c TemplateArguments and \c TemplateArgumentLocs on the other hand do not |
460 | | /// have storage or unique pointers and thus need to be stored by value. |
461 | | llvm::AlignedCharArrayUnion<const void *, TemplateArgument, |
462 | | TemplateArgumentLoc, NestedNameSpecifierLoc, |
463 | | QualType, TypeLoc> |
464 | | Storage; |
465 | | }; |
466 | | |
467 | | template <typename T> |
468 | | struct DynTypedNode::BaseConverter< |
469 | | T, std::enable_if_t<std::is_base_of<Decl, T>::value>> |
470 | | : public DynCastPtrConverter<T, Decl> {}; |
471 | | |
472 | | template <typename T> |
473 | | struct DynTypedNode::BaseConverter< |
474 | | T, std::enable_if_t<std::is_base_of<Stmt, T>::value>> |
475 | | : public DynCastPtrConverter<T, Stmt> {}; |
476 | | |
477 | | template <typename T> |
478 | | struct DynTypedNode::BaseConverter< |
479 | | T, std::enable_if_t<std::is_base_of<Type, T>::value>> |
480 | | : public DynCastPtrConverter<T, Type> {}; |
481 | | |
482 | | template <typename T> |
483 | | struct DynTypedNode::BaseConverter< |
484 | | T, std::enable_if_t<std::is_base_of<OMPClause, T>::value>> |
485 | | : public DynCastPtrConverter<T, OMPClause> {}; |
486 | | |
487 | | template <> |
488 | | struct DynTypedNode::BaseConverter< |
489 | | NestedNameSpecifier, void> : public PtrConverter<NestedNameSpecifier> {}; |
490 | | |
491 | | template <> |
492 | | struct DynTypedNode::BaseConverter< |
493 | | CXXCtorInitializer, void> : public PtrConverter<CXXCtorInitializer> {}; |
494 | | |
495 | | template <> |
496 | | struct DynTypedNode::BaseConverter< |
497 | | TemplateArgument, void> : public ValueConverter<TemplateArgument> {}; |
498 | | |
499 | | template <> |
500 | | struct DynTypedNode::BaseConverter<TemplateArgumentLoc, void> |
501 | | : public ValueConverter<TemplateArgumentLoc> {}; |
502 | | |
503 | | template <> |
504 | | struct DynTypedNode::BaseConverter< |
505 | | TemplateName, void> : public ValueConverter<TemplateName> {}; |
506 | | |
507 | | template <> |
508 | | struct DynTypedNode::BaseConverter< |
509 | | NestedNameSpecifierLoc, |
510 | | void> : public ValueConverter<NestedNameSpecifierLoc> {}; |
511 | | |
512 | | template <> |
513 | | struct DynTypedNode::BaseConverter<QualType, |
514 | | void> : public ValueConverter<QualType> {}; |
515 | | |
516 | | template <> |
517 | | struct DynTypedNode::BaseConverter< |
518 | | TypeLoc, void> : public ValueConverter<TypeLoc> {}; |
519 | | |
520 | | template <> |
521 | | struct DynTypedNode::BaseConverter<CXXBaseSpecifier, void> |
522 | | : public PtrConverter<CXXBaseSpecifier> {}; |
523 | | |
524 | | // The only operation we allow on unsupported types is \c get. |
525 | | // This allows to conveniently use \c DynTypedNode when having an arbitrary |
526 | | // AST node that is not supported, but prevents misuse - a user cannot create |
527 | | // a DynTypedNode from arbitrary types. |
528 | | template <typename T, typename EnablerT> struct DynTypedNode::BaseConverter { |
529 | | static const T *get(ASTNodeKind NodeKind, const char Storage[]) { |
530 | | return NULL; |
531 | | } |
532 | | }; |
533 | | |
534 | | } // end namespace clang |
535 | | |
536 | | namespace llvm { |
537 | | |
538 | | template <> |
539 | | struct DenseMapInfo<clang::ASTNodeKind> : clang::ASTNodeKind::DenseMapInfo {}; |
540 | | |
541 | | template <> |
542 | | struct DenseMapInfo<clang::DynTypedNode> : clang::DynTypedNode::DenseMapInfo {}; |
543 | | |
544 | | } // end namespace llvm |
545 | | |
546 | | #endif |