Coverage Report

Created: 2022-07-16 07:03

/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/LambdaCapture.h"
21
#include "clang/AST/NestedNameSpecifier.h"
22
#include "clang/AST/TemplateBase.h"
23
#include "clang/AST/TypeLoc.h"
24
#include "clang/Basic/LLVM.h"
25
#include "llvm/ADT/DenseMapInfo.h"
26
#include "llvm/Support/AlignOf.h"
27
28
namespace llvm {
29
class raw_ostream;
30
} // namespace llvm
31
32
namespace clang {
33
34
struct PrintingPolicy;
35
36
/// Defines how we descend a level in the AST when we pass
37
/// through expressions.
38
enum TraversalKind {
39
  /// Will traverse all child nodes.
40
  TK_AsIs,
41
42
  /// Ignore AST nodes not written in the source
43
  TK_IgnoreUnlessSpelledInSource
44
};
45
46
/// Kind identifier.
47
///
48
/// It can be constructed from any node kind and allows for runtime type
49
/// hierarchy checks.
50
/// Use getFromNodeKind<T>() to construct them.
51
class ASTNodeKind {
52
public:
53
  /// Empty identifier. It matches nothing.
54
31.8M
  ASTNodeKind() : KindId(NKI_None) {}
55
56
  /// Construct an identifier for T.
57
  template <class T>
58
15.7M
  static ASTNodeKind getFromNodeKind() {
59
15.7M
    return ASTNodeKind(KindToKindId<T>::Id);
60
15.7M
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::QualType>()
Line
Count
Source
58
1.39M
  static ASTNodeKind getFromNodeKind() {
59
1.39M
    return ASTNodeKind(KindToKindId<T>::Id);
60
1.39M
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::TypeLoc>()
Line
Count
Source
58
3.87M
  static ASTNodeKind getFromNodeKind() {
59
3.87M
    return ASTNodeKind(KindToKindId<T>::Id);
60
3.87M
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::NestedNameSpecifierLoc>()
Line
Count
Source
58
1.45M
  static ASTNodeKind getFromNodeKind() {
59
1.45M
    return ASTNodeKind(KindToKindId<T>::Id);
60
1.45M
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::Stmt>()
Line
Count
Source
58
1.78M
  static ASTNodeKind getFromNodeKind() {
59
1.78M
    return ASTNodeKind(KindToKindId<T>::Id);
60
1.78M
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::TemplateArgument>()
Line
Count
Source
58
15.5k
  static ASTNodeKind getFromNodeKind() {
59
15.5k
    return ASTNodeKind(KindToKindId<T>::Id);
60
15.5k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::TemplateArgumentLoc>()
Line
Count
Source
58
1.11k
  static ASTNodeKind getFromNodeKind() {
59
1.11k
    return ASTNodeKind(KindToKindId<T>::Id);
60
1.11k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::TemplateName>()
Line
Count
Source
58
73
  static ASTNodeKind getFromNodeKind() {
59
73
    return ASTNodeKind(KindToKindId<T>::Id);
60
73
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::NestedNameSpecifier>()
Line
Count
Source
58
4.22k
  static ASTNodeKind getFromNodeKind() {
59
4.22k
    return ASTNodeKind(KindToKindId<T>::Id);
60
4.22k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::Type>()
Line
Count
Source
58
701k
  static ASTNodeKind getFromNodeKind() {
59
701k
    return ASTNodeKind(KindToKindId<T>::Id);
60
701k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::Attr>()
Line
Count
Source
58
1.49k
  static ASTNodeKind getFromNodeKind() {
59
1.49k
    return ASTNodeKind(KindToKindId<T>::Id);
60
1.49k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXCtorInitializer>()
Line
Count
Source
58
1.47k
  static ASTNodeKind getFromNodeKind() {
59
1.47k
    return ASTNodeKind(KindToKindId<T>::Id);
60
1.47k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::OMPClause>()
Line
Count
Source
58
146
  static ASTNodeKind getFromNodeKind() {
59
146
    return ASTNodeKind(KindToKindId<T>::Id);
60
146
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXBaseSpecifier>()
Line
Count
Source
58
1.60k
  static ASTNodeKind getFromNodeKind() {
59
1.60k
    return ASTNodeKind(KindToKindId<T>::Id);
60
1.60k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::DeclStmt>()
Line
Count
Source
58
25.1k
  static ASTNodeKind getFromNodeKind() {
59
25.1k
    return ASTNodeKind(KindToKindId<T>::Id);
60
25.1k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXForRangeStmt>()
Line
Count
Source
58
3.30k
  static ASTNodeKind getFromNodeKind() {
59
3.30k
    return ASTNodeKind(KindToKindId<T>::Id);
60
3.30k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::VarDecl>()
Line
Count
Source
58
215k
  static ASTNodeKind getFromNodeKind() {
59
215k
    return ASTNodeKind(KindToKindId<T>::Id);
60
215k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXMethodDecl>()
Line
Count
Source
58
57.2k
  static ASTNodeKind getFromNodeKind() {
59
57.2k
    return ASTNodeKind(KindToKindId<T>::Id);
60
57.2k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXRecordDecl>()
Line
Count
Source
58
57.4k
  static ASTNodeKind getFromNodeKind() {
59
57.4k
    return ASTNodeKind(KindToKindId<T>::Id);
60
57.4k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::LambdaExpr>()
Line
Count
Source
58
3.38k
  static ASTNodeKind getFromNodeKind() {
59
3.38k
    return ASTNodeKind(KindToKindId<T>::Id);
60
3.38k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::FunctionTemplateDecl>()
Line
Count
Source
58
8.46k
  static ASTNodeKind getFromNodeKind() {
59
8.46k
    return ASTNodeKind(KindToKindId<T>::Id);
60
8.46k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::Expr>()
Line
Count
Source
58
2.62M
  static ASTNodeKind getFromNodeKind() {
59
2.62M
    return ASTNodeKind(KindToKindId<T>::Id);
60
2.62M
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::Decl>()
Line
Count
Source
58
2.21M
  static ASTNodeKind getFromNodeKind() {
59
2.21M
    return ASTNodeKind(KindToKindId<T>::Id);
60
2.21M
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ObjCProtocolLoc>()
Line
Count
Source
58
12
  static ASTNodeKind getFromNodeKind() {
59
12
    return ASTNodeKind(KindToKindId<T>::Id);
60
12
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CompoundStmt>()
Line
Count
Source
58
4.43k
  static ASTNodeKind getFromNodeKind() {
59
4.43k
    return ASTNodeKind(KindToKindId<T>::Id);
60
4.43k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::BlockPointerType>()
Line
Count
Source
58
1.43k
  static ASTNodeKind getFromNodeKind() {
59
1.43k
    return ASTNodeKind(KindToKindId<T>::Id);
60
1.43k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXDeleteExpr>()
Line
Count
Source
58
319
  static ASTNodeKind getFromNodeKind() {
59
319
    return ASTNodeKind(KindToKindId<T>::Id);
60
319
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::TypedefType>()
Line
Count
Source
58
1.24k
  static ASTNodeKind getFromNodeKind() {
59
1.24k
    return ASTNodeKind(KindToKindId<T>::Id);
60
1.24k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::TypedefDecl>()
Line
Count
Source
58
2.48k
  static ASTNodeKind getFromNodeKind() {
59
2.48k
    return ASTNodeKind(KindToKindId<T>::Id);
60
2.48k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::RecordType>()
Line
Count
Source
58
6.28k
  static ASTNodeKind getFromNodeKind() {
59
6.28k
    return ASTNodeKind(KindToKindId<T>::Id);
60
6.28k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ObjCObjectPointerType>()
Line
Count
Source
58
1.24k
  static ASTNodeKind getFromNodeKind() {
59
1.24k
    return ASTNodeKind(KindToKindId<T>::Id);
60
1.24k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ObjCAutoreleasePoolStmt>()
Line
Count
Source
58
2.95k
  static ASTNodeKind getFromNodeKind() {
59
2.95k
    return ASTNodeKind(KindToKindId<T>::Id);
60
2.95k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::StringLiteral>()
Line
Count
Source
58
993
  static ASTNodeKind getFromNodeKind() {
59
993
    return ASTNodeKind(KindToKindId<T>::Id);
60
993
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::PointerType>()
Line
Count
Source
58
2.20k
  static ASTNodeKind getFromNodeKind() {
59
2.20k
    return ASTNodeKind(KindToKindId<T>::Id);
60
2.20k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CStyleCastExpr>()
Line
Count
Source
58
226
  static ASTNodeKind getFromNodeKind() {
59
226
    return ASTNodeKind(KindToKindId<T>::Id);
60
226
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::RecordDecl>()
Line
Count
Source
58
14.9k
  static ASTNodeKind getFromNodeKind() {
59
14.9k
    return ASTNodeKind(KindToKindId<T>::Id);
60
14.9k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ConditionalOperator>()
Line
Count
Source
58
32.2k
  static ASTNodeKind getFromNodeKind() {
59
32.2k
    return ASTNodeKind(KindToKindId<T>::Id);
60
32.2k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ObjCIvarRefExpr>()
Line
Count
Source
58
202
  static ASTNodeKind getFromNodeKind() {
59
202
    return ASTNodeKind(KindToKindId<T>::Id);
60
202
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::BinaryOperator>()
Line
Count
Source
58
34.4k
  static ASTNodeKind getFromNodeKind() {
59
34.4k
    return ASTNodeKind(KindToKindId<T>::Id);
60
34.4k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::IntegerLiteral>()
Line
Count
Source
58
4.54k
  static ASTNodeKind getFromNodeKind() {
59
4.54k
    return ASTNodeKind(KindToKindId<T>::Id);
60
4.54k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::UnaryOperator>()
Line
Count
Source
58
96.1k
  static ASTNodeKind getFromNodeKind() {
59
96.1k
    return ASTNodeKind(KindToKindId<T>::Id);
60
96.1k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::GotoStmt>()
Line
Count
Source
58
602
  static ASTNodeKind getFromNodeKind() {
59
602
    return ASTNodeKind(KindToKindId<T>::Id);
60
602
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXOperatorCallExpr>()
Line
Count
Source
58
36.7k
  static ASTNodeKind getFromNodeKind() {
59
36.7k
    return ASTNodeKind(KindToKindId<T>::Id);
60
36.7k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ReferenceType>()
Line
Count
Source
58
51.6k
  static ASTNodeKind getFromNodeKind() {
59
51.6k
    return ASTNodeKind(KindToKindId<T>::Id);
60
51.6k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXMemberCallExpr>()
Line
Count
Source
58
24.4k
  static ASTNodeKind getFromNodeKind() {
59
24.4k
    return ASTNodeKind(KindToKindId<T>::Id);
60
24.4k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::NamedDecl>()
Line
Count
Source
58
180k
  static ASTNodeKind getFromNodeKind() {
59
180k
    return ASTNodeKind(KindToKindId<T>::Id);
60
180k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ObjCInterfaceDecl>()
Line
Count
Source
58
9.13k
  static ASTNodeKind getFromNodeKind() {
59
9.13k
    return ASTNodeKind(KindToKindId<T>::Id);
60
9.13k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CallExpr>()
Line
Count
Source
58
68.1k
  static ASTNodeKind getFromNodeKind() {
59
68.1k
    return ASTNodeKind(KindToKindId<T>::Id);
60
68.1k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::LambdaCapture>()
Line
Count
Source
58
920
  static ASTNodeKind getFromNodeKind() {
59
920
    return ASTNodeKind(KindToKindId<T>::Id);
60
920
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::FunctionDecl>()
Line
Count
Source
58
93.6k
  static ASTNodeKind getFromNodeKind() {
59
93.6k
    return ASTNodeKind(KindToKindId<T>::Id);
60
93.6k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ObjCMethodDecl>()
Line
Count
Source
58
2.80k
  static ASTNodeKind getFromNodeKind() {
59
2.80k
    return ASTNodeKind(KindToKindId<T>::Id);
60
2.80k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::BlockDecl>()
Line
Count
Source
58
2.59k
  static ASTNodeKind getFromNodeKind() {
59
2.59k
    return ASTNodeKind(KindToKindId<T>::Id);
60
2.59k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::FieldDecl>()
Line
Count
Source
58
4.53k
  static ASTNodeKind getFromNodeKind() {
59
4.53k
    return ASTNodeKind(KindToKindId<T>::Id);
60
4.53k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ClassTemplateSpecializationDecl>()
Line
Count
Source
58
123k
  static ASTNodeKind getFromNodeKind() {
59
123k
    return ASTNodeKind(KindToKindId<T>::Id);
60
123k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::InitListExpr>()
Line
Count
Source
58
17.1k
  static ASTNodeKind getFromNodeKind() {
59
17.1k
    return ASTNodeKind(KindToKindId<T>::Id);
60
17.1k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ForStmt>()
Line
Count
Source
58
2.92k
  static ASTNodeKind getFromNodeKind() {
59
2.92k
    return ASTNodeKind(KindToKindId<T>::Id);
60
2.92k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::DesignatedInitExpr>()
Line
Count
Source
58
328
  static ASTNodeKind getFromNodeKind() {
59
328
    return ASTNodeKind(KindToKindId<T>::Id);
60
328
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::UnaryExprOrTypeTraitExpr>()
Line
Count
Source
58
5.30k
  static ASTNodeKind getFromNodeKind() {
59
5.30k
    return ASTNodeKind(KindToKindId<T>::Id);
60
5.30k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXDependentScopeMemberExpr>()
Line
Count
Source
58
1.87k
  static ASTNodeKind getFromNodeKind() {
59
1.87k
    return ASTNodeKind(KindToKindId<T>::Id);
60
1.87k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ObjCMessageExpr>()
Line
Count
Source
58
15.7k
  static ASTNodeKind getFromNodeKind() {
59
15.7k
    return ASTNodeKind(KindToKindId<T>::Id);
60
15.7k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::DeclRefExpr>()
Line
Count
Source
58
75.1k
  static ASTNodeKind getFromNodeKind() {
59
75.1k
    return ASTNodeKind(KindToKindId<T>::Id);
60
75.1k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::OverloadExpr>()
Line
Count
Source
58
41
  static ASTNodeKind getFromNodeKind() {
59
41
    return ASTNodeKind(KindToKindId<T>::Id);
60
41
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXCatchStmt>()
Line
Count
Source
58
260
  static ASTNodeKind getFromNodeKind() {
59
260
    return ASTNodeKind(KindToKindId<T>::Id);
60
260
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXConstructorDecl>()
Line
Count
Source
58
14.1k
  static ASTNodeKind getFromNodeKind() {
59
14.1k
    return ASTNodeKind(KindToKindId<T>::Id);
60
14.1k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXConstructExpr>()
Line
Count
Source
58
13.4k
  static ASTNodeKind getFromNodeKind() {
59
13.4k
    return ASTNodeKind(KindToKindId<T>::Id);
60
13.4k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ParmVarDecl>()
Line
Count
Source
58
53.2k
  static ASTNodeKind getFromNodeKind() {
59
53.2k
    return ASTNodeKind(KindToKindId<T>::Id);
60
53.2k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::IfStmt>()
Line
Count
Source
58
3.56k
  static ASTNodeKind getFromNodeKind() {
59
3.56k
    return ASTNodeKind(KindToKindId<T>::Id);
60
3.56k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ArraySubscriptExpr>()
Line
Count
Source
58
2.04k
  static ASTNodeKind getFromNodeKind() {
59
2.04k
    return ASTNodeKind(KindToKindId<T>::Id);
60
2.04k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CastExpr>()
Line
Count
Source
58
42.3k
  static ASTNodeKind getFromNodeKind() {
59
42.3k
    return ASTNodeKind(KindToKindId<T>::Id);
60
42.3k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ExplicitCastExpr>()
Line
Count
Source
58
3.53k
  static ASTNodeKind getFromNodeKind() {
59
3.53k
    return ASTNodeKind(KindToKindId<T>::Id);
60
3.53k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ImplicitCastExpr>()
Line
Count
Source
58
179k
  static ASTNodeKind getFromNodeKind() {
59
179k
    return ASTNodeKind(KindToKindId<T>::Id);
60
179k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::TagDecl>()
Line
Count
Source
58
549
  static ASTNodeKind getFromNodeKind() {
59
549
    return ASTNodeKind(KindToKindId<T>::Id);
60
549
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::AbstractConditionalOperator>()
Line
Count
Source
58
17.3k
  static ASTNodeKind getFromNodeKind() {
59
17.3k
    return ASTNodeKind(KindToKindId<T>::Id);
60
17.3k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::MemberExpr>()
Line
Count
Source
58
4.64k
  static ASTNodeKind getFromNodeKind() {
59
4.64k
    return ASTNodeKind(KindToKindId<T>::Id);
60
4.64k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::BaseUsingDecl>()
Line
Count
Source
58
65
  static ASTNodeKind getFromNodeKind() {
59
65
    return ASTNodeKind(KindToKindId<T>::Id);
60
65
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::UsingShadowDecl>()
Line
Count
Source
58
3.79k
  static ASTNodeKind getFromNodeKind() {
59
3.79k
    return ASTNodeKind(KindToKindId<T>::Id);
60
3.79k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::QualifiedTypeLoc>()
Line
Count
Source
58
227
  static ASTNodeKind getFromNodeKind() {
59
227
    return ASTNodeKind(KindToKindId<T>::Id);
60
227
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::PointerTypeLoc>()
Line
Count
Source
58
199
  static ASTNodeKind getFromNodeKind() {
59
199
    return ASTNodeKind(KindToKindId<T>::Id);
60
199
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ReferenceTypeLoc>()
Line
Count
Source
58
200
  static ASTNodeKind getFromNodeKind() {
59
200
    return ASTNodeKind(KindToKindId<T>::Id);
60
200
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::TemplateSpecializationTypeLoc>()
Line
Count
Source
58
242
  static ASTNodeKind getFromNodeKind() {
59
242
    return ASTNodeKind(KindToKindId<T>::Id);
60
242
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ElaboratedTypeLoc>()
Line
Count
Source
58
260
  static ASTNodeKind getFromNodeKind() {
59
260
    return ASTNodeKind(KindToKindId<T>::Id);
60
260
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::VariableArrayType>()
Line
Count
Source
58
1.20k
  static ASTNodeKind getFromNodeKind() {
59
1.20k
    return ASTNodeKind(KindToKindId<T>::Id);
60
1.20k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ElaboratedType>()
Line
Count
Source
58
213
  static ASTNodeKind getFromNodeKind() {
59
213
    return ASTNodeKind(KindToKindId<T>::Id);
60
213
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::DecayedType>()
Line
Count
Source
58
144
  static ASTNodeKind getFromNodeKind() {
59
144
    return ASTNodeKind(KindToKindId<T>::Id);
60
144
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::SwitchStmt>()
Line
Count
Source
58
926
  static ASTNodeKind getFromNodeKind() {
59
926
    return ASTNodeKind(KindToKindId<T>::Id);
60
926
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::NamespaceDecl>()
Line
Count
Source
58
437
  static ASTNodeKind getFromNodeKind() {
59
437
    return ASTNodeKind(KindToKindId<T>::Id);
60
437
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CaseStmt>()
Line
Count
Source
58
133
  static ASTNodeKind getFromNodeKind() {
59
133
    return ASTNodeKind(KindToKindId<T>::Id);
60
133
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ReturnStmt>()
Line
Count
Source
58
2.38k
  static ASTNodeKind getFromNodeKind() {
59
2.38k
    return ASTNodeKind(KindToKindId<T>::Id);
60
2.38k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::BindingDecl>()
Line
Count
Source
58
243
  static ASTNodeKind getFromNodeKind() {
59
243
    return ASTNodeKind(KindToKindId<T>::Id);
60
243
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::DecompositionDecl>()
Line
Count
Source
58
129
  static ASTNodeKind getFromNodeKind() {
59
129
    return ASTNodeKind(KindToKindId<T>::Id);
60
129
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXNewExpr>()
Line
Count
Source
58
305
  static ASTNodeKind getFromNodeKind() {
59
305
    return ASTNodeKind(KindToKindId<T>::Id);
60
305
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::EnumDecl>()
Line
Count
Source
58
3.40k
  static ASTNodeKind getFromNodeKind() {
59
3.40k
    return ASTNodeKind(KindToKindId<T>::Id);
60
3.40k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::OMPExecutableDirective>()
Line
Count
Source
58
1.15k
  static ASTNodeKind getFromNodeKind() {
59
1.15k
    return ASTNodeKind(KindToKindId<T>::Id);
60
1.15k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::OMPDefaultClause>()
Line
Count
Source
58
393
  static ASTNodeKind getFromNodeKind() {
59
393
    return ASTNodeKind(KindToKindId<T>::Id);
60
393
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::TranslationUnitDecl>()
Line
Count
Source
58
2.73k
  static ASTNodeKind getFromNodeKind() {
59
2.73k
    return ASTNodeKind(KindToKindId<T>::Id);
60
2.73k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXThisExpr>()
Line
Count
Source
58
8.29k
  static ASTNodeKind getFromNodeKind() {
59
8.29k
    return ASTNodeKind(KindToKindId<T>::Id);
60
8.29k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::GNUNullExpr>()
Line
Count
Source
58
151
  static ASTNodeKind getFromNodeKind() {
59
151
    return ASTNodeKind(KindToKindId<T>::Id);
60
151
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXNullPtrLiteralExpr>()
Line
Count
Source
58
874
  static ASTNodeKind getFromNodeKind() {
59
874
    return ASTNodeKind(KindToKindId<T>::Id);
60
874
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::FriendDecl>()
Line
Count
Source
58
761
  static ASTNodeKind getFromNodeKind() {
59
761
    return ASTNodeKind(KindToKindId<T>::Id);
60
761
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::TypedefNameDecl>()
Line
Count
Source
58
1.49k
  static ASTNodeKind getFromNodeKind() {
59
1.49k
    return ASTNodeKind(KindToKindId<T>::Id);
60
1.49k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ValueDecl>()
Line
Count
Source
58
1.20k
  static ASTNodeKind getFromNodeKind() {
59
1.20k
    return ASTNodeKind(KindToKindId<T>::Id);
60
1.20k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CharacterLiteral>()
Line
Count
Source
58
278
  static ASTNodeKind getFromNodeKind() {
59
278
    return ASTNodeKind(KindToKindId<T>::Id);
60
278
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXBoolLiteralExpr>()
Line
Count
Source
58
707
  static ASTNodeKind getFromNodeKind() {
59
707
    return ASTNodeKind(KindToKindId<T>::Id);
60
707
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::FloatingLiteral>()
Line
Count
Source
58
677
  static ASTNodeKind getFromNodeKind() {
59
677
    return ASTNodeKind(KindToKindId<T>::Id);
60
677
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::AccessSpecDecl>()
Line
Count
Source
58
190
  static ASTNodeKind getFromNodeKind() {
59
190
    return ASTNodeKind(KindToKindId<T>::Id);
60
190
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::AddrLabelExpr>()
Line
Count
Source
58
121
  static ASTNodeKind getFromNodeKind() {
59
121
    return ASTNodeKind(KindToKindId<T>::Id);
60
121
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXUnresolvedConstructExpr>()
Line
Count
Source
58
503
  static ASTNodeKind getFromNodeKind() {
59
503
    return ASTNodeKind(KindToKindId<T>::Id);
60
503
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ArrayType>()
Line
Count
Source
58
908
  static ASTNodeKind getFromNodeKind() {
59
908
    return ASTNodeKind(KindToKindId<T>::Id);
60
908
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::AsmStmt>()
Line
Count
Source
58
82
  static ASTNodeKind getFromNodeKind() {
59
82
    return ASTNodeKind(KindToKindId<T>::Id);
60
82
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::AtomicExpr>()
Line
Count
Source
58
124
  static ASTNodeKind getFromNodeKind() {
59
124
    return ASTNodeKind(KindToKindId<T>::Id);
60
124
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::AtomicType>()
Line
Count
Source
58
198
  static ASTNodeKind getFromNodeKind() {
59
198
    return ASTNodeKind(KindToKindId<T>::Id);
60
198
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::AutoType>()
Line
Count
Source
58
114
  static ASTNodeKind getFromNodeKind() {
59
114
    return ASTNodeKind(KindToKindId<T>::Id);
60
114
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::BinaryConditionalOperator>()
Line
Count
Source
58
28.3k
  static ASTNodeKind getFromNodeKind() {
59
28.3k
    return ASTNodeKind(KindToKindId<T>::Id);
60
28.3k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXRewrittenBinaryOperator>()
Line
Count
Source
58
4.11k
  static ASTNodeKind getFromNodeKind() {
59
4.11k
    return ASTNodeKind(KindToKindId<T>::Id);
60
4.11k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::BlockExpr>()
Line
Count
Source
58
82
  static ASTNodeKind getFromNodeKind() {
59
82
    return ASTNodeKind(KindToKindId<T>::Id);
60
82
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::BreakStmt>()
Line
Count
Source
58
82
  static ASTNodeKind getFromNodeKind() {
59
82
    return ASTNodeKind(KindToKindId<T>::Id);
60
82
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::BuiltinType>()
Line
Count
Source
58
598
  static ASTNodeKind getFromNodeKind() {
59
598
    return ASTNodeKind(KindToKindId<T>::Id);
60
598
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ChooseExpr>()
Line
Count
Source
58
134
  static ASTNodeKind getFromNodeKind() {
59
134
    return ASTNodeKind(KindToKindId<T>::Id);
60
134
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ClassTemplateDecl>()
Line
Count
Source
58
6.13k
  static ASTNodeKind getFromNodeKind() {
59
6.13k
    return ASTNodeKind(KindToKindId<T>::Id);
60
6.13k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ClassTemplatePartialSpecializationDecl>()
Line
Count
Source
58
148
  static ASTNodeKind getFromNodeKind() {
59
148
    return ASTNodeKind(KindToKindId<T>::Id);
60
148
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ComplexType>()
Line
Count
Source
58
187
  static ASTNodeKind getFromNodeKind() {
59
187
    return ASTNodeKind(KindToKindId<T>::Id);
60
187
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CompoundLiteralExpr>()
Line
Count
Source
58
114
  static ASTNodeKind getFromNodeKind() {
59
114
    return ASTNodeKind(KindToKindId<T>::Id);
60
114
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CoawaitExpr>()
Line
Count
Source
58
47
  static ASTNodeKind getFromNodeKind() {
59
47
    return ASTNodeKind(KindToKindId<T>::Id);
60
47
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ConstantArrayType>()
Line
Count
Source
58
326
  static ASTNodeKind getFromNodeKind() {
59
326
    return ASTNodeKind(KindToKindId<T>::Id);
60
326
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ConstantExpr>()
Line
Count
Source
58
80
  static ASTNodeKind getFromNodeKind() {
59
80
    return ASTNodeKind(KindToKindId<T>::Id);
60
80
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ContinueStmt>()
Line
Count
Source
58
82
  static ASTNodeKind getFromNodeKind() {
59
82
    return ASTNodeKind(KindToKindId<T>::Id);
60
82
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CoreturnStmt>()
Line
Count
Source
58
43
  static ASTNodeKind getFromNodeKind() {
59
43
    return ASTNodeKind(KindToKindId<T>::Id);
60
43
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CoyieldExpr>()
Line
Count
Source
58
43
  static ASTNodeKind getFromNodeKind() {
59
43
    return ASTNodeKind(KindToKindId<T>::Id);
60
43
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CUDAKernelCallExpr>()
Line
Count
Source
58
46
  static ASTNodeKind getFromNodeKind() {
59
46
    return ASTNodeKind(KindToKindId<T>::Id);
60
46
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXBindTemporaryExpr>()
Line
Count
Source
58
70
  static ASTNodeKind getFromNodeKind() {
59
70
    return ASTNodeKind(KindToKindId<T>::Id);
60
70
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXConstCastExpr>()
Line
Count
Source
58
40
  static ASTNodeKind getFromNodeKind() {
59
40
    return ASTNodeKind(KindToKindId<T>::Id);
60
40
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXConversionDecl>()
Line
Count
Source
58
153
  static ASTNodeKind getFromNodeKind() {
59
153
    return ASTNodeKind(KindToKindId<T>::Id);
60
153
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXDeductionGuideDecl>()
Line
Count
Source
58
440
  static ASTNodeKind getFromNodeKind() {
59
440
    return ASTNodeKind(KindToKindId<T>::Id);
60
440
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXDefaultArgExpr>()
Line
Count
Source
58
79
  static ASTNodeKind getFromNodeKind() {
59
79
    return ASTNodeKind(KindToKindId<T>::Id);
60
79
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXDestructorDecl>()
Line
Count
Source
58
140
  static ASTNodeKind getFromNodeKind() {
59
140
    return ASTNodeKind(KindToKindId<T>::Id);
60
140
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXDynamicCastExpr>()
Line
Count
Source
58
70
  static ASTNodeKind getFromNodeKind() {
59
70
    return ASTNodeKind(KindToKindId<T>::Id);
60
70
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXFunctionalCastExpr>()
Line
Count
Source
58
166
  static ASTNodeKind getFromNodeKind() {
59
166
    return ASTNodeKind(KindToKindId<T>::Id);
60
166
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXNoexceptExpr>()
Line
Count
Source
58
1.07k
  static ASTNodeKind getFromNodeKind() {
59
1.07k
    return ASTNodeKind(KindToKindId<T>::Id);
60
1.07k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXReinterpretCastExpr>()
Line
Count
Source
58
190
  static ASTNodeKind getFromNodeKind() {
59
190
    return ASTNodeKind(KindToKindId<T>::Id);
60
190
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXStaticCastExpr>()
Line
Count
Source
58
192
  static ASTNodeKind getFromNodeKind() {
59
192
    return ASTNodeKind(KindToKindId<T>::Id);
60
192
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXStdInitializerListExpr>()
Line
Count
Source
58
136
  static ASTNodeKind getFromNodeKind() {
59
136
    return ASTNodeKind(KindToKindId<T>::Id);
60
136
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXTemporaryObjectExpr>()
Line
Count
Source
58
100
  static ASTNodeKind getFromNodeKind() {
59
100
    return ASTNodeKind(KindToKindId<T>::Id);
60
100
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXThrowExpr>()
Line
Count
Source
58
160
  static ASTNodeKind getFromNodeKind() {
59
160
    return ASTNodeKind(KindToKindId<T>::Id);
60
160
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXTryStmt>()
Line
Count
Source
58
70
  static ASTNodeKind getFromNodeKind() {
59
70
    return ASTNodeKind(KindToKindId<T>::Id);
60
70
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::DeclaratorDecl>()
Line
Count
Source
58
203
  static ASTNodeKind getFromNodeKind() {
59
203
    return ASTNodeKind(KindToKindId<T>::Id);
60
203
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::DecltypeType>()
Line
Count
Source
58
111
  static ASTNodeKind getFromNodeKind() {
59
111
    return ASTNodeKind(KindToKindId<T>::Id);
60
111
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::DeducedTemplateSpecializationType>()
Line
Count
Source
58
69
  static ASTNodeKind getFromNodeKind() {
59
69
    return ASTNodeKind(KindToKindId<T>::Id);
60
69
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::DefaultStmt>()
Line
Count
Source
58
43
  static ASTNodeKind getFromNodeKind() {
59
43
    return ASTNodeKind(KindToKindId<T>::Id);
60
43
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::DependentCoawaitExpr>()
Line
Count
Source
58
40
  static ASTNodeKind getFromNodeKind() {
59
40
    return ASTNodeKind(KindToKindId<T>::Id);
60
40
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::DependentSizedArrayType>()
Line
Count
Source
58
112
  static ASTNodeKind getFromNodeKind() {
59
112
    return ASTNodeKind(KindToKindId<T>::Id);
60
112
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::DoStmt>()
Line
Count
Source
58
210
  static ASTNodeKind getFromNodeKind() {
59
210
    return ASTNodeKind(KindToKindId<T>::Id);
60
210
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::UsingType>()
Line
Count
Source
58
92
  static ASTNodeKind getFromNodeKind() {
59
92
    return ASTNodeKind(KindToKindId<T>::Id);
60
92
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::EnumConstantDecl>()
Line
Count
Source
58
197
  static ASTNodeKind getFromNodeKind() {
59
197
    return ASTNodeKind(KindToKindId<T>::Id);
60
197
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::EnumType>()
Line
Count
Source
58
157
  static ASTNodeKind getFromNodeKind() {
59
157
    return ASTNodeKind(KindToKindId<T>::Id);
60
157
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ExprWithCleanups>()
Line
Count
Source
58
116
  static ASTNodeKind getFromNodeKind() {
59
116
    return ASTNodeKind(KindToKindId<T>::Id);
60
116
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::FixedPointLiteral>()
Line
Count
Source
58
64
  static ASTNodeKind getFromNodeKind() {
59
64
    return ASTNodeKind(KindToKindId<T>::Id);
60
64
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::SwitchCase>()
Line
Count
Source
58
244
  static ASTNodeKind getFromNodeKind() {
59
244
    return ASTNodeKind(KindToKindId<T>::Id);
60
244
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::TemplateSpecializationType>()
Line
Count
Source
58
340
  static ASTNodeKind getFromNodeKind() {
59
340
    return ASTNodeKind(KindToKindId<T>::Id);
60
340
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::FunctionProtoType>()
Line
Count
Source
58
516
  static ASTNodeKind getFromNodeKind() {
59
516
    return ASTNodeKind(KindToKindId<T>::Id);
60
516
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::FunctionType>()
Line
Count
Source
58
322
  static ASTNodeKind getFromNodeKind() {
59
322
    return ASTNodeKind(KindToKindId<T>::Id);
60
322
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::GenericSelectionExpr>()
Line
Count
Source
58
488
  static ASTNodeKind getFromNodeKind() {
59
488
    return ASTNodeKind(KindToKindId<T>::Id);
60
488
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::StmtExpr>()
Line
Count
Source
58
138
  static ASTNodeKind getFromNodeKind() {
59
138
    return ASTNodeKind(KindToKindId<T>::Id);
60
138
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::WhileStmt>()
Line
Count
Source
58
224
  static ASTNodeKind getFromNodeKind() {
59
224
    return ASTNodeKind(KindToKindId<T>::Id);
60
224
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::InjectedClassNameType>()
Line
Count
Source
58
67
  static ASTNodeKind getFromNodeKind() {
59
67
    return ASTNodeKind(KindToKindId<T>::Id);
60
67
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::LabelStmt>()
Line
Count
Source
58
125
  static ASTNodeKind getFromNodeKind() {
59
125
    return ASTNodeKind(KindToKindId<T>::Id);
60
125
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::TagType>()
Line
Count
Source
58
61
  static ASTNodeKind getFromNodeKind() {
59
61
    return ASTNodeKind(KindToKindId<T>::Id);
60
61
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::TemplateTypeParmType>()
Line
Count
Source
58
1.05k
  static ASTNodeKind getFromNodeKind() {
59
1.05k
    return ASTNodeKind(KindToKindId<T>::Id);
60
1.05k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::UnresolvedUsingType>()
Line
Count
Source
58
21
  static ASTNodeKind getFromNodeKind() {
59
21
    return ASTNodeKind(KindToKindId<T>::Id);
60
21
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::UnresolvedMemberExpr>()
Line
Count
Source
58
1.52k
  static ASTNodeKind getFromNodeKind() {
59
1.52k
    return ASTNodeKind(KindToKindId<T>::Id);
60
1.52k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::SubstTemplateTypeParmType>()
Line
Count
Source
58
127
  static ASTNodeKind getFromNodeKind() {
59
127
    return ASTNodeKind(KindToKindId<T>::Id);
60
127
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::OpaqueValueExpr>()
Line
Count
Source
58
134
  static ASTNodeKind getFromNodeKind() {
59
134
    return ASTNodeKind(KindToKindId<T>::Id);
60
134
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ObjCPropertyDecl>()
Line
Count
Source
58
69
  static ASTNodeKind getFromNodeKind() {
59
69
    return ASTNodeKind(KindToKindId<T>::Id);
60
69
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ImaginaryLiteral>()
Line
Count
Source
58
52
  static ASTNodeKind getFromNodeKind() {
59
52
    return ASTNodeKind(KindToKindId<T>::Id);
60
52
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ImplicitValueInitExpr>()
Line
Count
Source
58
56
  static ASTNodeKind getFromNodeKind() {
59
56
    return ASTNodeKind(KindToKindId<T>::Id);
60
56
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::IncompleteArrayType>()
Line
Count
Source
58
166
  static ASTNodeKind getFromNodeKind() {
59
166
    return ASTNodeKind(KindToKindId<T>::Id);
60
166
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::IndirectFieldDecl>()
Line
Count
Source
58
56
  static ASTNodeKind getFromNodeKind() {
59
56
    return ASTNodeKind(KindToKindId<T>::Id);
60
56
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ParenType>()
Line
Count
Source
58
232
  static ASTNodeKind getFromNodeKind() {
59
232
    return ASTNodeKind(KindToKindId<T>::Id);
60
232
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::LValueReferenceType>()
Line
Count
Source
58
196
  static ASTNodeKind getFromNodeKind() {
59
196
    return ASTNodeKind(KindToKindId<T>::Id);
60
196
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::LabelDecl>()
Line
Count
Source
58
84
  static ASTNodeKind getFromNodeKind() {
59
84
    return ASTNodeKind(KindToKindId<T>::Id);
60
84
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::LinkageSpecDecl>()
Line
Count
Source
58
100
  static ASTNodeKind getFromNodeKind() {
59
100
    return ASTNodeKind(KindToKindId<T>::Id);
60
100
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::MaterializeTemporaryExpr>()
Line
Count
Source
58
94
  static ASTNodeKind getFromNodeKind() {
59
94
    return ASTNodeKind(KindToKindId<T>::Id);
60
94
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::MemberPointerType>()
Line
Count
Source
58
187
  static ASTNodeKind getFromNodeKind() {
59
187
    return ASTNodeKind(KindToKindId<T>::Id);
60
187
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::NamespaceAliasDecl>()
Line
Count
Source
58
60
  static ASTNodeKind getFromNodeKind() {
59
60
    return ASTNodeKind(KindToKindId<T>::Id);
60
60
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::NonTypeTemplateParmDecl>()
Line
Count
Source
58
124
  static ASTNodeKind getFromNodeKind() {
59
124
    return ASTNodeKind(KindToKindId<T>::Id);
60
124
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::NullStmt>()
Line
Count
Source
58
208
  static ASTNodeKind getFromNodeKind() {
59
208
    return ASTNodeKind(KindToKindId<T>::Id);
60
208
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ObjCAtCatchStmt>()
Line
Count
Source
58
43
  static ASTNodeKind getFromNodeKind() {
59
43
    return ASTNodeKind(KindToKindId<T>::Id);
60
43
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ObjCCategoryDecl>()
Line
Count
Source
58
203
  static ASTNodeKind getFromNodeKind() {
59
203
    return ASTNodeKind(KindToKindId<T>::Id);
60
203
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ObjCCategoryImplDecl>()
Line
Count
Source
58
42
  static ASTNodeKind getFromNodeKind() {
59
42
    return ASTNodeKind(KindToKindId<T>::Id);
60
42
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ObjCAtFinallyStmt>()
Line
Count
Source
58
43
  static ASTNodeKind getFromNodeKind() {
59
43
    return ASTNodeKind(KindToKindId<T>::Id);
60
43
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ObjCImplementationDecl>()
Line
Count
Source
58
42
  static ASTNodeKind getFromNodeKind() {
59
42
    return ASTNodeKind(KindToKindId<T>::Id);
60
42
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ObjCIvarDecl>()
Line
Count
Source
58
42
  static ASTNodeKind getFromNodeKind() {
59
42
    return ASTNodeKind(KindToKindId<T>::Id);
60
42
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ObjCProtocolDecl>()
Line
Count
Source
58
42
  static ASTNodeKind getFromNodeKind() {
59
42
    return ASTNodeKind(KindToKindId<T>::Id);
60
42
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ObjCStringLiteral>()
Line
Count
Source
58
43
  static ASTNodeKind getFromNodeKind() {
59
43
    return ASTNodeKind(KindToKindId<T>::Id);
60
43
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ObjCAtThrowStmt>()
Line
Count
Source
58
43
  static ASTNodeKind getFromNodeKind() {
59
43
    return ASTNodeKind(KindToKindId<T>::Id);
60
43
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ObjCAtTryStmt>()
Line
Count
Source
58
43
  static ASTNodeKind getFromNodeKind() {
59
43
    return ASTNodeKind(KindToKindId<T>::Id);
60
43
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ParenExpr>()
Line
Count
Source
58
216
  static ASTNodeKind getFromNodeKind() {
59
216
    return ASTNodeKind(KindToKindId<T>::Id);
60
216
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::ParenListExpr>()
Line
Count
Source
58
414
  static ASTNodeKind getFromNodeKind() {
59
414
    return ASTNodeKind(KindToKindId<T>::Id);
60
414
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::PredefinedExpr>()
Line
Count
Source
58
202
  static ASTNodeKind getFromNodeKind() {
59
202
    return ASTNodeKind(KindToKindId<T>::Id);
60
202
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::RValueReferenceType>()
Line
Count
Source
58
196
  static ASTNodeKind getFromNodeKind() {
59
196
    return ASTNodeKind(KindToKindId<T>::Id);
60
196
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::StaticAssertDecl>()
Line
Count
Source
58
110
  static ASTNodeKind getFromNodeKind() {
59
110
    return ASTNodeKind(KindToKindId<T>::Id);
60
110
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::SubstNonTypeTemplateParmExpr>()
Line
Count
Source
58
102
  static ASTNodeKind getFromNodeKind() {
59
102
    return ASTNodeKind(KindToKindId<T>::Id);
60
102
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::TemplateTemplateParmDecl>()
Line
Count
Source
58
122
  static ASTNodeKind getFromNodeKind() {
59
122
    return ASTNodeKind(KindToKindId<T>::Id);
60
122
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::TemplateTypeParmDecl>()
Line
Count
Source
58
1.18k
  static ASTNodeKind getFromNodeKind() {
59
1.18k
    return ASTNodeKind(KindToKindId<T>::Id);
60
1.18k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::TypeAliasDecl>()
Line
Count
Source
58
132
  static ASTNodeKind getFromNodeKind() {
59
132
    return ASTNodeKind(KindToKindId<T>::Id);
60
132
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::TypeAliasTemplateDecl>()
Line
Count
Source
58
107
  static ASTNodeKind getFromNodeKind() {
59
107
    return ASTNodeKind(KindToKindId<T>::Id);
60
107
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::UnaryTransformType>()
Line
Count
Source
58
43
  static ASTNodeKind getFromNodeKind() {
59
43
    return ASTNodeKind(KindToKindId<T>::Id);
60
43
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::UnresolvedLookupExpr>()
Line
Count
Source
58
1.07k
  static ASTNodeKind getFromNodeKind() {
59
1.07k
    return ASTNodeKind(KindToKindId<T>::Id);
60
1.07k
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::UnresolvedUsingTypenameDecl>()
Line
Count
Source
58
42
  static ASTNodeKind getFromNodeKind() {
59
42
    return ASTNodeKind(KindToKindId<T>::Id);
60
42
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::UnresolvedUsingValueDecl>()
Line
Count
Source
58
45
  static ASTNodeKind getFromNodeKind() {
59
45
    return ASTNodeKind(KindToKindId<T>::Id);
60
45
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::UserDefinedLiteral>()
Line
Count
Source
58
64
  static ASTNodeKind getFromNodeKind() {
59
64
    return ASTNodeKind(KindToKindId<T>::Id);
60
64
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::UsingDecl>()
Line
Count
Source
58
334
  static ASTNodeKind getFromNodeKind() {
59
334
    return ASTNodeKind(KindToKindId<T>::Id);
60
334
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::UsingEnumDecl>()
Line
Count
Source
58
58
  static ASTNodeKind getFromNodeKind() {
59
58
    return ASTNodeKind(KindToKindId<T>::Id);
60
58
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::UsingDirectiveDecl>()
Line
Count
Source
58
103
  static ASTNodeKind getFromNodeKind() {
59
103
    return ASTNodeKind(KindToKindId<T>::Id);
60
103
  }
clang::ASTNodeKind clang::ASTNodeKind::getFromNodeKind<clang::CXXTypeidExpr>()
Line
Count
Source
58
1.37k
  static ASTNodeKind getFromNodeKind() {
59
1.37k
    return ASTNodeKind(KindToKindId<T>::Id);
60
1.37k
  }
61
62
  /// \{
63
  /// Construct an identifier for the dynamic type of the node
64
  static ASTNodeKind getFromNode(const Decl &D);
65
  static ASTNodeKind getFromNode(const Stmt &S);
66
  static ASTNodeKind getFromNode(const Type &T);
67
  static ASTNodeKind getFromNode(const TypeLoc &T);
68
  static ASTNodeKind getFromNode(const LambdaCapture &L);
69
  static ASTNodeKind getFromNode(const OMPClause &C);
70
  static ASTNodeKind getFromNode(const Attr &A);
71
  /// \}
72
73
  /// Returns \c true if \c this and \c Other represent the same kind.
74
17.4M
  bool isSame(ASTNodeKind Other) const {
75
17.4M
    return KindId != NKI_None && 
KindId == Other.KindId17.4M
;
76
17.4M
  }
77
78
  /// Returns \c true only for the default \c ASTNodeKind()
79
650
  bool isNone() const { return KindId == NKI_None; }
80
81
  /// Returns \c true if \c this is a base kind of (or same as) \c Other.
82
  /// \param Distance If non-null, used to return the distance between \c this
83
  /// and \c Other in the class hierarchy.
84
  bool isBaseOf(ASTNodeKind Other, unsigned *Distance = nullptr) const;
85
86
  /// String representation of the kind.
87
  StringRef asStringRef() const;
88
89
  /// Strict weak ordering for ASTNodeKind.
90
691k
  bool operator<(const ASTNodeKind &Other) const {
91
691k
    return KindId < Other.KindId;
92
691k
  }
93
94
  /// Return the most derived type between \p Kind1 and \p Kind2.
95
  ///
96
  /// Return ASTNodeKind() if they are not related.
97
  static ASTNodeKind getMostDerivedType(ASTNodeKind Kind1, ASTNodeKind Kind2);
98
99
  /// Return the most derived common ancestor between Kind1 and Kind2.
100
  ///
101
  /// Return ASTNodeKind() if they are not related.
102
  static ASTNodeKind getMostDerivedCommonAncestor(ASTNodeKind Kind1,
103
                                                  ASTNodeKind Kind2);
104
105
  ASTNodeKind getCladeKind() const;
106
107
  /// Hooks for using ASTNodeKind as a key in a DenseMap.
108
  struct DenseMapInfo {
109
    // ASTNodeKind() is a good empty key because it is represented as a 0.
110
22.0M
    static inline ASTNodeKind getEmptyKey() { return ASTNodeKind(); }
111
    // NKI_NumberOfKinds is not a valid value, so it is good for a
112
    // tombstone key.
113
21.0M
    static inline ASTNodeKind getTombstoneKey() {
114
21.0M
      return ASTNodeKind(NKI_NumberOfKinds);
115
21.0M
    }
116
1.10M
    static unsigned getHashValue(const ASTNodeKind &Val) { return Val.KindId; }
117
44.1M
    static bool isEqual(const ASTNodeKind &LHS, const ASTNodeKind &RHS) {
118
44.1M
      return LHS.KindId == RHS.KindId;
119
44.1M
    }
120
  };
121
122
  /// Check if the given ASTNodeKind identifies a type that offers pointer
123
  /// identity. This is useful for the fast path in DynTypedNode.
124
1.44M
  bool hasPointerIdentity() const {
125
1.44M
    return KindId > NKI_LastKindWithoutPointerIdentity;
126
1.44M
  }
127
128
private:
129
  /// Kind ids.
130
  ///
131
  /// Includes all possible base and derived kinds.
132
  enum NodeKindId {
133
    NKI_None,
134
    NKI_TemplateArgument,
135
    NKI_TemplateArgumentLoc,
136
    NKI_LambdaCapture,
137
    NKI_TemplateName,
138
    NKI_NestedNameSpecifierLoc,
139
    NKI_QualType,
140
#define TYPELOC(CLASS, PARENT) NKI_##CLASS##TypeLoc,
141
#include "clang/AST/TypeLocNodes.def"
142
    NKI_TypeLoc,
143
    NKI_LastKindWithoutPointerIdentity = NKI_TypeLoc,
144
    NKI_CXXBaseSpecifier,
145
    NKI_CXXCtorInitializer,
146
    NKI_NestedNameSpecifier,
147
    NKI_Decl,
148
#define DECL(DERIVED, BASE) NKI_##DERIVED##Decl,
149
#include "clang/AST/DeclNodes.inc"
150
    NKI_Stmt,
151
#define STMT(DERIVED, BASE) NKI_##DERIVED,
152
#include "clang/AST/StmtNodes.inc"
153
    NKI_Type,
154
#define TYPE(DERIVED, BASE) NKI_##DERIVED##Type,
155
#include "clang/AST/TypeNodes.inc"
156
    NKI_OMPClause,
157
#define GEN_CLANG_CLAUSE_CLASS
158
#define CLAUSE_CLASS(Enum, Str, Class) NKI_##Class,
159
#include "llvm/Frontend/OpenMP/OMP.inc"
160
    NKI_Attr,
161
#define ATTR(A) NKI_##A##Attr,
162
#include "clang/Basic/AttrList.inc"
163
    NKI_ObjCProtocolLoc,
164
    NKI_NumberOfKinds
165
  };
166
167
  /// Use getFromNodeKind<T>() to construct the kind.
168
40.5M
  ASTNodeKind(NodeKindId KindId) : KindId(KindId) {}
169
170
  /// Returns \c true if \c Base is a base kind of (or same as) \c
171
  ///   Derived.
172
  /// \param Distance If non-null, used to return the distance between \c Base
173
  /// and \c Derived in the class hierarchy.
174
  static bool isBaseOf(NodeKindId Base, NodeKindId Derived, unsigned *Distance);
175
176
  /// Helper meta-function to convert a kind T to its enum value.
177
  ///
178
  /// This struct is specialized below for all known kinds.
179
  template <class T> struct KindToKindId {
180
    static const NodeKindId Id = NKI_None;
181
  };
182
  template <class T>
183
  struct KindToKindId<const T> : KindToKindId<T> {};
184
185
  /// Per kind info.
186
  struct KindInfo {
187
    /// The id of the parent kind, or None if it has no parent.
188
    NodeKindId ParentId;
189
    /// Name of the kind.
190
    const char *Name;
191
  };
192
  static const KindInfo AllKindInfo[NKI_NumberOfKinds];
193
194
  NodeKindId KindId;
195
};
196
197
#define KIND_TO_KIND_ID(Class)                                                 \
198
  template <> struct ASTNodeKind::KindToKindId<Class> {                        \
199
    static const NodeKindId Id = NKI_##Class;                                  \
200
  };
201
KIND_TO_KIND_ID(CXXCtorInitializer)
202
KIND_TO_KIND_ID(TemplateArgument)
203
KIND_TO_KIND_ID(TemplateArgumentLoc)
204
KIND_TO_KIND_ID(LambdaCapture)
205
KIND_TO_KIND_ID(TemplateName)
206
KIND_TO_KIND_ID(NestedNameSpecifier)
207
KIND_TO_KIND_ID(NestedNameSpecifierLoc)
208
KIND_TO_KIND_ID(QualType)
209
#define TYPELOC(CLASS, PARENT) KIND_TO_KIND_ID(CLASS##TypeLoc)
210
#include "clang/AST/TypeLocNodes.def"
211
KIND_TO_KIND_ID(TypeLoc)
212
KIND_TO_KIND_ID(Decl)
213
KIND_TO_KIND_ID(Stmt)
214
KIND_TO_KIND_ID(Type)
215
KIND_TO_KIND_ID(OMPClause)
216
KIND_TO_KIND_ID(Attr)
217
KIND_TO_KIND_ID(ObjCProtocolLoc)
218
KIND_TO_KIND_ID(CXXBaseSpecifier)
219
#define DECL(DERIVED, BASE) KIND_TO_KIND_ID(DERIVED##Decl)
220
#include "clang/AST/DeclNodes.inc"
221
#define STMT(DERIVED, BASE) KIND_TO_KIND_ID(DERIVED)
222
#include "clang/AST/StmtNodes.inc"
223
#define TYPE(DERIVED, BASE) KIND_TO_KIND_ID(DERIVED##Type)
224
#include "clang/AST/TypeNodes.inc"
225
#define GEN_CLANG_CLAUSE_CLASS
226
#define CLAUSE_CLASS(Enum, Str, Class) KIND_TO_KIND_ID(Class)
227
#include "llvm/Frontend/OpenMP/OMP.inc"
228
#define ATTR(A) KIND_TO_KIND_ID(A##Attr)
229
#include "clang/Basic/AttrList.inc"
230
#undef KIND_TO_KIND_ID
231
232
2.10k
inline raw_ostream &operator<<(raw_ostream &OS, ASTNodeKind K) {
233
2.10k
  OS << K.asStringRef();
234
2.10k
  return OS;
235
2.10k
}
236
237
/// A dynamically typed AST node container.
238
///
239
/// Stores an AST node in a type safe way. This allows writing code that
240
/// works with different kinds of AST nodes, despite the fact that they don't
241
/// have a common base class.
242
///
243
/// Use \c create(Node) to create a \c DynTypedNode from an AST node,
244
/// and \c get<T>() to retrieve the node as type T if the types match.
245
///
246
/// See \c ASTNodeKind for which node base types are currently supported;
247
/// You can create DynTypedNodes for all nodes in the inheritance hierarchy of
248
/// the supported base types.
249
class DynTypedNode {
250
public:
251
  /// Creates a \c DynTypedNode from \c Node.
252
  template <typename T>
253
4.21M
  static DynTypedNode create(const T &Node) {
254
4.21M
    return BaseConverter<T>::create(Node);
255
4.21M
  }
clang::DynTypedNode clang::DynTypedNode::create<clang::Decl>(clang::Decl const&)
Line
Count
Source
253
1.04M
  static DynTypedNode create(const T &Node) {
254
1.04M
    return BaseConverter<T>::create(Node);
255
1.04M
  }
clang::DynTypedNode clang::DynTypedNode::create<clang::Stmt>(clang::Stmt const&)
Line
Count
Source
253
639k
  static DynTypedNode create(const T &Node) {
254
639k
    return BaseConverter<T>::create(Node);
255
639k
  }
clang::DynTypedNode clang::DynTypedNode::create<clang::CXXRewrittenBinaryOperator>(clang::CXXRewrittenBinaryOperator const&)
Line
Count
Source
253
52
  static DynTypedNode create(const T &Node) {
254
52
    return BaseConverter<T>::create(Node);
255
52
  }
clang::DynTypedNode clang::DynTypedNode::create<clang::Expr>(clang::Expr const&)
Line
Count
Source
253
640k
  static DynTypedNode create(const T &Node) {
254
640k
    return BaseConverter<T>::create(Node);
255
640k
  }
clang::DynTypedNode clang::DynTypedNode::create<clang::ObjCProtocolLoc>(clang::ObjCProtocolLoc const&)
Line
Count
Source
253
12
  static DynTypedNode create(const T &Node) {
254
12
    return BaseConverter<T>::create(Node);
255
12
  }
clang::DynTypedNode clang::DynTypedNode::create<clang::TypeLoc>(clang::TypeLoc const&)
Line
Count
Source
253
1.26M
  static DynTypedNode create(const T &Node) {
254
1.26M
    return BaseConverter<T>::create(Node);
255
1.26M
  }
clang::DynTypedNode clang::DynTypedNode::create<clang::NestedNameSpecifierLoc>(clang::NestedNameSpecifierLoc const&)
Line
Count
Source
253
457k
  static DynTypedNode create(const T &Node) {
254
457k
    return BaseConverter<T>::create(Node);
255
457k
  }
clang::DynTypedNode clang::DynTypedNode::create<clang::Attr>(clang::Attr const&)
Line
Count
Source
253
2.42k
  static DynTypedNode create(const T &Node) {
254
2.42k
    return BaseConverter<T>::create(Node);
255
2.42k
  }
clang::DynTypedNode clang::DynTypedNode::create<clang::TranslationUnitDecl>(clang::TranslationUnitDecl const&)
Line
Count
Source
253
468
  static DynTypedNode create(const T &Node) {
254
468
    return BaseConverter<T>::create(Node);
255
468
  }
clang::DynTypedNode clang::DynTypedNode::create<clang::EnumConstantDecl>(clang::EnumConstantDecl const&)
Line
Count
Source
253
15
  static DynTypedNode create(const T &Node) {
254
15
    return BaseConverter<T>::create(Node);
255
15
  }
clang::DynTypedNode clang::DynTypedNode::create<clang::DeclRefExpr>(clang::DeclRefExpr const&)
Line
Count
Source
253
81
  static DynTypedNode create(const T &Node) {
254
81
    return BaseConverter<T>::create(Node);
255
81
  }
clang::DynTypedNode clang::DynTypedNode::create<clang::CXXMethodDecl>(clang::CXXMethodDecl const&)
Line
Count
Source
253
656
  static DynTypedNode create(const T &Node) {
254
656
    return BaseConverter<T>::create(Node);
255
656
  }
clang::DynTypedNode clang::DynTypedNode::create<clang::CompoundStmt>(clang::CompoundStmt const&)
Line
Count
Source
253
540
  static DynTypedNode create(const T &Node) {
254
540
    return BaseConverter<T>::create(Node);
255
540
  }
clang::DynTypedNode clang::DynTypedNode::create<clang::UnaryOperator>(clang::UnaryOperator const&)
Line
Count
Source
253
34
  static DynTypedNode create(const T &Node) {
254
34
    return BaseConverter<T>::create(Node);
255
34
  }
clang::DynTypedNode clang::DynTypedNode::create<clang::ExplicitCastExpr>(clang::ExplicitCastExpr const&)
Line
Count
Source
253
110
  static DynTypedNode create(const T &Node) {
254
110
    return BaseConverter<T>::create(Node);
255
110
  }
clang::DynTypedNode clang::DynTypedNode::create<clang::ObjCAutoreleasePoolStmt>(clang::ObjCAutoreleasePoolStmt const&)
Line
Count
Source
253
25
  static DynTypedNode create(const T &Node) {
254
25
    return BaseConverter<T>::create(Node);
255
25
  }
clang::DynTypedNode clang::DynTypedNode::create<clang::ObjCMethodDecl>(clang::ObjCMethodDecl const&)
Line
Count
Source
253
18
  static DynTypedNode create(const T &Node) {
254
18
    return BaseConverter<T>::create(Node);
255
18
  }
clang::DynTypedNode clang::DynTypedNode::create<clang::BlockDecl>(clang::BlockDecl const&)
Line
Count
Source
253
1
  static DynTypedNode create(const T &Node) {
254
1
    return BaseConverter<T>::create(Node);
255
1
  }
clang::DynTypedNode clang::DynTypedNode::create<clang::ObjCMessageExpr>(clang::ObjCMessageExpr const&)
Line
Count
Source
253
35
  static DynTypedNode create(const T &Node) {
254
35
    return BaseConverter<T>::create(Node);
255
35
  }
clang::DynTypedNode clang::DynTypedNode::create<clang::InitListExpr>(clang::InitListExpr const&)
Line
Count
Source
253
156
  static DynTypedNode create(const T &Node) {
254
156
    return BaseConverter<T>::create(Node);
255
156
  }
clang::DynTypedNode clang::DynTypedNode::create<clang::ObjCInterfaceDecl>(clang::ObjCInterfaceDecl const&)
Line
Count
Source
253
2.35k
  static DynTypedNode create(const T &Node) {
254
2.35k
    return BaseConverter<T>::create(Node);
255
2.35k
  }
clang::DynTypedNode clang::DynTypedNode::create<clang::TemplateArgumentLoc>(clang::TemplateArgumentLoc const&)
Line
Count
Source
253
831
  static DynTypedNode create(const T &Node) {
254
831
    return BaseConverter<T>::create(Node);
255
831
  }
clang::DynTypedNode clang::DynTypedNode::create<clang::ClassTemplateDecl>(clang::ClassTemplateDecl const&)
Line
Count
Source
253
144
  static DynTypedNode create(const T &Node) {
254
144
    return BaseConverter<T>::create(Node);
255
144
  }
clang::DynTypedNode clang::DynTypedNode::create<clang::QualType>(clang::QualType const&)
Line
Count
Source
253
63.1k
  static DynTypedNode create(const T &Node) {
254
63.1k
    return BaseConverter<T>::create(Node);
255
63.1k
  }
clang::DynTypedNode clang::DynTypedNode::create<clang::TemplateName>(clang::TemplateName const&)
Line
Count
Source
253
2
  static DynTypedNode create(const T &Node) {
254
2
    return BaseConverter<T>::create(Node);
255
2
  }
clang::DynTypedNode clang::DynTypedNode::create<clang::VarDecl>(clang::VarDecl const&)
Line
Count
Source
253
1.19k
  static DynTypedNode create(const T &Node) {
254
1.19k
    return BaseConverter<T>::create(Node);
255
1.19k
  }
clang::DynTypedNode clang::DynTypedNode::create<clang::CXXBaseSpecifier>(clang::CXXBaseSpecifier const&)
Line
Count
Source
253
572
  static DynTypedNode create(const T &Node) {
254
572
    return BaseConverter<T>::create(Node);
255
572
  }
clang::DynTypedNode clang::DynTypedNode::create<clang::NamedDecl>(clang::NamedDecl const&)
Line
Count
Source
253
6.36k
  static DynTypedNode create(const T &Node) {
254
6.36k
    return BaseConverter<T>::create(Node);
255
6.36k
  }
clang::DynTypedNode clang::DynTypedNode::create<clang::Type>(clang::Type const&)
Line
Count
Source
253
57.6k
  static DynTypedNode create(const T &Node) {
254
57.6k
    return BaseConverter<T>::create(Node);
255
57.6k
  }
clang::DynTypedNode clang::DynTypedNode::create<clang::CXXMemberCallExpr>(clang::CXXMemberCallExpr const&)
Line
Count
Source
253
188
  static DynTypedNode create(const T &Node) {
254
188
    return BaseConverter<T>::create(Node);
255
188
  }
clang::DynTypedNode clang::DynTypedNode::create<clang::LambdaCapture>(clang::LambdaCapture const&)
Line
Count
Source
253
298
  static DynTypedNode create(const T &Node) {
254
298
    return BaseConverter<T>::create(Node);
255
298
  }
clang::DynTypedNode clang::DynTypedNode::create<clang::FieldDecl>(clang::FieldDecl const&)
Line
Count
Source
253
225
  static DynTypedNode create(const T &Node) {
254
225
    return BaseConverter<T>::create(Node);
255
225
  }
clang::DynTypedNode clang::DynTypedNode::create<clang::DeclStmt>(clang::DeclStmt const&)
Line
Count
Source
253
169
  static DynTypedNode create(const T &Node) {
254
169
    return BaseConverter<T>::create(Node);
255
169
  }
clang::DynTypedNode clang::DynTypedNode::create<clang::CXXRecordDecl>(clang::CXXRecordDecl const&)
Line
Count
Source
253
8.57k
  static DynTypedNode create(const T &Node) {
254
8.57k
    return BaseConverter<T>::create(Node);
255
8.57k
  }
clang::DynTypedNode clang::DynTypedNode::create<clang::ValueDecl>(clang::ValueDecl const&)
Line
Count
Source
253
75
  static DynTypedNode create(const T &Node) {
254
75
    return BaseConverter<T>::create(Node);
255
75
  }
clang::DynTypedNode clang::DynTypedNode::create<clang::UsingShadowDecl>(clang::UsingShadowDecl const&)
Line
Count
Source
253
2.10k
  static DynTypedNode create(const T &Node) {
254
2.10k
    return BaseConverter<T>::create(Node);
255
2.10k
  }
clang::DynTypedNode clang::DynTypedNode::create<clang::NestedNameSpecifier>(clang::NestedNameSpecifier const&)
Line
Count
Source
253
1.33k
  static DynTypedNode create(const T &Node) {
254
1.33k
    return BaseConverter<T>::create(Node);
255
1.33k
  }
clang::DynTypedNode clang::DynTypedNode::create<clang::NamespaceDecl>(clang::NamespaceDecl const&)
Line
Count
Source
253
85
  static DynTypedNode create(const T &Node) {
254
85
    return BaseConverter<T>::create(Node);
255
85
  }
clang::DynTypedNode clang::DynTypedNode::create<clang::SwitchCase>(clang::SwitchCase const&)
Line
Count
Source
253
23
  static DynTypedNode create(const T &Node) {
254
23
    return BaseConverter<T>::create(Node);
255
23
  }
clang::DynTypedNode clang::DynTypedNode::create<clang::CXXCtorInitializer>(clang::CXXCtorInitializer const&)
Line
Count
Source
253
357
  static DynTypedNode create(const T &Node) {
254
357
    return BaseConverter<T>::create(Node);
255
357
  }
clang::DynTypedNode clang::DynTypedNode::create<clang::BindingDecl>(clang::BindingDecl const&)
Line
Count
Source
253
14
  static DynTypedNode create(const T &Node) {
254
14
    return BaseConverter<T>::create(Node);
255
14
  }
clang::DynTypedNode clang::DynTypedNode::create<clang::FunctionDecl>(clang::FunctionDecl const&)
Line
Count
Source
253
2.27k
  static DynTypedNode create(const T &Node) {
254
2.27k
    return BaseConverter<T>::create(Node);
255
2.27k
  }
clang::DynTypedNode clang::DynTypedNode::create<clang::OMPClause>(clang::OMPClause const&)
Line
Count
Source
253
420
  static DynTypedNode create(const T &Node) {
254
420
    return BaseConverter<T>::create(Node);
255
420
  }
clang::DynTypedNode clang::DynTypedNode::create<clang::ParmVarDecl>(clang::ParmVarDecl const&)
Line
Count
Source
253
699
  static DynTypedNode create(const T &Node) {
254
699
    return BaseConverter<T>::create(Node);
255
699
  }
clang::DynTypedNode clang::DynTypedNode::create<clang::IntegerLiteral>(clang::IntegerLiteral const&)
Line
Count
Source
253
170
  static DynTypedNode create(const T &Node) {
254
170
    return BaseConverter<T>::create(Node);
255
170
  }
clang::DynTypedNode clang::DynTypedNode::create<clang::TemplateArgument>(clang::TemplateArgument const&)
Line
Count
Source
253
4.19k
  static DynTypedNode create(const T &Node) {
254
4.19k
    return BaseConverter<T>::create(Node);
255
4.19k
  }
clang::DynTypedNode clang::DynTypedNode::create<clang::CastExpr>(clang::CastExpr const&)
Line
Count
Source
253
42
  static DynTypedNode create(const T &Node) {
254
42
    return BaseConverter<T>::create(Node);
255
42
  }
clang::DynTypedNode clang::DynTypedNode::create<clang::ParenListExpr>(clang::ParenListExpr const&)
Line
Count
Source
253
30
  static DynTypedNode create(const T &Node) {
254
30
    return BaseConverter<T>::create(Node);
255
30
  }
256
257
  /// Retrieve the stored node as type \c T.
258
  ///
259
  /// Returns NULL if the stored node does not have a type that is
260
  /// convertible to \c T.
261
  ///
262
  /// For types that have identity via their pointer in the AST
263
  /// (like \c Stmt, \c Decl, \c Type and \c NestedNameSpecifier) the returned
264
  /// pointer points to the referenced AST node.
265
  /// For other types (like \c QualType) the value is stored directly
266
  /// in the \c DynTypedNode, and the returned pointer points at
267
  /// the storage inside DynTypedNode. For those nodes, do not
268
  /// use the pointer outside the scope of the DynTypedNode.
269
3.56M
  template <typename T> const T *get() const {
270
3.56M
    return BaseConverter<T>::get(NodeKind, &Storage);
271
3.56M
  }
clang::Stmt const* clang::DynTypedNode::get<clang::Stmt>() const
Line
Count
Source
269
794k
  template <typename T> const T *get() const {
270
794k
    return BaseConverter<T>::get(NodeKind, &Storage);
271
794k
  }
clang::TemplateArgument const* clang::DynTypedNode::get<clang::TemplateArgument>() const
Line
Count
Source
269
33
  template <typename T> const T *get() const {
270
33
    return BaseConverter<T>::get(NodeKind, &Storage);
271
33
  }
clang::TemplateArgumentLoc const* clang::DynTypedNode::get<clang::TemplateArgumentLoc>() const
Line
Count
Source
269
29
  template <typename T> const T *get() const {
270
29
    return BaseConverter<T>::get(NodeKind, &Storage);
271
29
  }
clang::TemplateName const* clang::DynTypedNode::get<clang::TemplateName>() const
Line
Count
Source
269
8
  template <typename T> const T *get() const {
270
8
    return BaseConverter<T>::get(NodeKind, &Storage);
271
8
  }
clang::NestedNameSpecifier const* clang::DynTypedNode::get<clang::NestedNameSpecifier>() const
Line
Count
Source
269
445
  template <typename T> const T *get() const {
270
445
    return BaseConverter<T>::get(NodeKind, &Storage);
271
445
  }
clang::NestedNameSpecifierLoc const* clang::DynTypedNode::get<clang::NestedNameSpecifierLoc>() const
Line
Count
Source
269
5.63k
  template <typename T> const T *get() const {
270
5.63k
    return BaseConverter<T>::get(NodeKind, &Storage);
271
5.63k
  }
clang::QualType const* clang::DynTypedNode::get<clang::QualType>() const
Line
Count
Source
269
299
  template <typename T> const T *get() const {
270
299
    return BaseConverter<T>::get(NodeKind, &Storage);
271
299
  }
clang::TypeLoc const* clang::DynTypedNode::get<clang::TypeLoc>() const
Line
Count
Source
269
5.55k
  template <typename T> const T *get() const {
270
5.55k
    return BaseConverter<T>::get(NodeKind, &Storage);
271
5.55k
  }
clang::Type const* clang::DynTypedNode::get<clang::Type>() const
Line
Count
Source
269
79
  template <typename T> const T *get() const {
270
79
    return BaseConverter<T>::get(NodeKind, &Storage);
271
79
  }
clang::Attr const* clang::DynTypedNode::get<clang::Attr>() const
Line
Count
Source
269
13
  template <typename T> const T *get() const {
270
13
    return BaseConverter<T>::get(NodeKind, &Storage);
271
13
  }
Unexecuted instantiation: clang::ObjCProtocolLoc const* clang::DynTypedNode::get<clang::ObjCProtocolLoc>() const
clang::CXXCtorInitializer const* clang::DynTypedNode::get<clang::CXXCtorInitializer>() const
Line
Count
Source
269
368
  template <typename T> const T *get() const {
270
368
    return BaseConverter<T>::get(NodeKind, &Storage);
271
368
  }
clang::OMPClause const* clang::DynTypedNode::get<clang::OMPClause>() const
Line
Count
Source
269
2
  template <typename T> const T *get() const {
270
2
    return BaseConverter<T>::get(NodeKind, &Storage);
271
2
  }
clang::CXXBaseSpecifier const* clang::DynTypedNode::get<clang::CXXBaseSpecifier>() const
Line
Count
Source
269
1
  template <typename T> const T *get() const {
270
1
    return BaseConverter<T>::get(NodeKind, &Storage);
271
1
  }
clang::DeclStmt const* clang::DynTypedNode::get<clang::DeclStmt>() const
Line
Count
Source
269
4.00k
  template <typename T> const T *get() const {
270
4.00k
    return BaseConverter<T>::get(NodeKind, &Storage);
271
4.00k
  }
clang::CXXForRangeStmt const* clang::DynTypedNode::get<clang::CXXForRangeStmt>() const
Line
Count
Source
269
84
  template <typename T> const T *get() const {
270
84
    return BaseConverter<T>::get(NodeKind, &Storage);
271
84
  }
clang::VarDecl const* clang::DynTypedNode::get<clang::VarDecl>() const
Line
Count
Source
269
5.17k
  template <typename T> const T *get() const {
270
5.17k
    return BaseConverter<T>::get(NodeKind, &Storage);
271
5.17k
  }
clang::CXXMethodDecl const* clang::DynTypedNode::get<clang::CXXMethodDecl>() const
Line
Count
Source
269
3.92k
  template <typename T> const T *get() const {
270
3.92k
    return BaseConverter<T>::get(NodeKind, &Storage);
271
3.92k
  }
clang::CXXRecordDecl const* clang::DynTypedNode::get<clang::CXXRecordDecl>() const
Line
Count
Source
269
942
  template <typename T> const T *get() const {
270
942
    return BaseConverter<T>::get(NodeKind, &Storage);
271
942
  }
clang::LambdaExpr const* clang::DynTypedNode::get<clang::LambdaExpr>() const
Line
Count
Source
269
2.37k
  template <typename T> const T *get() const {
270
2.37k
    return BaseConverter<T>::get(NodeKind, &Storage);
271
2.37k
  }
clang::FunctionTemplateDecl const* clang::DynTypedNode::get<clang::FunctionTemplateDecl>() const
Line
Count
Source
269
4.28k
  template <typename T> const T *get() const {
270
4.28k
    return BaseConverter<T>::get(NodeKind, &Storage);
271
4.28k
  }
clang::Expr const* clang::DynTypedNode::get<clang::Expr>() const
Line
Count
Source
269
1.42M
  template <typename T> const T *get() const {
270
1.42M
    return BaseConverter<T>::get(NodeKind, &Storage);
271
1.42M
  }
clang::Decl const* clang::DynTypedNode::get<clang::Decl>() const
Line
Count
Source
269
1.30M
  template <typename T> const T *get() const {
270
1.30M
    return BaseConverter<T>::get(NodeKind, &Storage);
271
1.30M
  }
clang::CompoundStmt const* clang::DynTypedNode::get<clang::CompoundStmt>() const
Line
Count
Source
269
104
  template <typename T> const T *get() const {
270
104
    return BaseConverter<T>::get(NodeKind, &Storage);
271
104
  }
clang::CXXDeleteExpr const* clang::DynTypedNode::get<clang::CXXDeleteExpr>() const
Line
Count
Source
269
3
  template <typename T> const T *get() const {
270
3
    return BaseConverter<T>::get(NodeKind, &Storage);
271
3
  }
clang::CallExpr const* clang::DynTypedNode::get<clang::CallExpr>() const
Line
Count
Source
269
202
  template <typename T> const T *get() const {
270
202
    return BaseConverter<T>::get(NodeKind, &Storage);
271
202
  }
clang::ParmVarDecl const* clang::DynTypedNode::get<clang::ParmVarDecl>() const
Line
Count
Source
269
94
  template <typename T> const T *get() const {
270
94
    return BaseConverter<T>::get(NodeKind, &Storage);
271
94
  }
clang::ObjCAutoreleasePoolStmt const* clang::DynTypedNode::get<clang::ObjCAutoreleasePoolStmt>() const
Line
Count
Source
269
17
  template <typename T> const T *get() const {
270
17
    return BaseConverter<T>::get(NodeKind, &Storage);
271
17
  }
clang::CastExpr const* clang::DynTypedNode::get<clang::CastExpr>() const
Line
Count
Source
269
2
  template <typename T> const T *get() const {
270
2
    return BaseConverter<T>::get(NodeKind, &Storage);
271
2
  }
clang::ObjCMessageExpr const* clang::DynTypedNode::get<clang::ObjCMessageExpr>() const
Line
Count
Source
269
18
  template <typename T> const T *get() const {
270
18
    return BaseConverter<T>::get(NodeKind, &Storage);
271
18
  }
clang::MemberExpr const* clang::DynTypedNode::get<clang::MemberExpr>() const
Line
Count
Source
269
27
  template <typename T> const T *get() const {
270
27
    return BaseConverter<T>::get(NodeKind, &Storage);
271
27
  }
clang::ForStmt const* clang::DynTypedNode::get<clang::ForStmt>() const
Line
Count
Source
269
24
  template <typename T> const T *get() const {
270
24
    return BaseConverter<T>::get(NodeKind, &Storage);
271
24
  }
clang::IfStmt const* clang::DynTypedNode::get<clang::IfStmt>() const
Line
Count
Source
269
175
  template <typename T> const T *get() const {
270
175
    return BaseConverter<T>::get(NodeKind, &Storage);
271
175
  }
clang::ObjCIvarRefExpr const* clang::DynTypedNode::get<clang::ObjCIvarRefExpr>() const
Line
Count
Source
269
2
  template <typename T> const T *get() const {
270
2
    return BaseConverter<T>::get(NodeKind, &Storage);
271
2
  }
clang::DeclRefExpr const* clang::DynTypedNode::get<clang::DeclRefExpr>() const
Line
Count
Source
269
246
  template <typename T> const T *get() const {
270
246
    return BaseConverter<T>::get(NodeKind, &Storage);
271
246
  }
clang::IntegerLiteral const* clang::DynTypedNode::get<clang::IntegerLiteral>() const
Line
Count
Source
269
257
  template <typename T> const T *get() const {
270
257
    return BaseConverter<T>::get(NodeKind, &Storage);
271
257
  }
clang::BinaryOperator const* clang::DynTypedNode::get<clang::BinaryOperator>() const
Line
Count
Source
269
120
  template <typename T> const T *get() const {
270
120
    return BaseConverter<T>::get(NodeKind, &Storage);
271
120
  }
clang::NamedDecl const* clang::DynTypedNode::get<clang::NamedDecl>() const
Line
Count
Source
269
1.30k
  template <typename T> const T *get() const {
270
1.30k
    return BaseConverter<T>::get(NodeKind, &Storage);
271
1.30k
  }
clang::FunctionDecl const* clang::DynTypedNode::get<clang::FunctionDecl>() const
Line
Count
Source
269
5.87k
  template <typename T> const T *get() const {
270
5.87k
    return BaseConverter<T>::get(NodeKind, &Storage);
271
5.87k
  }
clang::ObjCMethodDecl const* clang::DynTypedNode::get<clang::ObjCMethodDecl>() const
Line
Count
Source
269
45
  template <typename T> const T *get() const {
270
45
    return BaseConverter<T>::get(NodeKind, &Storage);
271
45
  }
clang::BlockDecl const* clang::DynTypedNode::get<clang::BlockDecl>() const
Line
Count
Source
269
32
  template <typename T> const T *get() const {
270
32
    return BaseConverter<T>::get(NodeKind, &Storage);
271
32
  }
clang::TranslationUnitDecl const* clang::DynTypedNode::get<clang::TranslationUnitDecl>() const
Line
Count
Source
269
906
  template <typename T> const T *get() const {
270
906
    return BaseConverter<T>::get(NodeKind, &Storage);
271
906
  }
clang::CXXThisExpr const* clang::DynTypedNode::get<clang::CXXThisExpr>() const
Line
Count
Source
269
146
  template <typename T> const T *get() const {
270
146
    return BaseConverter<T>::get(NodeKind, &Storage);
271
146
  }
clang::CXXMemberCallExpr const* clang::DynTypedNode::get<clang::CXXMemberCallExpr>() const
Line
Count
Source
269
118
  template <typename T> const T *get() const {
270
118
    return BaseConverter<T>::get(NodeKind, &Storage);
271
118
  }
clang::InitListExpr const* clang::DynTypedNode::get<clang::InitListExpr>() const
Line
Count
Source
269
5
  template <typename T> const T *get() const {
270
5
    return BaseConverter<T>::get(NodeKind, &Storage);
271
5
  }
272
273
  /// Retrieve the stored node as type \c T.
274
  ///
275
  /// Similar to \c get(), but asserts that the type is what we are expecting.
276
  template <typename T>
277
2.46M
  const T &getUnchecked() const {
278
2.46M
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
2.46M
  }
clang::QualType const& clang::DynTypedNode::getUnchecked<clang::QualType>() const
Line
Count
Source
277
44.0k
  const T &getUnchecked() const {
278
44.0k
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
44.0k
  }
clang::TypeLoc const& clang::DynTypedNode::getUnchecked<clang::TypeLoc>() const
Line
Count
Source
277
1.68M
  const T &getUnchecked() const {
278
1.68M
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
1.68M
  }
clang::NestedNameSpecifierLoc const& clang::DynTypedNode::getUnchecked<clang::NestedNameSpecifierLoc>() const
Line
Count
Source
277
349k
  const T &getUnchecked() const {
278
349k
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
349k
  }
clang::IntegerLiteral const& clang::DynTypedNode::getUnchecked<clang::IntegerLiteral>() const
Line
Count
Source
277
1.30k
  const T &getUnchecked() const {
278
1.30k
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
1.30k
  }
clang::TypedefType const& clang::DynTypedNode::getUnchecked<clang::TypedefType>() const
Line
Count
Source
277
305
  const T &getUnchecked() const {
278
305
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
305
  }
clang::RecordType const& clang::DynTypedNode::getUnchecked<clang::RecordType>() const
Line
Count
Source
277
3.18k
  const T &getUnchecked() const {
278
3.18k
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
3.18k
  }
clang::ObjCObjectPointerType const& clang::DynTypedNode::getUnchecked<clang::ObjCObjectPointerType>() const
Line
Count
Source
277
120
  const T &getUnchecked() const {
278
120
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
120
  }
clang::ConditionalOperator const& clang::DynTypedNode::getUnchecked<clang::ConditionalOperator>() const
Line
Count
Source
277
79
  const T &getUnchecked() const {
278
79
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
79
  }
clang::ObjCAutoreleasePoolStmt const& clang::DynTypedNode::getUnchecked<clang::ObjCAutoreleasePoolStmt>() const
Line
Count
Source
277
25
  const T &getUnchecked() const {
278
25
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
25
  }
clang::BlockDecl const& clang::DynTypedNode::getUnchecked<clang::BlockDecl>() const
Line
Count
Source
277
31
  const T &getUnchecked() const {
278
31
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
31
  }
clang::PointerType const& clang::DynTypedNode::getUnchecked<clang::PointerType>() const
Line
Count
Source
277
718
  const T &getUnchecked() const {
278
718
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
718
  }
clang::CStyleCastExpr const& clang::DynTypedNode::getUnchecked<clang::CStyleCastExpr>() const
Line
Count
Source
277
43
  const T &getUnchecked() const {
278
43
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
43
  }
clang::StringLiteral const& clang::DynTypedNode::getUnchecked<clang::StringLiteral>() const
Line
Count
Source
277
164
  const T &getUnchecked() const {
278
164
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
164
  }
clang::ObjCIvarRefExpr const& clang::DynTypedNode::getUnchecked<clang::ObjCIvarRefExpr>() const
Line
Count
Source
277
58
  const T &getUnchecked() const {
278
58
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
58
  }
clang::BinaryOperator const& clang::DynTypedNode::getUnchecked<clang::BinaryOperator>() const
Line
Count
Source
277
5.84k
  const T &getUnchecked() const {
278
5.84k
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
5.84k
  }
clang::UnaryOperator const& clang::DynTypedNode::getUnchecked<clang::UnaryOperator>() const
Line
Count
Source
277
2.99k
  const T &getUnchecked() const {
278
2.99k
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
2.99k
  }
clang::ObjCInterfaceDecl const& clang::DynTypedNode::getUnchecked<clang::ObjCInterfaceDecl>() const
Line
Count
Source
277
4.31k
  const T &getUnchecked() const {
278
4.31k
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
4.31k
  }
clang::FieldDecl const& clang::DynTypedNode::getUnchecked<clang::FieldDecl>() const
Line
Count
Source
277
863
  const T &getUnchecked() const {
278
863
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
863
  }
clang::FunctionDecl const& clang::DynTypedNode::getUnchecked<clang::FunctionDecl>() const
Line
Count
Source
277
61.8k
  const T &getUnchecked() const {
278
61.8k
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
61.8k
  }
clang::ClassTemplateSpecializationDecl const& clang::DynTypedNode::getUnchecked<clang::ClassTemplateSpecializationDecl>() const
Line
Count
Source
277
4.55k
  const T &getUnchecked() const {
278
4.55k
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
4.55k
  }
clang::Expr const& clang::DynTypedNode::getUnchecked<clang::Expr>() const
Line
Count
Source
277
32.5k
  const T &getUnchecked() const {
278
32.5k
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
32.5k
  }
clang::TemplateArgument const& clang::DynTypedNode::getUnchecked<clang::TemplateArgument>() const
Line
Count
Source
277
4.16k
  const T &getUnchecked() const {
278
4.16k
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
4.16k
  }
clang::CallExpr const& clang::DynTypedNode::getUnchecked<clang::CallExpr>() const
Line
Count
Source
277
15.3k
  const T &getUnchecked() const {
278
15.3k
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
15.3k
  }
clang::InitListExpr const& clang::DynTypedNode::getUnchecked<clang::InitListExpr>() const
Line
Count
Source
277
302
  const T &getUnchecked() const {
278
302
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
302
  }
clang::ForStmt const& clang::DynTypedNode::getUnchecked<clang::ForStmt>() const
Line
Count
Source
277
719
  const T &getUnchecked() const {
278
719
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
719
  }
clang::CXXForRangeStmt const& clang::DynTypedNode::getUnchecked<clang::CXXForRangeStmt>() const
Line
Count
Source
277
185
  const T &getUnchecked() const {
278
185
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
185
  }
clang::DesignatedInitExpr const& clang::DynTypedNode::getUnchecked<clang::DesignatedInitExpr>() const
Line
Count
Source
277
160
  const T &getUnchecked() const {
278
160
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
160
  }
clang::UnaryExprOrTypeTraitExpr const& clang::DynTypedNode::getUnchecked<clang::UnaryExprOrTypeTraitExpr>() const
Line
Count
Source
277
291
  const T &getUnchecked() const {
278
291
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
291
  }
clang::NamedDecl const& clang::DynTypedNode::getUnchecked<clang::NamedDecl>() const
Line
Count
Source
277
112k
  const T &getUnchecked() const {
278
112k
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
112k
  }
clang::CXXDependentScopeMemberExpr const& clang::DynTypedNode::getUnchecked<clang::CXXDependentScopeMemberExpr>() const
Line
Count
Source
277
99
  const T &getUnchecked() const {
278
99
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
99
  }
clang::CXXRecordDecl const& clang::DynTypedNode::getUnchecked<clang::CXXRecordDecl>() const
Line
Count
Source
277
16.6k
  const T &getUnchecked() const {
278
16.6k
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
16.6k
  }
clang::CXXMemberCallExpr const& clang::DynTypedNode::getUnchecked<clang::CXXMemberCallExpr>() const
Line
Count
Source
277
2.75k
  const T &getUnchecked() const {
278
2.75k
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
2.75k
  }
clang::ObjCMessageExpr const& clang::DynTypedNode::getUnchecked<clang::ObjCMessageExpr>() const
Line
Count
Source
277
262
  const T &getUnchecked() const {
278
262
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
262
  }
clang::ObjCMethodDecl const& clang::DynTypedNode::getUnchecked<clang::ObjCMethodDecl>() const
Line
Count
Source
277
111
  const T &getUnchecked() const {
278
111
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
111
  }
clang::Type const& clang::DynTypedNode::getUnchecked<clang::Type>() const
Line
Count
Source
277
6.07k
  const T &getUnchecked() const {
278
6.07k
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
6.07k
  }
clang::DeclRefExpr const& clang::DynTypedNode::getUnchecked<clang::DeclRefExpr>() const
Line
Count
Source
277
3.52k
  const T &getUnchecked() const {
278
3.52k
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
3.52k
  }
clang::OverloadExpr const& clang::DynTypedNode::getUnchecked<clang::OverloadExpr>() const
Line
Count
Source
277
14
  const T &getUnchecked() const {
278
14
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
14
  }
clang::DeclStmt const& clang::DynTypedNode::getUnchecked<clang::DeclStmt>() const
Line
Count
Source
277
722
  const T &getUnchecked() const {
278
722
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
722
  }
clang::VarDecl const& clang::DynTypedNode::getUnchecked<clang::VarDecl>() const
Line
Count
Source
277
7.46k
  const T &getUnchecked() const {
278
7.46k
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
7.46k
  }
clang::LambdaExpr const& clang::DynTypedNode::getUnchecked<clang::LambdaExpr>() const
Line
Count
Source
277
350
  const T &getUnchecked() const {
278
350
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
350
  }
clang::CXXCatchStmt const& clang::DynTypedNode::getUnchecked<clang::CXXCatchStmt>() const
Line
Count
Source
277
100
  const T &getUnchecked() const {
278
100
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
100
  }
clang::CXXConstructorDecl const& clang::DynTypedNode::getUnchecked<clang::CXXConstructorDecl>() const
Line
Count
Source
277
2.31k
  const T &getUnchecked() const {
278
2.31k
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
2.31k
  }
clang::CXXCtorInitializer const& clang::DynTypedNode::getUnchecked<clang::CXXCtorInitializer>() const
Line
Count
Source
277
216
  const T &getUnchecked() const {
278
216
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
216
  }
clang::LambdaCapture const& clang::DynTypedNode::getUnchecked<clang::LambdaCapture>() const
Line
Count
Source
277
298
  const T &getUnchecked() const {
278
298
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
298
  }
clang::CXXConstructExpr const& clang::DynTypedNode::getUnchecked<clang::CXXConstructExpr>() const
Line
Count
Source
277
3.89k
  const T &getUnchecked() const {
278
3.89k
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
3.89k
  }
clang::ParmVarDecl const& clang::DynTypedNode::getUnchecked<clang::ParmVarDecl>() const
Line
Count
Source
277
1.75k
  const T &getUnchecked() const {
278
1.75k
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
1.75k
  }
clang::IfStmt const& clang::DynTypedNode::getUnchecked<clang::IfStmt>() const
Line
Count
Source
277
452
  const T &getUnchecked() const {
278
452
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
452
  }
clang::ArraySubscriptExpr const& clang::DynTypedNode::getUnchecked<clang::ArraySubscriptExpr>() const
Line
Count
Source
277
22
  const T &getUnchecked() const {
278
22
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
22
  }
clang::CompoundStmt const& clang::DynTypedNode::getUnchecked<clang::CompoundStmt>() const
Line
Count
Source
277
1.18k
  const T &getUnchecked() const {
278
1.18k
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
1.18k
  }
clang::CastExpr const& clang::DynTypedNode::getUnchecked<clang::CastExpr>() const
Line
Count
Source
277
3.64k
  const T &getUnchecked() const {
278
3.64k
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
3.64k
  }
clang::ExplicitCastExpr const& clang::DynTypedNode::getUnchecked<clang::ExplicitCastExpr>() const
Line
Count
Source
277
373
  const T &getUnchecked() const {
278
373
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
373
  }
clang::ImplicitCastExpr const& clang::DynTypedNode::getUnchecked<clang::ImplicitCastExpr>() const
Line
Count
Source
277
240
  const T &getUnchecked() const {
278
240
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
240
  }
clang::TagDecl const& clang::DynTypedNode::getUnchecked<clang::TagDecl>() const
Line
Count
Source
277
270
  const T &getUnchecked() const {
278
270
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
270
  }
clang::AbstractConditionalOperator const& clang::DynTypedNode::getUnchecked<clang::AbstractConditionalOperator>() const
Line
Count
Source
277
583
  const T &getUnchecked() const {
278
583
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
583
  }
clang::CXXMethodDecl const& clang::DynTypedNode::getUnchecked<clang::CXXMethodDecl>() const
Line
Count
Source
277
5.73k
  const T &getUnchecked() const {
278
5.73k
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
5.73k
  }
clang::MemberExpr const& clang::DynTypedNode::getUnchecked<clang::MemberExpr>() const
Line
Count
Source
277
502
  const T &getUnchecked() const {
278
502
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
502
  }
clang::BaseUsingDecl const& clang::DynTypedNode::getUnchecked<clang::BaseUsingDecl>() const
Line
Count
Source
277
30
  const T &getUnchecked() const {
278
30
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
30
  }
clang::UsingShadowDecl const& clang::DynTypedNode::getUnchecked<clang::UsingShadowDecl>() const
Line
Count
Source
277
3.01k
  const T &getUnchecked() const {
278
3.01k
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
3.01k
  }
clang::QualifiedTypeLoc const& clang::DynTypedNode::getUnchecked<clang::QualifiedTypeLoc>() const
Line
Count
Source
277
18
  const T &getUnchecked() const {
278
18
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
18
  }
clang::PointerTypeLoc const& clang::DynTypedNode::getUnchecked<clang::PointerTypeLoc>() const
Line
Count
Source
277
40
  const T &getUnchecked() const {
278
40
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
40
  }
clang::ReferenceTypeLoc const& clang::DynTypedNode::getUnchecked<clang::ReferenceTypeLoc>() const
Line
Count
Source
277
28
  const T &getUnchecked() const {
278
28
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
28
  }
clang::TemplateSpecializationTypeLoc const& clang::DynTypedNode::getUnchecked<clang::TemplateSpecializationTypeLoc>() const
Line
Count
Source
277
46
  const T &getUnchecked() const {
278
46
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
46
  }
clang::ElaboratedTypeLoc const& clang::DynTypedNode::getUnchecked<clang::ElaboratedTypeLoc>() const
Line
Count
Source
277
4
  const T &getUnchecked() const {
278
4
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
4
  }
clang::VariableArrayType const& clang::DynTypedNode::getUnchecked<clang::VariableArrayType>() const
Line
Count
Source
277
28
  const T &getUnchecked() const {
278
28
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
28
  }
clang::ElaboratedType const& clang::DynTypedNode::getUnchecked<clang::ElaboratedType>() const
Line
Count
Source
277
12
  const T &getUnchecked() const {
278
12
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
12
  }
clang::DecayedType const& clang::DynTypedNode::getUnchecked<clang::DecayedType>() const
Line
Count
Source
277
28
  const T &getUnchecked() const {
278
28
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
28
  }
clang::Decl const& clang::DynTypedNode::getUnchecked<clang::Decl>() const
Line
Count
Source
277
10.0k
  const T &getUnchecked() const {
278
10.0k
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
10.0k
  }
clang::NestedNameSpecifier const& clang::DynTypedNode::getUnchecked<clang::NestedNameSpecifier>() const
Line
Count
Source
277
292
  const T &getUnchecked() const {
278
292
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
292
  }
clang::Stmt const& clang::DynTypedNode::getUnchecked<clang::Stmt>() const
Line
Count
Source
277
44.0k
  const T &getUnchecked() const {
278
44.0k
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
44.0k
  }
clang::SwitchStmt const& clang::DynTypedNode::getUnchecked<clang::SwitchStmt>() const
Line
Count
Source
277
63
  const T &getUnchecked() const {
278
63
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
63
  }
clang::NamespaceDecl const& clang::DynTypedNode::getUnchecked<clang::NamespaceDecl>() const
Line
Count
Source
277
81
  const T &getUnchecked() const {
278
81
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
81
  }
clang::CaseStmt const& clang::DynTypedNode::getUnchecked<clang::CaseStmt>() const
Line
Count
Source
277
10
  const T &getUnchecked() const {
278
10
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
10
  }
clang::ReturnStmt const& clang::DynTypedNode::getUnchecked<clang::ReturnStmt>() const
Line
Count
Source
277
68
  const T &getUnchecked() const {
278
68
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
68
  }
clang::BindingDecl const& clang::DynTypedNode::getUnchecked<clang::BindingDecl>() const
Line
Count
Source
277
8
  const T &getUnchecked() const {
278
8
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
8
  }
clang::DecompositionDecl const& clang::DynTypedNode::getUnchecked<clang::DecompositionDecl>() const
Line
Count
Source
277
10
  const T &getUnchecked() const {
278
10
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
10
  }
clang::CXXNewExpr const& clang::DynTypedNode::getUnchecked<clang::CXXNewExpr>() const
Line
Count
Source
277
68
  const T &getUnchecked() const {
278
68
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
68
  }
clang::EnumDecl const& clang::DynTypedNode::getUnchecked<clang::EnumDecl>() const
Line
Count
Source
277
345
  const T &getUnchecked() const {
278
345
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
345
  }
clang::OMPExecutableDirective const& clang::DynTypedNode::getUnchecked<clang::OMPExecutableDirective>() const
Line
Count
Source
277
902
  const T &getUnchecked() const {
278
902
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
902
  }
clang::OMPDefaultClause const& clang::DynTypedNode::getUnchecked<clang::OMPDefaultClause>() const
Line
Count
Source
277
240
  const T &getUnchecked() const {
278
240
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
240
  }
clang::FriendDecl const& clang::DynTypedNode::getUnchecked<clang::FriendDecl>() const
Line
Count
Source
277
58
  const T &getUnchecked() const {
278
58
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
58
  }
clang::TypedefNameDecl const& clang::DynTypedNode::getUnchecked<clang::TypedefNameDecl>() const
Line
Count
Source
277
38
  const T &getUnchecked() const {
278
38
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
38
  }
clang::ValueDecl const& clang::DynTypedNode::getUnchecked<clang::ValueDecl>() const
Line
Count
Source
277
102
  const T &getUnchecked() const {
278
102
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
102
  }
clang::CXXBaseSpecifier const& clang::DynTypedNode::getUnchecked<clang::CXXBaseSpecifier>() const
Line
Count
Source
277
530
  const T &getUnchecked() const {
278
530
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
530
  }
clang::CharacterLiteral const& clang::DynTypedNode::getUnchecked<clang::CharacterLiteral>() const
Line
Count
Source
277
8
  const T &getUnchecked() const {
278
8
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
8
  }
clang::CXXBoolLiteralExpr const& clang::DynTypedNode::getUnchecked<clang::CXXBoolLiteralExpr>() const
Line
Count
Source
277
422
  const T &getUnchecked() const {
278
422
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
422
  }
clang::FloatingLiteral const& clang::DynTypedNode::getUnchecked<clang::FloatingLiteral>() const
Line
Count
Source
277
336
  const T &getUnchecked() const {
278
336
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
336
  }
clang::CXXUnresolvedConstructExpr const& clang::DynTypedNode::getUnchecked<clang::CXXUnresolvedConstructExpr>() const
Line
Count
Source
277
18
  const T &getUnchecked() const {
278
18
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
18
  }
clang::Attr const& clang::DynTypedNode::getUnchecked<clang::Attr>() const
Line
Count
Source
277
6
  const T &getUnchecked() const {
278
6
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
6
  }
clang::TemplateSpecializationType const& clang::DynTypedNode::getUnchecked<clang::TemplateSpecializationType>() const
Line
Count
Source
277
94
  const T &getUnchecked() const {
278
94
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
94
  }
clang::CXXOperatorCallExpr const& clang::DynTypedNode::getUnchecked<clang::CXXOperatorCallExpr>() const
Line
Count
Source
277
3.76k
  const T &getUnchecked() const {
278
3.76k
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
3.76k
  }
clang::CXXRewrittenBinaryOperator const& clang::DynTypedNode::getUnchecked<clang::CXXRewrittenBinaryOperator>() const
Line
Count
Source
277
518
  const T &getUnchecked() const {
278
518
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
518
  }
clang::StmtExpr const& clang::DynTypedNode::getUnchecked<clang::StmtExpr>() const
Line
Count
Source
277
16
  const T &getUnchecked() const {
278
16
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
16
  }
clang::DoStmt const& clang::DynTypedNode::getUnchecked<clang::DoStmt>() const
Line
Count
Source
277
2
  const T &getUnchecked() const {
278
2
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
2
  }
clang::WhileStmt const& clang::DynTypedNode::getUnchecked<clang::WhileStmt>() const
Line
Count
Source
277
6
  const T &getUnchecked() const {
278
6
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
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
277
36
  const T &getUnchecked() const {
278
36
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
36
  }
clang::AddrLabelExpr const& clang::DynTypedNode::getUnchecked<clang::AddrLabelExpr>() const
Line
Count
Source
277
8
  const T &getUnchecked() const {
278
8
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
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
277
212
  const T &getUnchecked() const {
278
212
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
212
  }
clang::ArrayType const& clang::DynTypedNode::getUnchecked<clang::ArrayType>() const
Line
Count
Source
277
144
  const T &getUnchecked() const {
278
144
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
144
  }
clang::ComplexType const& clang::DynTypedNode::getUnchecked<clang::ComplexType>() const
Line
Count
Source
277
56
  const T &getUnchecked() const {
278
56
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
56
  }
clang::UnresolvedMemberExpr const& clang::DynTypedNode::getUnchecked<clang::UnresolvedMemberExpr>() const
Line
Count
Source
277
42
  const T &getUnchecked() const {
278
42
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
42
  }
clang::SubstTemplateTypeParmType const& clang::DynTypedNode::getUnchecked<clang::SubstTemplateTypeParmType>() const
Line
Count
Source
277
4
  const T &getUnchecked() const {
278
4
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
4
  }
clang::ConstantArrayType const& clang::DynTypedNode::getUnchecked<clang::ConstantArrayType>() const
Line
Count
Source
277
148
  const T &getUnchecked() const {
278
148
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
148
  }
clang::OpaqueValueExpr const& clang::DynTypedNode::getUnchecked<clang::OpaqueValueExpr>() const
Line
Count
Source
277
46
  const T &getUnchecked() const {
278
46
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
46
  }
clang::CXXFunctionalCastExpr const& clang::DynTypedNode::getUnchecked<clang::CXXFunctionalCastExpr>() const
Line
Count
Source
277
7
  const T &getUnchecked() const {
278
7
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
7
  }
clang::CXXTemporaryObjectExpr const& clang::DynTypedNode::getUnchecked<clang::CXXTemporaryObjectExpr>() const
Line
Count
Source
277
7
  const T &getUnchecked() const {
278
7
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
7
  }
clang::CompoundLiteralExpr const& clang::DynTypedNode::getUnchecked<clang::CompoundLiteralExpr>() const
Line
Count
Source
277
18
  const T &getUnchecked() const {
278
18
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
18
  }
clang::DeclaratorDecl const& clang::DynTypedNode::getUnchecked<clang::DeclaratorDecl>() const
Line
Count
Source
277
26
  const T &getUnchecked() const {
278
26
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
26
  }
clang::ObjCPropertyDecl const& clang::DynTypedNode::getUnchecked<clang::ObjCPropertyDecl>() const
Line
Count
Source
277
2
  const T &getUnchecked() const {
278
2
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
2
  }
clang::TemplateArgumentLoc const& clang::DynTypedNode::getUnchecked<clang::TemplateArgumentLoc>() const
Line
Count
Source
277
42
  const T &getUnchecked() const {
278
42
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
42
  }
clang::DecltypeType const& clang::DynTypedNode::getUnchecked<clang::DecltypeType>() const
Line
Count
Source
277
16
  const T &getUnchecked() const {
278
16
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
16
  }
Unexecuted instantiation: clang::UsingType const& clang::DynTypedNode::getUnchecked<clang::UsingType>() const
clang::AtomicType const& clang::DynTypedNode::getUnchecked<clang::AtomicType>() const
Line
Count
Source
277
56
  const T &getUnchecked() const {
278
56
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
56
  }
clang::ParenType const& clang::DynTypedNode::getUnchecked<clang::ParenType>() const
Line
Count
Source
277
58
  const T &getUnchecked() const {
278
58
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
58
  }
clang::CXXConversionDecl const& clang::DynTypedNode::getUnchecked<clang::CXXConversionDecl>() const
Line
Count
Source
277
48
  const T &getUnchecked() const {
278
48
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
48
  }
clang::CXXDeductionGuideDecl const& clang::DynTypedNode::getUnchecked<clang::CXXDeductionGuideDecl>() const
Line
Count
Source
277
140
  const T &getUnchecked() const {
278
140
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
140
  }
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
277
307
  const T &getUnchecked() const {
278
307
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
307
  }
clang::CXXTypeidExpr const& clang::DynTypedNode::getUnchecked<clang::CXXTypeidExpr>() const
Line
Count
Source
277
2
  const T &getUnchecked() const {
278
2
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
2
  }
clang::GenericSelectionExpr const& clang::DynTypedNode::getUnchecked<clang::GenericSelectionExpr>() const
Line
Count
Source
277
1
  const T &getUnchecked() const {
278
1
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
1
  }
clang::ParenListExpr const& clang::DynTypedNode::getUnchecked<clang::ParenListExpr>() const
Line
Count
Source
277
30
  const T &getUnchecked() const {
278
30
    return BaseConverter<T>::getUnchecked(NodeKind, &Storage);
279
30
  }
280
281
2.19M
  ASTNodeKind getNodeKind() const { return NodeKind; }
282
283
  /// Returns a pointer that identifies the stored AST node.
284
  ///
285
  /// Note that this is not supported by all AST nodes. For AST nodes
286
  /// that don't have a pointer-defined identity inside the AST, this
287
  /// method returns NULL.
288
1.41M
  const void *getMemoizationData() const {
289
1.41M
    return NodeKind.hasPointerIdentity()
290
1.41M
               ? 
*reinterpret_cast<void *const *>(&Storage)1.39M
291
1.41M
               : 
nullptr15.1k
;
292
1.41M
  }
293
294
  /// Prints the node to the given output stream.
295
  void print(llvm::raw_ostream &OS, const PrintingPolicy &PP) const;
296
297
  /// Dumps the node to the given output stream.
298
  void dump(llvm::raw_ostream &OS, const ASTContext &Context) const;
299
300
  /// For nodes which represent textual entities in the source code,
301
  /// return their SourceRange.  For all other nodes, return SourceRange().
302
  SourceRange getSourceRange() const;
303
304
  /// @{
305
  /// Imposes an order on \c DynTypedNode.
306
  ///
307
  /// Supports comparison of nodes that support memoization.
308
  /// FIXME: Implement comparison for other node types (currently
309
  /// only Stmt, Decl, Type and NestedNameSpecifier return memoization data).
310
179k
  bool operator<(const DynTypedNode &Other) const {
311
179k
    if (!NodeKind.isSame(Other.NodeKind))
312
74.3k
      return NodeKind < Other.NodeKind;
313
314
105k
    if (ASTNodeKind::getFromNodeKind<QualType>().isSame(NodeKind))
315
1
      return getUnchecked<QualType>().getAsOpaquePtr() <
316
1
             Other.getUnchecked<QualType>().getAsOpaquePtr();
317
318
105k
    if (ASTNodeKind::getFromNodeKind<TypeLoc>().isBaseOf(NodeKind)) {
319
7
      auto TLA = getUnchecked<TypeLoc>();
320
7
      auto TLB = Other.getUnchecked<TypeLoc>();
321
7
      return std::make_pair(TLA.getType().getAsOpaquePtr(),
322
7
                            TLA.getOpaqueData()) <
323
7
             std::make_pair(TLB.getType().getAsOpaquePtr(),
324
7
                            TLB.getOpaqueData());
325
7
    }
326
327
105k
    if (ASTNodeKind::getFromNodeKind<NestedNameSpecifierLoc>().isSame(
328
105k
            NodeKind)) {
329
0
      auto NNSLA = getUnchecked<NestedNameSpecifierLoc>();
330
0
      auto NNSLB = Other.getUnchecked<NestedNameSpecifierLoc>();
331
0
      return std::make_pair(NNSLA.getNestedNameSpecifier(),
332
0
                            NNSLA.getOpaqueData()) <
333
0
             std::make_pair(NNSLB.getNestedNameSpecifier(),
334
0
                            NNSLB.getOpaqueData());
335
0
    }
336
337
105k
    assert(getMemoizationData() && Other.getMemoizationData());
338
0
    return getMemoizationData() < Other.getMemoizationData();
339
105k
  }
340
13.9M
  bool operator==(const DynTypedNode &Other) const {
341
    // DynTypedNode::create() stores the exact kind of the node in NodeKind.
342
    // If they contain the same node, their NodeKind must be the same.
343
13.9M
    if (!NodeKind.isSame(Other.NodeKind))
344
13.5M
      return false;
345
346
    // FIXME: Implement for other types.
347
424k
    if (ASTNodeKind::getFromNodeKind<QualType>().isSame(NodeKind))
348
141
      return getUnchecked<QualType>() == Other.getUnchecked<QualType>();
349
350
424k
    if (ASTNodeKind::getFromNodeKind<TypeLoc>().isBaseOf(NodeKind))
351
152k
      return getUnchecked<TypeLoc>() == Other.getUnchecked<TypeLoc>();
352
353
272k
    if (ASTNodeKind::getFromNodeKind<NestedNameSpecifierLoc>().isSame(NodeKind))
354
44.1k
      return getUnchecked<NestedNameSpecifierLoc>() ==
355
44.1k
             Other.getUnchecked<NestedNameSpecifierLoc>();
356
357
227k
    assert(getMemoizationData() && Other.getMemoizationData());
358
0
    return getMemoizationData() == Other.getMemoizationData();
359
272k
  }
360
208k
  bool operator!=(const DynTypedNode &Other) const {
361
208k
    return !operator==(Other);
362
208k
  }
363
  /// @}
364
365
  /// Hooks for using DynTypedNode as a key in a DenseMap.
366
  struct DenseMapInfo {
367
3.08M
    static inline DynTypedNode getEmptyKey() {
368
3.08M
      DynTypedNode Node;
369
3.08M
      Node.NodeKind = ASTNodeKind::DenseMapInfo::getEmptyKey();
370
3.08M
      return Node;
371
3.08M
    }
372
2.36M
    static inline DynTypedNode getTombstoneKey() {
373
2.36M
      DynTypedNode Node;
374
2.36M
      Node.NodeKind = ASTNodeKind::DenseMapInfo::getTombstoneKey();
375
2.36M
      return Node;
376
2.36M
    }
377
1.64M
    static unsigned getHashValue(const DynTypedNode &Val) {
378
      // FIXME: Add hashing support for the remaining types.
379
1.64M
      if (ASTNodeKind::getFromNodeKind<TypeLoc>().isBaseOf(Val.NodeKind)) {
380
1.38M
        auto TL = Val.getUnchecked<TypeLoc>();
381
1.38M
        return llvm::hash_combine(TL.getType().getAsOpaquePtr(),
382
1.38M
                                  TL.getOpaqueData());
383
1.38M
      }
384
385
261k
      if (ASTNodeKind::getFromNodeKind<NestedNameSpecifierLoc>().isSame(
386
261k
              Val.NodeKind)) {
387
261k
        auto NNSL = Val.getUnchecked<NestedNameSpecifierLoc>();
388
261k
        return llvm::hash_combine(NNSL.getNestedNameSpecifier(),
389
261k
                                  NNSL.getOpaqueData());
390
261k
      }
391
392
13
      assert(Val.getMemoizationData());
393
0
      return llvm::hash_value(Val.getMemoizationData());
394
261k
    }
395
17.4M
    static bool isEqual(const DynTypedNode &LHS, const DynTypedNode &RHS) {
396
17.4M
      auto Empty = ASTNodeKind::DenseMapInfo::getEmptyKey();
397
17.4M
      auto TombStone = ASTNodeKind::DenseMapInfo::getTombstoneKey();
398
17.4M
      return (ASTNodeKind::DenseMapInfo::isEqual(LHS.NodeKind, Empty) &&
399
17.4M
              
ASTNodeKind::DenseMapInfo::isEqual(RHS.NodeKind, Empty)3.79M
) ||
400
17.4M
             
(13.6M
ASTNodeKind::DenseMapInfo::isEqual(LHS.NodeKind, TombStone)13.6M
&&
401
13.6M
              
ASTNodeKind::DenseMapInfo::isEqual(RHS.NodeKind, TombStone)0
) ||
402
17.4M
             
LHS == RHS13.6M
;
403
17.4M
    }
404
  };
405
406
private:
407
  /// Takes care of converting from and to \c T.
408
  template <typename T, typename EnablerT = void> struct BaseConverter;
409
410
  /// Converter that uses dyn_cast<T> from a stored BaseT*.
411
  template <typename T, typename BaseT> struct DynCastPtrConverter {
412
3.55M
    static const T *get(ASTNodeKind NodeKind, const void *Storage) {
413
3.55M
      if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind))
414
1.36M
        return &getUnchecked(NodeKind, Storage);
415
2.18M
      return nullptr;
416
3.55M
    }
clang::DynTypedNode::DynCastPtrConverter<clang::Stmt, clang::Stmt>::get(clang::ASTNodeKind, void const*)
Line
Count
Source
412
794k
    static const T *get(ASTNodeKind NodeKind, const void *Storage) {
413
794k
      if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind))
414
236k
        return &getUnchecked(NodeKind, Storage);
415
558k
      return nullptr;
416
794k
    }
clang::DynTypedNode::DynCastPtrConverter<clang::Type, clang::Type>::get(clang::ASTNodeKind, void const*)
Line
Count
Source
412
79
    static const T *get(ASTNodeKind NodeKind, const void *Storage) {
413
79
      if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind))
414
52
        return &getUnchecked(NodeKind, Storage);
415
27
      return nullptr;
416
79
    }
clang::DynTypedNode::DynCastPtrConverter<clang::Attr, clang::Attr>::get(clang::ASTNodeKind, void const*)
Line
Count
Source
412
13
    static const T *get(ASTNodeKind NodeKind, const void *Storage) {
413
13
      if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind))
414
13
        return &getUnchecked(NodeKind, Storage);
415
0
      return nullptr;
416
13
    }
clang::DynTypedNode::DynCastPtrConverter<clang::OMPClause, clang::OMPClause>::get(clang::ASTNodeKind, void const*)
Line
Count
Source
412
2
    static const T *get(ASTNodeKind NodeKind, const void *Storage) {
413
2
      if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind))
414
0
        return &getUnchecked(NodeKind, Storage);
415
2
      return nullptr;
416
2
    }
clang::DynTypedNode::DynCastPtrConverter<clang::DeclStmt, clang::Stmt>::get(clang::ASTNodeKind, void const*)
Line
Count
Source
412
4.00k
    static const T *get(ASTNodeKind NodeKind, const void *Storage) {
413
4.00k
      if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind))
414
98
        return &getUnchecked(NodeKind, Storage);
415
3.91k
      return nullptr;
416
4.00k
    }
clang::DynTypedNode::DynCastPtrConverter<clang::CXXForRangeStmt, clang::Stmt>::get(clang::ASTNodeKind, void const*)
Line
Count
Source
412
84
    static const T *get(ASTNodeKind NodeKind, const void *Storage) {
413
84
      if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind))
414
7
        return &getUnchecked(NodeKind, Storage);
415
77
      return nullptr;
416
84
    }
clang::DynTypedNode::DynCastPtrConverter<clang::VarDecl, clang::Decl>::get(clang::ASTNodeKind, void const*)
Line
Count
Source
412
5.17k
    static const T *get(ASTNodeKind NodeKind, const void *Storage) {
413
5.17k
      if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind))
414
1.53k
        return &getUnchecked(NodeKind, Storage);
415
3.64k
      return nullptr;
416
5.17k
    }
clang::DynTypedNode::DynCastPtrConverter<clang::CXXMethodDecl, clang::Decl>::get(clang::ASTNodeKind, void const*)
Line
Count
Source
412
3.92k
    static const T *get(ASTNodeKind NodeKind, const void *Storage) {
413
3.92k
      if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind))
414
260
        return &getUnchecked(NodeKind, Storage);
415
3.66k
      return nullptr;
416
3.92k
    }
clang::DynTypedNode::DynCastPtrConverter<clang::CXXRecordDecl, clang::Decl>::get(clang::ASTNodeKind, void const*)
Line
Count
Source
412
942
    static const T *get(ASTNodeKind NodeKind, const void *Storage) {
413
942
      if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind))
414
940
        return &getUnchecked(NodeKind, Storage);
415
2
      return nullptr;
416
942
    }
clang::DynTypedNode::DynCastPtrConverter<clang::LambdaExpr, clang::Stmt>::get(clang::ASTNodeKind, void const*)
Line
Count
Source
412
2.37k
    static const T *get(ASTNodeKind NodeKind, const void *Storage) {
413
2.37k
      if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind))
414
46
        return &getUnchecked(NodeKind, Storage);
415
2.33k
      return nullptr;
416
2.37k
    }
clang::DynTypedNode::DynCastPtrConverter<clang::FunctionTemplateDecl, clang::Decl>::get(clang::ASTNodeKind, void const*)
Line
Count
Source
412
4.28k
    static const T *get(ASTNodeKind NodeKind, const void *Storage) {
413
4.28k
      if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind))
414
616
        return &getUnchecked(NodeKind, Storage);
415
3.66k
      return nullptr;
416
4.28k
    }
clang::DynTypedNode::DynCastPtrConverter<clang::Expr, clang::Stmt>::get(clang::ASTNodeKind, void const*)
Line
Count
Source
412
1.42M
    static const T *get(ASTNodeKind NodeKind, const void *Storage) {
413
1.42M
      if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind))
414
601k
        return &getUnchecked(NodeKind, Storage);
415
826k
      return nullptr;
416
1.42M
    }
clang::DynTypedNode::DynCastPtrConverter<clang::Decl, clang::Decl>::get(clang::ASTNodeKind, void const*)
Line
Count
Source
412
1.30M
    static const T *get(ASTNodeKind NodeKind, const void *Storage) {
413
1.30M
      if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind))
414
516k
        return &getUnchecked(NodeKind, Storage);
415
784k
      return nullptr;
416
1.30M
    }
clang::DynTypedNode::DynCastPtrConverter<clang::CompoundStmt, clang::Stmt>::get(clang::ASTNodeKind, void const*)
Line
Count
Source
412
104
    static const T *get(ASTNodeKind NodeKind, const void *Storage) {
413
104
      if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind))
414
56
        return &getUnchecked(NodeKind, Storage);
415
48
      return nullptr;
416
104
    }
clang::DynTypedNode::DynCastPtrConverter<clang::CXXDeleteExpr, clang::Stmt>::get(clang::ASTNodeKind, void const*)
Line
Count
Source
412
3
    static const T *get(ASTNodeKind NodeKind, const void *Storage) {
413
3
      if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind))
414
3
        return &getUnchecked(NodeKind, Storage);
415
0
      return nullptr;
416
3
    }
clang::DynTypedNode::DynCastPtrConverter<clang::CallExpr, clang::Stmt>::get(clang::ASTNodeKind, void const*)
Line
Count
Source
412
202
    static const T *get(ASTNodeKind NodeKind, const void *Storage) {
413
202
      if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind))
414
201
        return &getUnchecked(NodeKind, Storage);
415
1
      return nullptr;
416
202
    }
clang::DynTypedNode::DynCastPtrConverter<clang::ParmVarDecl, clang::Decl>::get(clang::ASTNodeKind, void const*)
Line
Count
Source
412
94
    static const T *get(ASTNodeKind NodeKind, const void *Storage) {
413
94
      if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind))
414
94
        return &getUnchecked(NodeKind, Storage);
415
0
      return nullptr;
416
94
    }
clang::DynTypedNode::DynCastPtrConverter<clang::ObjCAutoreleasePoolStmt, clang::Stmt>::get(clang::ASTNodeKind, void const*)
Line
Count
Source
412
17
    static const T *get(ASTNodeKind NodeKind, const void *Storage) {
413
17
      if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind))
414
17
        return &getUnchecked(NodeKind, Storage);
415
0
      return nullptr;
416
17
    }
clang::DynTypedNode::DynCastPtrConverter<clang::CastExpr, clang::Stmt>::get(clang::ASTNodeKind, void const*)
Line
Count
Source
412
2
    static const T *get(ASTNodeKind NodeKind, const void *Storage) {
413
2
      if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind))
414
2
        return &getUnchecked(NodeKind, Storage);
415
0
      return nullptr;
416
2
    }
clang::DynTypedNode::DynCastPtrConverter<clang::ObjCMessageExpr, clang::Stmt>::get(clang::ASTNodeKind, void const*)
Line
Count
Source
412
18
    static const T *get(ASTNodeKind NodeKind, const void *Storage) {
413
18
      if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind))
414
18
        return &getUnchecked(NodeKind, Storage);
415
0
      return nullptr;
416
18
    }
clang::DynTypedNode::DynCastPtrConverter<clang::MemberExpr, clang::Stmt>::get(clang::ASTNodeKind, void const*)
Line
Count
Source
412
27
    static const T *get(ASTNodeKind NodeKind, const void *Storage) {
413
27
      if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind))
414
27
        return &getUnchecked(NodeKind, Storage);
415
0
      return nullptr;
416
27
    }
clang::DynTypedNode::DynCastPtrConverter<clang::ForStmt, clang::Stmt>::get(clang::ASTNodeKind, void const*)
Line
Count
Source
412
24
    static const T *get(ASTNodeKind NodeKind, const void *Storage) {
413
24
      if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind))
414
1
        return &getUnchecked(NodeKind, Storage);
415
23
      return nullptr;
416
24
    }
clang::DynTypedNode::DynCastPtrConverter<clang::IfStmt, clang::Stmt>::get(clang::ASTNodeKind, void const*)
Line
Count
Source
412
175
    static const T *get(ASTNodeKind NodeKind, const void *Storage) {
413
175
      if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind))
414
125
        return &getUnchecked(NodeKind, Storage);
415
50
      return nullptr;
416
175
    }
clang::DynTypedNode::DynCastPtrConverter<clang::ObjCIvarRefExpr, clang::Stmt>::get(clang::ASTNodeKind, void const*)
Line
Count
Source
412
2
    static const T *get(ASTNodeKind NodeKind, const void *Storage) {
413
2
      if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind))
414
2
        return &getUnchecked(NodeKind, Storage);
415
0
      return nullptr;
416
2
    }
clang::DynTypedNode::DynCastPtrConverter<clang::DeclRefExpr, clang::Stmt>::get(clang::ASTNodeKind, void const*)
Line
Count
Source
412
246
    static const T *get(ASTNodeKind NodeKind, const void *Storage) {
413
246
      if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind))
414
241
        return &getUnchecked(NodeKind, Storage);
415
5
      return nullptr;
416
246
    }
clang::DynTypedNode::DynCastPtrConverter<clang::IntegerLiteral, clang::Stmt>::get(clang::ASTNodeKind, void const*)
Line
Count
Source
412
257
    static const T *get(ASTNodeKind NodeKind, const void *Storage) {
413
257
      if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind))
414
257
        return &getUnchecked(NodeKind, Storage);
415
0
      return nullptr;
416
257
    }
clang::DynTypedNode::DynCastPtrConverter<clang::BinaryOperator, clang::Stmt>::get(clang::ASTNodeKind, void const*)
Line
Count
Source
412
120
    static const T *get(ASTNodeKind NodeKind, const void *Storage) {
413
120
      if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind))
414
120
        return &getUnchecked(NodeKind, Storage);
415
0
      return nullptr;
416
120
    }
clang::DynTypedNode::DynCastPtrConverter<clang::NamedDecl, clang::Decl>::get(clang::ASTNodeKind, void const*)
Line
Count
Source
412
1.30k
    static const T *get(ASTNodeKind NodeKind, const void *Storage) {
413
1.30k
      if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind))
414
959
        return &getUnchecked(NodeKind, Storage);
415
348
      return nullptr;
416
1.30k
    }
clang::DynTypedNode::DynCastPtrConverter<clang::FunctionDecl, clang::Decl>::get(clang::ASTNodeKind, void const*)
Line
Count
Source
412
5.87k
    static const T *get(ASTNodeKind NodeKind, const void *Storage) {
413
5.87k
      if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind))
414
3.53k
        return &getUnchecked(NodeKind, Storage);
415
2.33k
      return nullptr;
416
5.87k
    }
clang::DynTypedNode::DynCastPtrConverter<clang::ObjCMethodDecl, clang::Decl>::get(clang::ASTNodeKind, void const*)
Line
Count
Source
412
45
    static const T *get(ASTNodeKind NodeKind, const void *Storage) {
413
45
      if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind))
414
17
        return &getUnchecked(NodeKind, Storage);
415
28
      return nullptr;
416
45
    }
clang::DynTypedNode::DynCastPtrConverter<clang::BlockDecl, clang::Decl>::get(clang::ASTNodeKind, void const*)
Line
Count
Source
412
32
    static const T *get(ASTNodeKind NodeKind, const void *Storage) {
413
32
      if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind))
414
8
        return &getUnchecked(NodeKind, Storage);
415
24
      return nullptr;
416
32
    }
clang::DynTypedNode::DynCastPtrConverter<clang::TranslationUnitDecl, clang::Decl>::get(clang::ASTNodeKind, void const*)
Line
Count
Source
412
906
    static const T *get(ASTNodeKind NodeKind, const void *Storage) {
413
906
      if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind))
414
906
        return &getUnchecked(NodeKind, Storage);
415
0
      return nullptr;
416
906
    }
clang::DynTypedNode::DynCastPtrConverter<clang::CXXThisExpr, clang::Stmt>::get(clang::ASTNodeKind, void const*)
Line
Count
Source
412
146
    static const T *get(ASTNodeKind NodeKind, const void *Storage) {
413
146
      if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind))
414
0
        return &getUnchecked(NodeKind, Storage);
415
146
      return nullptr;
416
146
    }
clang::DynTypedNode::DynCastPtrConverter<clang::CXXMemberCallExpr, clang::Stmt>::get(clang::ASTNodeKind, void const*)
Line
Count
Source
412
118
    static const T *get(ASTNodeKind NodeKind, const void *Storage) {
413
118
      if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind))
414
118
        return &getUnchecked(NodeKind, Storage);
415
0
      return nullptr;
416
118
    }
clang::DynTypedNode::DynCastPtrConverter<clang::InitListExpr, clang::Stmt>::get(clang::ASTNodeKind, void const*)
Line
Count
Source
412
5
    static const T *get(ASTNodeKind NodeKind, const void *Storage) {
413
5
      if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind))
414
4
        return &getUnchecked(NodeKind, Storage);
415
1
      return nullptr;
416
5
    }
417
1.74M
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
1.74M
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
1.74M
          *reinterpret_cast<const void *const *>(Storage)));
421
1.74M
    }
clang::DynTypedNode::DynCastPtrConverter<clang::Stmt, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
280k
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
280k
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
280k
          *reinterpret_cast<const void *const *>(Storage)));
421
280k
    }
clang::DynTypedNode::DynCastPtrConverter<clang::Type, clang::Type>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
6.12k
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
6.12k
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
6.12k
          *reinterpret_cast<const void *const *>(Storage)));
421
6.12k
    }
clang::DynTypedNode::DynCastPtrConverter<clang::Attr, clang::Attr>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
19
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
19
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
19
          *reinterpret_cast<const void *const *>(Storage)));
421
19
    }
Unexecuted instantiation: clang::DynTypedNode::DynCastPtrConverter<clang::OMPClause, clang::OMPClause>::getUnchecked(clang::ASTNodeKind, void const*)
clang::DynTypedNode::DynCastPtrConverter<clang::DeclStmt, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
820
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
820
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
820
          *reinterpret_cast<const void *const *>(Storage)));
421
820
    }
clang::DynTypedNode::DynCastPtrConverter<clang::CXXForRangeStmt, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
192
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
192
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
192
          *reinterpret_cast<const void *const *>(Storage)));
421
192
    }
clang::DynTypedNode::DynCastPtrConverter<clang::VarDecl, clang::Decl>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
9.00k
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
9.00k
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
9.00k
          *reinterpret_cast<const void *const *>(Storage)));
421
9.00k
    }
clang::DynTypedNode::DynCastPtrConverter<clang::CXXMethodDecl, clang::Decl>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
5.99k
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
5.99k
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
5.99k
          *reinterpret_cast<const void *const *>(Storage)));
421
5.99k
    }
clang::DynTypedNode::DynCastPtrConverter<clang::CXXRecordDecl, clang::Decl>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
17.6k
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
17.6k
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
17.6k
          *reinterpret_cast<const void *const *>(Storage)));
421
17.6k
    }
clang::DynTypedNode::DynCastPtrConverter<clang::LambdaExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
396
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
396
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
396
          *reinterpret_cast<const void *const *>(Storage)));
421
396
    }
clang::DynTypedNode::DynCastPtrConverter<clang::FunctionTemplateDecl, clang::Decl>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
1.20k
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
1.20k
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
1.20k
          *reinterpret_cast<const void *const *>(Storage)));
421
1.20k
    }
clang::DynTypedNode::DynCastPtrConverter<clang::Expr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
634k
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
634k
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
634k
          *reinterpret_cast<const void *const *>(Storage)));
421
634k
    }
clang::DynTypedNode::DynCastPtrConverter<clang::Decl, clang::Decl>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
526k
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
526k
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
526k
          *reinterpret_cast<const void *const *>(Storage)));
421
526k
    }
clang::DynTypedNode::DynCastPtrConverter<clang::CompoundStmt, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
1.23k
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
1.23k
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
1.23k
          *reinterpret_cast<const void *const *>(Storage)));
421
1.23k
    }
clang::DynTypedNode::DynCastPtrConverter<clang::CXXDeleteExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
3
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
3
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
3
          *reinterpret_cast<const void *const *>(Storage)));
421
3
    }
clang::DynTypedNode::DynCastPtrConverter<clang::TypedefType, clang::Type>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
305
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
305
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
305
          *reinterpret_cast<const void *const *>(Storage)));
421
305
    }
clang::DynTypedNode::DynCastPtrConverter<clang::RecordType, clang::Type>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
3.18k
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
3.18k
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
3.18k
          *reinterpret_cast<const void *const *>(Storage)));
421
3.18k
    }
clang::DynTypedNode::DynCastPtrConverter<clang::ObjCObjectPointerType, clang::Type>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
120
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
120
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
120
          *reinterpret_cast<const void *const *>(Storage)));
421
120
    }
clang::DynTypedNode::DynCastPtrConverter<clang::ConditionalOperator, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
79
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
79
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
79
          *reinterpret_cast<const void *const *>(Storage)));
421
79
    }
clang::DynTypedNode::DynCastPtrConverter<clang::ObjCAutoreleasePoolStmt, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
42
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
42
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
42
          *reinterpret_cast<const void *const *>(Storage)));
421
42
    }
clang::DynTypedNode::DynCastPtrConverter<clang::PointerType, clang::Type>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
719
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
719
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
719
          *reinterpret_cast<const void *const *>(Storage)));
421
719
    }
clang::DynTypedNode::DynCastPtrConverter<clang::CStyleCastExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
43
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
43
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
43
          *reinterpret_cast<const void *const *>(Storage)));
421
43
    }
clang::DynTypedNode::DynCastPtrConverter<clang::StringLiteral, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
165
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
165
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
165
          *reinterpret_cast<const void *const *>(Storage)));
421
165
    }
clang::DynTypedNode::DynCastPtrConverter<clang::ObjCIvarRefExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
60
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
60
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
60
          *reinterpret_cast<const void *const *>(Storage)));
421
60
    }
clang::DynTypedNode::DynCastPtrConverter<clang::BinaryOperator, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
5.96k
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
5.96k
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
5.96k
          *reinterpret_cast<const void *const *>(Storage)));
421
5.96k
    }
clang::DynTypedNode::DynCastPtrConverter<clang::UnaryOperator, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
2.99k
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
2.99k
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
2.99k
          *reinterpret_cast<const void *const *>(Storage)));
421
2.99k
    }
clang::DynTypedNode::DynCastPtrConverter<clang::IntegerLiteral, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
1.55k
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
1.55k
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
1.55k
          *reinterpret_cast<const void *const *>(Storage)));
421
1.55k
    }
clang::DynTypedNode::DynCastPtrConverter<clang::ObjCInterfaceDecl, clang::Decl>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
4.31k
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
4.31k
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
4.31k
          *reinterpret_cast<const void *const *>(Storage)));
421
4.31k
    }
clang::DynTypedNode::DynCastPtrConverter<clang::NamedDecl, clang::Decl>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
113k
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
113k
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
113k
          *reinterpret_cast<const void *const *>(Storage)));
421
113k
    }
clang::DynTypedNode::DynCastPtrConverter<clang::FunctionDecl, clang::Decl>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
65.4k
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
65.4k
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
65.4k
          *reinterpret_cast<const void *const *>(Storage)));
421
65.4k
    }
clang::DynTypedNode::DynCastPtrConverter<clang::ObjCMethodDecl, clang::Decl>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
128
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
128
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
128
          *reinterpret_cast<const void *const *>(Storage)));
421
128
    }
clang::DynTypedNode::DynCastPtrConverter<clang::BlockDecl, clang::Decl>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
39
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
39
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
39
          *reinterpret_cast<const void *const *>(Storage)));
421
39
    }
clang::DynTypedNode::DynCastPtrConverter<clang::FieldDecl, clang::Decl>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
1.51k
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
1.51k
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
1.51k
          *reinterpret_cast<const void *const *>(Storage)));
421
1.51k
    }
clang::DynTypedNode::DynCastPtrConverter<clang::ClassTemplateSpecializationDecl, clang::Decl>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
4.94k
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
4.94k
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
4.94k
          *reinterpret_cast<const void *const *>(Storage)));
421
4.94k
    }
clang::DynTypedNode::DynCastPtrConverter<clang::CallExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
15.5k
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
15.5k
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
15.5k
          *reinterpret_cast<const void *const *>(Storage)));
421
15.5k
    }
clang::DynTypedNode::DynCastPtrConverter<clang::InitListExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
306
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
306
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
306
          *reinterpret_cast<const void *const *>(Storage)));
421
306
    }
clang::DynTypedNode::DynCastPtrConverter<clang::ForStmt, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
720
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
720
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
720
          *reinterpret_cast<const void *const *>(Storage)));
421
720
    }
clang::DynTypedNode::DynCastPtrConverter<clang::DesignatedInitExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
160
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
160
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
160
          *reinterpret_cast<const void *const *>(Storage)));
421
160
    }
clang::DynTypedNode::DynCastPtrConverter<clang::UnaryExprOrTypeTraitExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
291
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
291
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
291
          *reinterpret_cast<const void *const *>(Storage)));
421
291
    }
clang::DynTypedNode::DynCastPtrConverter<clang::CXXDependentScopeMemberExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
99
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
99
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
99
          *reinterpret_cast<const void *const *>(Storage)));
421
99
    }
clang::DynTypedNode::DynCastPtrConverter<clang::CXXMemberCallExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
2.87k
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
2.87k
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
2.87k
          *reinterpret_cast<const void *const *>(Storage)));
421
2.87k
    }
clang::DynTypedNode::DynCastPtrConverter<clang::ObjCMessageExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
280
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
280
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
280
          *reinterpret_cast<const void *const *>(Storage)));
421
280
    }
clang::DynTypedNode::DynCastPtrConverter<clang::DeclRefExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
3.76k
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
3.76k
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
3.76k
          *reinterpret_cast<const void *const *>(Storage)));
421
3.76k
    }
clang::DynTypedNode::DynCastPtrConverter<clang::OverloadExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
14
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
14
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
14
          *reinterpret_cast<const void *const *>(Storage)));
421
14
    }
clang::DynTypedNode::DynCastPtrConverter<clang::CXXCatchStmt, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
100
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
100
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
100
          *reinterpret_cast<const void *const *>(Storage)));
421
100
    }
clang::DynTypedNode::DynCastPtrConverter<clang::CXXConstructorDecl, clang::Decl>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
2.40k
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
2.40k
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
2.40k
          *reinterpret_cast<const void *const *>(Storage)));
421
2.40k
    }
clang::DynTypedNode::DynCastPtrConverter<clang::CXXConstructExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
3.90k
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
3.90k
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
3.90k
          *reinterpret_cast<const void *const *>(Storage)));
421
3.90k
    }
clang::DynTypedNode::DynCastPtrConverter<clang::ParmVarDecl, clang::Decl>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
1.85k
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
1.85k
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
1.85k
          *reinterpret_cast<const void *const *>(Storage)));
421
1.85k
    }
clang::DynTypedNode::DynCastPtrConverter<clang::IfStmt, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
577
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
577
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
577
          *reinterpret_cast<const void *const *>(Storage)));
421
577
    }
clang::DynTypedNode::DynCastPtrConverter<clang::ArraySubscriptExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
22
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
22
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
22
          *reinterpret_cast<const void *const *>(Storage)));
421
22
    }
clang::DynTypedNode::DynCastPtrConverter<clang::CastExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
3.64k
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
3.64k
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
3.64k
          *reinterpret_cast<const void *const *>(Storage)));
421
3.64k
    }
clang::DynTypedNode::DynCastPtrConverter<clang::ExplicitCastExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
373
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
373
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
373
          *reinterpret_cast<const void *const *>(Storage)));
421
373
    }
clang::DynTypedNode::DynCastPtrConverter<clang::ImplicitCastExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
240
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
240
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
240
          *reinterpret_cast<const void *const *>(Storage)));
421
240
    }
clang::DynTypedNode::DynCastPtrConverter<clang::TagDecl, clang::Decl>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
271
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
271
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
271
          *reinterpret_cast<const void *const *>(Storage)));
421
271
    }
clang::DynTypedNode::DynCastPtrConverter<clang::AbstractConditionalOperator, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
583
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
583
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
583
          *reinterpret_cast<const void *const *>(Storage)));
421
583
    }
clang::DynTypedNode::DynCastPtrConverter<clang::MemberExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
529
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
529
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
529
          *reinterpret_cast<const void *const *>(Storage)));
421
529
    }
clang::DynTypedNode::DynCastPtrConverter<clang::BaseUsingDecl, clang::Decl>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
30
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
30
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
30
          *reinterpret_cast<const void *const *>(Storage)));
421
30
    }
clang::DynTypedNode::DynCastPtrConverter<clang::UsingShadowDecl, clang::Decl>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
3.11k
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
3.11k
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
3.11k
          *reinterpret_cast<const void *const *>(Storage)));
421
3.11k
    }
clang::DynTypedNode::DynCastPtrConverter<clang::VariableArrayType, clang::Type>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
28
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
28
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
28
          *reinterpret_cast<const void *const *>(Storage)));
421
28
    }
clang::DynTypedNode::DynCastPtrConverter<clang::ElaboratedType, clang::Type>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
12
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
12
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
12
          *reinterpret_cast<const void *const *>(Storage)));
421
12
    }
clang::DynTypedNode::DynCastPtrConverter<clang::DecayedType, clang::Type>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
28
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
28
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
28
          *reinterpret_cast<const void *const *>(Storage)));
421
28
    }
clang::DynTypedNode::DynCastPtrConverter<clang::SwitchStmt, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
63
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
63
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
63
          *reinterpret_cast<const void *const *>(Storage)));
421
63
    }
clang::DynTypedNode::DynCastPtrConverter<clang::NamespaceDecl, clang::Decl>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
106
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
106
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
106
          *reinterpret_cast<const void *const *>(Storage)));
421
106
    }
clang::DynTypedNode::DynCastPtrConverter<clang::CaseStmt, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
28
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
28
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
28
          *reinterpret_cast<const void *const *>(Storage)));
421
28
    }
clang::DynTypedNode::DynCastPtrConverter<clang::ReturnStmt, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
74
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
74
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
74
          *reinterpret_cast<const void *const *>(Storage)));
421
74
    }
clang::DynTypedNode::DynCastPtrConverter<clang::BindingDecl, clang::Decl>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
32
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
32
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
32
          *reinterpret_cast<const void *const *>(Storage)));
421
32
    }
clang::DynTypedNode::DynCastPtrConverter<clang::DecompositionDecl, clang::Decl>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
18
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
18
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
18
          *reinterpret_cast<const void *const *>(Storage)));
421
18
    }
clang::DynTypedNode::DynCastPtrConverter<clang::CXXNewExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
71
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
71
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
71
          *reinterpret_cast<const void *const *>(Storage)));
421
71
    }
clang::DynTypedNode::DynCastPtrConverter<clang::EnumDecl, clang::Decl>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
781
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
781
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
781
          *reinterpret_cast<const void *const *>(Storage)));
421
781
    }
clang::DynTypedNode::DynCastPtrConverter<clang::OMPExecutableDirective, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
902
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
902
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
902
          *reinterpret_cast<const void *const *>(Storage)));
421
902
    }
clang::DynTypedNode::DynCastPtrConverter<clang::OMPDefaultClause, clang::OMPClause>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
240
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
240
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
240
          *reinterpret_cast<const void *const *>(Storage)));
421
240
    }
clang::DynTypedNode::DynCastPtrConverter<clang::TranslationUnitDecl, clang::Decl>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
1.28k
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
1.28k
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
1.28k
          *reinterpret_cast<const void *const *>(Storage)));
421
1.28k
    }
clang::DynTypedNode::DynCastPtrConverter<clang::CXXThisExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
8
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
8
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
8
          *reinterpret_cast<const void *const *>(Storage)));
421
8
    }
clang::DynTypedNode::DynCastPtrConverter<clang::FriendDecl, clang::Decl>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
181
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
181
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
181
          *reinterpret_cast<const void *const *>(Storage)));
421
181
    }
clang::DynTypedNode::DynCastPtrConverter<clang::TypedefNameDecl, clang::Decl>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
370
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
370
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
370
          *reinterpret_cast<const void *const *>(Storage)));
421
370
    }
clang::DynTypedNode::DynCastPtrConverter<clang::ValueDecl, clang::Decl>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
323
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
323
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
323
          *reinterpret_cast<const void *const *>(Storage)));
421
323
    }
clang::DynTypedNode::DynCastPtrConverter<clang::CharacterLiteral, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
8
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
8
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
8
          *reinterpret_cast<const void *const *>(Storage)));
421
8
    }
clang::DynTypedNode::DynCastPtrConverter<clang::CXXBoolLiteralExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
422
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
422
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
422
          *reinterpret_cast<const void *const *>(Storage)));
421
422
    }
clang::DynTypedNode::DynCastPtrConverter<clang::FloatingLiteral, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
336
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
336
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
336
          *reinterpret_cast<const void *const *>(Storage)));
421
336
    }
clang::DynTypedNode::DynCastPtrConverter<clang::CXXUnresolvedConstructExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
19
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
19
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
19
          *reinterpret_cast<const void *const *>(Storage)));
421
19
    }
clang::DynTypedNode::DynCastPtrConverter<clang::TemplateSpecializationType, clang::Type>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
107
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
107
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
107
          *reinterpret_cast<const void *const *>(Storage)));
421
107
    }
clang::DynTypedNode::DynCastPtrConverter<clang::CXXOperatorCallExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
3.89k
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
3.89k
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
3.89k
          *reinterpret_cast<const void *const *>(Storage)));
421
3.89k
    }
clang::DynTypedNode::DynCastPtrConverter<clang::CXXRewrittenBinaryOperator, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
518
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
518
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
518
          *reinterpret_cast<const void *const *>(Storage)));
421
518
    }
clang::DynTypedNode::DynCastPtrConverter<clang::StmtExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
16
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
16
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
16
          *reinterpret_cast<const void *const *>(Storage)));
421
16
    }
clang::DynTypedNode::DynCastPtrConverter<clang::DoStmt, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
2
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
2
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
2
          *reinterpret_cast<const void *const *>(Storage)));
421
2
    }
clang::DynTypedNode::DynCastPtrConverter<clang::WhileStmt, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
7
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
7
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
7
          *reinterpret_cast<const void *const *>(Storage)));
421
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
417
38
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
38
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
38
          *reinterpret_cast<const void *const *>(Storage)));
421
38
    }
clang::DynTypedNode::DynCastPtrConverter<clang::AddrLabelExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
8
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
8
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
8
          *reinterpret_cast<const void *const *>(Storage)));
421
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
417
212
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
212
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
212
          *reinterpret_cast<const void *const *>(Storage)));
421
212
    }
clang::DynTypedNode::DynCastPtrConverter<clang::ArrayType, clang::Type>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
144
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
144
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
144
          *reinterpret_cast<const void *const *>(Storage)));
421
144
    }
clang::DynTypedNode::DynCastPtrConverter<clang::ComplexType, clang::Type>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
56
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
56
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
56
          *reinterpret_cast<const void *const *>(Storage)));
421
56
    }
clang::DynTypedNode::DynCastPtrConverter<clang::UnresolvedMemberExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
42
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
42
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
42
          *reinterpret_cast<const void *const *>(Storage)));
421
42
    }
clang::DynTypedNode::DynCastPtrConverter<clang::SubstTemplateTypeParmType, clang::Type>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
4
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
4
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
4
          *reinterpret_cast<const void *const *>(Storage)));
421
4
    }
clang::DynTypedNode::DynCastPtrConverter<clang::ConstantArrayType, clang::Type>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
148
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
148
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
148
          *reinterpret_cast<const void *const *>(Storage)));
421
148
    }
clang::DynTypedNode::DynCastPtrConverter<clang::OpaqueValueExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
46
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
46
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
46
          *reinterpret_cast<const void *const *>(Storage)));
421
46
    }
clang::DynTypedNode::DynCastPtrConverter<clang::CXXFunctionalCastExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
8
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
8
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
8
          *reinterpret_cast<const void *const *>(Storage)));
421
8
    }
clang::DynTypedNode::DynCastPtrConverter<clang::CXXTemporaryObjectExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
8
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
8
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
8
          *reinterpret_cast<const void *const *>(Storage)));
421
8
    }
clang::DynTypedNode::DynCastPtrConverter<clang::CompoundLiteralExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
21
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
21
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
21
          *reinterpret_cast<const void *const *>(Storage)));
421
21
    }
clang::DynTypedNode::DynCastPtrConverter<clang::DeclaratorDecl, clang::Decl>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
26
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
26
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
26
          *reinterpret_cast<const void *const *>(Storage)));
421
26
    }
clang::DynTypedNode::DynCastPtrConverter<clang::ObjCPropertyDecl, clang::Decl>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
2
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
2
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
2
          *reinterpret_cast<const void *const *>(Storage)));
421
2
    }
clang::DynTypedNode::DynCastPtrConverter<clang::DecltypeType, clang::Type>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
16
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
16
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
16
          *reinterpret_cast<const void *const *>(Storage)));
421
16
    }
Unexecuted instantiation: clang::DynTypedNode::DynCastPtrConverter<clang::UsingType, clang::Type>::getUnchecked(clang::ASTNodeKind, void const*)
clang::DynTypedNode::DynCastPtrConverter<clang::AtomicType, clang::Type>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
56
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
56
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
56
          *reinterpret_cast<const void *const *>(Storage)));
421
56
    }
clang::DynTypedNode::DynCastPtrConverter<clang::ParenType, clang::Type>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
58
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
58
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
58
          *reinterpret_cast<const void *const *>(Storage)));
421
58
    }
clang::DynTypedNode::DynCastPtrConverter<clang::CXXConversionDecl, clang::Decl>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
50
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
50
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
50
          *reinterpret_cast<const void *const *>(Storage)));
421
50
    }
clang::DynTypedNode::DynCastPtrConverter<clang::CXXDeductionGuideDecl, clang::Decl>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
188
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
188
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
188
          *reinterpret_cast<const void *const *>(Storage)));
421
188
    }
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
417
307
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
307
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
307
          *reinterpret_cast<const void *const *>(Storage)));
421
307
    }
clang::DynTypedNode::DynCastPtrConverter<clang::CXXTypeidExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
2
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
2
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
2
          *reinterpret_cast<const void *const *>(Storage)));
421
2
    }
clang::DynTypedNode::DynCastPtrConverter<clang::GenericSelectionExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
9
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
9
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
9
          *reinterpret_cast<const void *const *>(Storage)));
421
9
    }
clang::DynTypedNode::DynCastPtrConverter<clang::ParenListExpr, clang::Stmt>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
417
30
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
418
30
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
419
0
      return *cast<T>(static_cast<const BaseT *>(
420
30
          *reinterpret_cast<const void *const *>(Storage)));
421
30
    }
422
2.41M
    static DynTypedNode create(const BaseT &Node) {
423
2.41M
      DynTypedNode Result;
424
2.41M
      Result.NodeKind = ASTNodeKind::getFromNode(Node);
425
2.41M
      new (&Result.Storage) const void *(&Node);
426
2.41M
      return Result;
427
2.41M
    }
clang::DynTypedNode::DynCastPtrConverter<clang::Decl, clang::Decl>::create(clang::Decl const&)
Line
Count
Source
422
1.04M
    static DynTypedNode create(const BaseT &Node) {
423
1.04M
      DynTypedNode Result;
424
1.04M
      Result.NodeKind = ASTNodeKind::getFromNode(Node);
425
1.04M
      new (&Result.Storage) const void *(&Node);
426
1.04M
      return Result;
427
1.04M
    }
clang::DynTypedNode::DynCastPtrConverter<clang::Stmt, clang::Stmt>::create(clang::Stmt const&)
Line
Count
Source
422
639k
    static DynTypedNode create(const BaseT &Node) {
423
639k
      DynTypedNode Result;
424
639k
      Result.NodeKind = ASTNodeKind::getFromNode(Node);
425
639k
      new (&Result.Storage) const void *(&Node);
426
639k
      return Result;
427
639k
    }
clang::DynTypedNode::DynCastPtrConverter<clang::CXXRewrittenBinaryOperator, clang::Stmt>::create(clang::Stmt const&)
Line
Count
Source
422
52
    static DynTypedNode create(const BaseT &Node) {
423
52
      DynTypedNode Result;
424
52
      Result.NodeKind = ASTNodeKind::getFromNode(Node);
425
52
      new (&Result.Storage) const void *(&Node);
426
52
      return Result;
427
52
    }
clang::DynTypedNode::DynCastPtrConverter<clang::Expr, clang::Stmt>::create(clang::Stmt const&)
Line
Count
Source
422
640k
    static DynTypedNode create(const BaseT &Node) {
423
640k
      DynTypedNode Result;
424
640k
      Result.NodeKind = ASTNodeKind::getFromNode(Node);
425
640k
      new (&Result.Storage) const void *(&Node);
426
640k
      return Result;
427
640k
    }
clang::DynTypedNode::DynCastPtrConverter<clang::Attr, clang::Attr>::create(clang::Attr const&)
Line
Count
Source
422
2.42k
    static DynTypedNode create(const BaseT &Node) {
423
2.42k
      DynTypedNode Result;
424
2.42k
      Result.NodeKind = ASTNodeKind::getFromNode(Node);
425
2.42k
      new (&Result.Storage) const void *(&Node);
426
2.42k
      return Result;
427
2.42k
    }
clang::DynTypedNode::DynCastPtrConverter<clang::TranslationUnitDecl, clang::Decl>::create(clang::Decl const&)
Line
Count
Source
422
468
    static DynTypedNode create(const BaseT &Node) {
423
468
      DynTypedNode Result;
424
468
      Result.NodeKind = ASTNodeKind::getFromNode(Node);
425
468
      new (&Result.Storage) const void *(&Node);
426
468
      return Result;
427
468
    }
clang::DynTypedNode::DynCastPtrConverter<clang::EnumConstantDecl, clang::Decl>::create(clang::Decl const&)
Line
Count
Source
422
15
    static DynTypedNode create(const BaseT &Node) {
423
15
      DynTypedNode Result;
424
15
      Result.NodeKind = ASTNodeKind::getFromNode(Node);
425
15
      new (&Result.Storage) const void *(&Node);
426
15
      return Result;
427
15
    }
clang::DynTypedNode::DynCastPtrConverter<clang::DeclRefExpr, clang::Stmt>::create(clang::Stmt const&)
Line
Count
Source
422
81
    static DynTypedNode create(const BaseT &Node) {
423
81
      DynTypedNode Result;
424
81
      Result.NodeKind = ASTNodeKind::getFromNode(Node);
425
81
      new (&Result.Storage) const void *(&Node);
426
81
      return Result;
427
81
    }
clang::DynTypedNode::DynCastPtrConverter<clang::CXXMethodDecl, clang::Decl>::create(clang::Decl const&)
Line
Count
Source
422
656
    static DynTypedNode create(const BaseT &Node) {
423
656
      DynTypedNode Result;
424
656
      Result.NodeKind = ASTNodeKind::getFromNode(Node);
425
656
      new (&Result.Storage) const void *(&Node);
426
656
      return Result;
427
656
    }
clang::DynTypedNode::DynCastPtrConverter<clang::CompoundStmt, clang::Stmt>::create(clang::Stmt const&)
Line
Count
Source
422
540
    static DynTypedNode create(const BaseT &Node) {
423
540
      DynTypedNode Result;
424
540
      Result.NodeKind = ASTNodeKind::getFromNode(Node);
425
540
      new (&Result.Storage) const void *(&Node);
426
540
      return Result;
427
540
    }
clang::DynTypedNode::DynCastPtrConverter<clang::UnaryOperator, clang::Stmt>::create(clang::Stmt const&)
Line
Count
Source
422
34
    static DynTypedNode create(const BaseT &Node) {
423
34
      DynTypedNode Result;
424
34
      Result.NodeKind = ASTNodeKind::getFromNode(Node);
425
34
      new (&Result.Storage) const void *(&Node);
426
34
      return Result;
427
34
    }
clang::DynTypedNode::DynCastPtrConverter<clang::ExplicitCastExpr, clang::Stmt>::create(clang::Stmt const&)
Line
Count
Source
422
110
    static DynTypedNode create(const BaseT &Node) {
423
110
      DynTypedNode Result;
424
110
      Result.NodeKind = ASTNodeKind::getFromNode(Node);
425
110
      new (&Result.Storage) const void *(&Node);
426
110
      return Result;
427
110
    }
clang::DynTypedNode::DynCastPtrConverter<clang::ObjCAutoreleasePoolStmt, clang::Stmt>::create(clang::Stmt const&)
Line
Count
Source
422
25
    static DynTypedNode create(const BaseT &Node) {
423
25
      DynTypedNode Result;
424
25
      Result.NodeKind = ASTNodeKind::getFromNode(Node);
425
25
      new (&Result.Storage) const void *(&Node);
426
25
      return Result;
427
25
    }
clang::DynTypedNode::DynCastPtrConverter<clang::ObjCMethodDecl, clang::Decl>::create(clang::Decl const&)
Line
Count
Source
422
18
    static DynTypedNode create(const BaseT &Node) {
423
18
      DynTypedNode Result;
424
18
      Result.NodeKind = ASTNodeKind::getFromNode(Node);
425
18
      new (&Result.Storage) const void *(&Node);
426
18
      return Result;
427
18
    }
clang::DynTypedNode::DynCastPtrConverter<clang::BlockDecl, clang::Decl>::create(clang::Decl const&)
Line
Count
Source
422
1
    static DynTypedNode create(const BaseT &Node) {
423
1
      DynTypedNode Result;
424
1
      Result.NodeKind = ASTNodeKind::getFromNode(Node);
425
1
      new (&Result.Storage) const void *(&Node);
426
1
      return Result;
427
1
    }
clang::DynTypedNode::DynCastPtrConverter<clang::ObjCMessageExpr, clang::Stmt>::create(clang::Stmt const&)
Line
Count
Source
422
35
    static DynTypedNode create(const BaseT &Node) {
423
35
      DynTypedNode Result;
424
35
      Result.NodeKind = ASTNodeKind::getFromNode(Node);
425
35
      new (&Result.Storage) const void *(&Node);
426
35
      return Result;
427
35
    }
clang::DynTypedNode::DynCastPtrConverter<clang::InitListExpr, clang::Stmt>::create(clang::Stmt const&)
Line
Count
Source
422
156
    static DynTypedNode create(const BaseT &Node) {
423
156
      DynTypedNode Result;
424
156
      Result.NodeKind = ASTNodeKind::getFromNode(Node);
425
156
      new (&Result.Storage) const void *(&Node);
426
156
      return Result;
427
156
    }
clang::DynTypedNode::DynCastPtrConverter<clang::ObjCInterfaceDecl, clang::Decl>::create(clang::Decl const&)
Line
Count
Source
422
2.35k
    static DynTypedNode create(const BaseT &Node) {
423
2.35k
      DynTypedNode Result;
424
2.35k
      Result.NodeKind = ASTNodeKind::getFromNode(Node);
425
2.35k
      new (&Result.Storage) const void *(&Node);
426
2.35k
      return Result;
427
2.35k
    }
clang::DynTypedNode::DynCastPtrConverter<clang::ClassTemplateDecl, clang::Decl>::create(clang::Decl const&)
Line
Count
Source
422
144
    static DynTypedNode create(const BaseT &Node) {
423
144
      DynTypedNode Result;
424
144
      Result.NodeKind = ASTNodeKind::getFromNode(Node);
425
144
      new (&Result.Storage) const void *(&Node);
426
144
      return Result;
427
144
    }
clang::DynTypedNode::DynCastPtrConverter<clang::VarDecl, clang::Decl>::create(clang::Decl const&)
Line
Count
Source
422
1.19k
    static DynTypedNode create(const BaseT &Node) {
423
1.19k
      DynTypedNode Result;
424
1.19k
      Result.NodeKind = ASTNodeKind::getFromNode(Node);
425
1.19k
      new (&Result.Storage) const void *(&Node);
426
1.19k
      return Result;
427
1.19k
    }
clang::DynTypedNode::DynCastPtrConverter<clang::NamedDecl, clang::Decl>::create(clang::Decl const&)
Line
Count
Source
422
6.36k
    static DynTypedNode create(const BaseT &Node) {
423
6.36k
      DynTypedNode Result;
424
6.36k
      Result.NodeKind = ASTNodeKind::getFromNode(Node);
425
6.36k
      new (&Result.Storage) const void *(&Node);
426
6.36k
      return Result;
427
6.36k
    }
clang::DynTypedNode::DynCastPtrConverter<clang::Type, clang::Type>::create(clang::Type const&)
Line
Count
Source
422
57.6k
    static DynTypedNode create(const BaseT &Node) {
423
57.6k
      DynTypedNode Result;
424
57.6k
      Result.NodeKind = ASTNodeKind::getFromNode(Node);
425
57.6k
      new (&Result.Storage) const void *(&Node);
426
57.6k
      return Result;
427
57.6k
    }
clang::DynTypedNode::DynCastPtrConverter<clang::CXXMemberCallExpr, clang::Stmt>::create(clang::Stmt const&)
Line
Count
Source
422
188
    static DynTypedNode create(const BaseT &Node) {
423
188
      DynTypedNode Result;
424
188
      Result.NodeKind = ASTNodeKind::getFromNode(Node);
425
188
      new (&Result.Storage) const void *(&Node);
426
188
      return Result;
427
188
    }
clang::DynTypedNode::DynCastPtrConverter<clang::FieldDecl, clang::Decl>::create(clang::Decl const&)
Line
Count
Source
422
225
    static DynTypedNode create(const BaseT &Node) {
423
225
      DynTypedNode Result;
424
225
      Result.NodeKind = ASTNodeKind::getFromNode(Node);
425
225
      new (&Result.Storage) const void *(&Node);
426
225
      return Result;
427
225
    }
clang::DynTypedNode::DynCastPtrConverter<clang::DeclStmt, clang::Stmt>::create(clang::Stmt const&)
Line
Count
Source
422
169
    static DynTypedNode create(const BaseT &Node) {
423
169
      DynTypedNode Result;
424
169
      Result.NodeKind = ASTNodeKind::getFromNode(Node);
425
169
      new (&Result.Storage) const void *(&Node);
426
169
      return Result;
427
169
    }
clang::DynTypedNode::DynCastPtrConverter<clang::CXXRecordDecl, clang::Decl>::create(clang::Decl const&)
Line
Count
Source
422
8.57k
    static DynTypedNode create(const BaseT &Node) {
423
8.57k
      DynTypedNode Result;
424
8.57k
      Result.NodeKind = ASTNodeKind::getFromNode(Node);
425
8.57k
      new (&Result.Storage) const void *(&Node);
426
8.57k
      return Result;
427
8.57k
    }
clang::DynTypedNode::DynCastPtrConverter<clang::ValueDecl, clang::Decl>::create(clang::Decl const&)
Line
Count
Source
422
75
    static DynTypedNode create(const BaseT &Node) {
423
75
      DynTypedNode Result;
424
75
      Result.NodeKind = ASTNodeKind::getFromNode(Node);
425
75
      new (&Result.Storage) const void *(&Node);
426
75
      return Result;
427
75
    }
clang::DynTypedNode::DynCastPtrConverter<clang::UsingShadowDecl, clang::Decl>::create(clang::Decl const&)
Line
Count
Source
422
2.10k
    static DynTypedNode create(const BaseT &Node) {
423
2.10k
      DynTypedNode Result;
424
2.10k
      Result.NodeKind = ASTNodeKind::getFromNode(Node);
425
2.10k
      new (&Result.Storage) const void *(&Node);
426
2.10k
      return Result;
427
2.10k
    }
clang::DynTypedNode::DynCastPtrConverter<clang::NamespaceDecl, clang::Decl>::create(clang::Decl const&)
Line
Count
Source
422
85
    static DynTypedNode create(const BaseT &Node) {
423
85
      DynTypedNode Result;
424
85
      Result.NodeKind = ASTNodeKind::getFromNode(Node);
425
85
      new (&Result.Storage) const void *(&Node);
426
85
      return Result;
427
85
    }
clang::DynTypedNode::DynCastPtrConverter<clang::SwitchCase, clang::Stmt>::create(clang::Stmt const&)
Line
Count
Source
422
23
    static DynTypedNode create(const BaseT &Node) {
423
23
      DynTypedNode Result;
424
23
      Result.NodeKind = ASTNodeKind::getFromNode(Node);
425
23
      new (&Result.Storage) const void *(&Node);
426
23
      return Result;
427
23
    }
clang::DynTypedNode::DynCastPtrConverter<clang::BindingDecl, clang::Decl>::create(clang::Decl const&)
Line
Count
Source
422
14
    static DynTypedNode create(const BaseT &Node) {
423
14
      DynTypedNode Result;
424
14
      Result.NodeKind = ASTNodeKind::getFromNode(Node);
425
14
      new (&Result.Storage) const void *(&Node);
426
14
      return Result;
427
14
    }
clang::DynTypedNode::DynCastPtrConverter<clang::FunctionDecl, clang::Decl>::create(clang::Decl const&)
Line
Count
Source
422
2.27k
    static DynTypedNode create(const BaseT &Node) {
423
2.27k
      DynTypedNode Result;
424
2.27k
      Result.NodeKind = ASTNodeKind::getFromNode(Node);
425
2.27k
      new (&Result.Storage) const void *(&Node);
426
2.27k
      return Result;
427
2.27k
    }
clang::DynTypedNode::DynCastPtrConverter<clang::OMPClause, clang::OMPClause>::create(clang::OMPClause const&)
Line
Count
Source
422
420
    static DynTypedNode create(const BaseT &Node) {
423
420
      DynTypedNode Result;
424
420
      Result.NodeKind = ASTNodeKind::getFromNode(Node);
425
420
      new (&Result.Storage) const void *(&Node);
426
420
      return Result;
427
420
    }
clang::DynTypedNode::DynCastPtrConverter<clang::ParmVarDecl, clang::Decl>::create(clang::Decl const&)
Line
Count
Source
422
699
    static DynTypedNode create(const BaseT &Node) {
423
699
      DynTypedNode Result;
424
699
      Result.NodeKind = ASTNodeKind::getFromNode(Node);
425
699
      new (&Result.Storage) const void *(&Node);
426
699
      return Result;
427
699
    }
clang::DynTypedNode::DynCastPtrConverter<clang::IntegerLiteral, clang::Stmt>::create(clang::Stmt const&)
Line
Count
Source
422
170
    static DynTypedNode create(const BaseT &Node) {
423
170
      DynTypedNode Result;
424
170
      Result.NodeKind = ASTNodeKind::getFromNode(Node);
425
170
      new (&Result.Storage) const void *(&Node);
426
170
      return Result;
427
170
    }
clang::DynTypedNode::DynCastPtrConverter<clang::CastExpr, clang::Stmt>::create(clang::Stmt const&)
Line
Count
Source
422
42
    static DynTypedNode create(const BaseT &Node) {
423
42
      DynTypedNode Result;
424
42
      Result.NodeKind = ASTNodeKind::getFromNode(Node);
425
42
      new (&Result.Storage) const void *(&Node);
426
42
      return Result;
427
42
    }
clang::DynTypedNode::DynCastPtrConverter<clang::ParenListExpr, clang::Stmt>::create(clang::Stmt const&)
Line
Count
Source
422
30
    static DynTypedNode create(const BaseT &Node) {
423
30
      DynTypedNode Result;
424
30
      Result.NodeKind = ASTNodeKind::getFromNode(Node);
425
30
      new (&Result.Storage) const void *(&Node);
426
30
      return Result;
427
30
    }
428
  };
429
430
  /// Converter that stores T* (by pointer).
431
  template <typename T> struct PtrConverter {
432
814
    static const T *get(ASTNodeKind NodeKind, const void *Storage) {
433
814
      if (ASTNodeKind::getFromNodeKind<T>().isSame(NodeKind))
434
62
        return &getUnchecked(NodeKind, Storage);
435
752
      return nullptr;
436
814
    }
clang::DynTypedNode::PtrConverter<clang::NestedNameSpecifier>::get(clang::ASTNodeKind, void const*)
Line
Count
Source
432
445
    static const T *get(ASTNodeKind NodeKind, const void *Storage) {
433
445
      if (ASTNodeKind::getFromNodeKind<T>().isSame(NodeKind))
434
45
        return &getUnchecked(NodeKind, Storage);
435
400
      return nullptr;
436
445
    }
clang::DynTypedNode::PtrConverter<clang::CXXCtorInitializer>::get(clang::ASTNodeKind, void const*)
Line
Count
Source
432
368
    static const T *get(ASTNodeKind NodeKind, const void *Storage) {
433
368
      if (ASTNodeKind::getFromNodeKind<T>().isSame(NodeKind))
434
17
        return &getUnchecked(NodeKind, Storage);
435
351
      return nullptr;
436
368
    }
clang::DynTypedNode::PtrConverter<clang::CXXBaseSpecifier>::get(clang::ASTNodeKind, void const*)
Line
Count
Source
432
1
    static const T *get(ASTNodeKind NodeKind, const void *Storage) {
433
1
      if (ASTNodeKind::getFromNodeKind<T>().isSame(NodeKind))
434
0
        return &getUnchecked(NodeKind, Storage);
435
1
      return nullptr;
436
1
    }
437
1.10k
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
438
1.10k
      assert(ASTNodeKind::getFromNodeKind<T>().isSame(NodeKind));
439
0
      return *static_cast<const T *>(
440
1.10k
          *reinterpret_cast<const void *const *>(Storage));
441
1.10k
    }
clang::DynTypedNode::PtrConverter<clang::NestedNameSpecifier>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
437
337
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
438
337
      assert(ASTNodeKind::getFromNodeKind<T>().isSame(NodeKind));
439
0
      return *static_cast<const T *>(
440
337
          *reinterpret_cast<const void *const *>(Storage));
441
337
    }
clang::DynTypedNode::PtrConverter<clang::CXXCtorInitializer>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
437
233
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
438
233
      assert(ASTNodeKind::getFromNodeKind<T>().isSame(NodeKind));
439
0
      return *static_cast<const T *>(
440
233
          *reinterpret_cast<const void *const *>(Storage));
441
233
    }
clang::DynTypedNode::PtrConverter<clang::CXXBaseSpecifier>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
437
530
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
438
530
      assert(ASTNodeKind::getFromNodeKind<T>().isSame(NodeKind));
439
0
      return *static_cast<const T *>(
440
530
          *reinterpret_cast<const void *const *>(Storage));
441
530
    }
442
2.26k
    static DynTypedNode create(const T &Node) {
443
2.26k
      DynTypedNode Result;
444
2.26k
      Result.NodeKind = ASTNodeKind::getFromNodeKind<T>();
445
2.26k
      new (&Result.Storage) const void *(&Node);
446
2.26k
      return Result;
447
2.26k
    }
clang::DynTypedNode::PtrConverter<clang::CXXBaseSpecifier>::create(clang::CXXBaseSpecifier const&)
Line
Count
Source
442
572
    static DynTypedNode create(const T &Node) {
443
572
      DynTypedNode Result;
444
572
      Result.NodeKind = ASTNodeKind::getFromNodeKind<T>();
445
572
      new (&Result.Storage) const void *(&Node);
446
572
      return Result;
447
572
    }
clang::DynTypedNode::PtrConverter<clang::NestedNameSpecifier>::create(clang::NestedNameSpecifier const&)
Line
Count
Source
442
1.33k
    static DynTypedNode create(const T &Node) {
443
1.33k
      DynTypedNode Result;
444
1.33k
      Result.NodeKind = ASTNodeKind::getFromNodeKind<T>();
445
1.33k
      new (&Result.Storage) const void *(&Node);
446
1.33k
      return Result;
447
1.33k
    }
clang::DynTypedNode::PtrConverter<clang::CXXCtorInitializer>::create(clang::CXXCtorInitializer const&)
Line
Count
Source
442
357
    static DynTypedNode create(const T &Node) {
443
357
      DynTypedNode Result;
444
357
      Result.NodeKind = ASTNodeKind::getFromNodeKind<T>();
445
357
      new (&Result.Storage) const void *(&Node);
446
357
      return Result;
447
357
    }
448
  };
449
450
  /// Converter that stores T (by value).
451
  template <typename T> struct ValueConverter {
452
6.00k
    static const T *get(ASTNodeKind NodeKind, const void *Storage) {
453
6.00k
      if (ASTNodeKind::getFromNodeKind<T>().isSame(NodeKind))
454
492
        return reinterpret_cast<const T *>(Storage);
455
5.51k
      return nullptr;
456
6.00k
    }
clang::DynTypedNode::ValueConverter<clang::TemplateArgument>::get(clang::ASTNodeKind, void const*)
Line
Count
Source
452
33
    static const T *get(ASTNodeKind NodeKind, const void *Storage) {
453
33
      if (ASTNodeKind::getFromNodeKind<T>().isSame(NodeKind))
454
25
        return reinterpret_cast<const T *>(Storage);
455
8
      return nullptr;
456
33
    }
clang::DynTypedNode::ValueConverter<clang::TemplateArgumentLoc>::get(clang::ASTNodeKind, void const*)
Line
Count
Source
452
29
    static const T *get(ASTNodeKind NodeKind, const void *Storage) {
453
29
      if (ASTNodeKind::getFromNodeKind<T>().isSame(NodeKind))
454
20
        return reinterpret_cast<const T *>(Storage);
455
9
      return nullptr;
456
29
    }
clang::DynTypedNode::ValueConverter<clang::TemplateName>::get(clang::ASTNodeKind, void const*)
Line
Count
Source
452
8
    static const T *get(ASTNodeKind NodeKind, const void *Storage) {
453
8
      if (ASTNodeKind::getFromNodeKind<T>().isSame(NodeKind))
454
0
        return reinterpret_cast<const T *>(Storage);
455
8
      return nullptr;
456
8
    }
clang::DynTypedNode::ValueConverter<clang::NestedNameSpecifierLoc>::get(clang::ASTNodeKind, void const*)
Line
Count
Source
452
5.63k
    static const T *get(ASTNodeKind NodeKind, const void *Storage) {
453
5.63k
      if (ASTNodeKind::getFromNodeKind<T>().isSame(NodeKind))
454
174
        return reinterpret_cast<const T *>(Storage);
455
5.46k
      return nullptr;
456
5.63k
    }
clang::DynTypedNode::ValueConverter<clang::QualType>::get(clang::ASTNodeKind, void const*)
Line
Count
Source
452
299
    static const T *get(ASTNodeKind NodeKind, const void *Storage) {
453
299
      if (ASTNodeKind::getFromNodeKind<T>().isSame(NodeKind))
454
273
        return reinterpret_cast<const T *>(Storage);
455
26
      return nullptr;
456
299
    }
Unexecuted instantiation: clang::DynTypedNode::ValueConverter<clang::ObjCProtocolLoc>::get(clang::ASTNodeKind, void const*)
457
398k
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
458
398k
      assert(ASTNodeKind::getFromNodeKind<T>().isSame(NodeKind));
459
0
      return *reinterpret_cast<const T *>(Storage);
460
398k
    }
clang::DynTypedNode::ValueConverter<clang::QualType>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
457
44.0k
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
458
44.0k
      assert(ASTNodeKind::getFromNodeKind<T>().isSame(NodeKind));
459
0
      return *reinterpret_cast<const T *>(Storage);
460
44.0k
    }
clang::DynTypedNode::ValueConverter<clang::NestedNameSpecifierLoc>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
457
349k
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
458
349k
      assert(ASTNodeKind::getFromNodeKind<T>().isSame(NodeKind));
459
0
      return *reinterpret_cast<const T *>(Storage);
460
349k
    }
clang::DynTypedNode::ValueConverter<clang::TemplateArgument>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
457
4.16k
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
458
4.16k
      assert(ASTNodeKind::getFromNodeKind<T>().isSame(NodeKind));
459
0
      return *reinterpret_cast<const T *>(Storage);
460
4.16k
    }
clang::DynTypedNode::ValueConverter<clang::LambdaCapture>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
457
298
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
458
298
      assert(ASTNodeKind::getFromNodeKind<T>().isSame(NodeKind));
459
0
      return *reinterpret_cast<const T *>(Storage);
460
298
    }
clang::DynTypedNode::ValueConverter<clang::TemplateArgumentLoc>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
457
42
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
458
42
      assert(ASTNodeKind::getFromNodeKind<T>().isSame(NodeKind));
459
0
      return *reinterpret_cast<const T *>(Storage);
460
42
    }
461
526k
    static DynTypedNode create(const T &Node) {
462
526k
      DynTypedNode Result;
463
526k
      Result.NodeKind = ASTNodeKind::getFromNodeKind<T>();
464
526k
      new (&Result.Storage) T(Node);
465
526k
      return Result;
466
526k
    }
clang::DynTypedNode::ValueConverter<clang::ObjCProtocolLoc>::create(clang::ObjCProtocolLoc const&)
Line
Count
Source
461
12
    static DynTypedNode create(const T &Node) {
462
12
      DynTypedNode Result;
463
12
      Result.NodeKind = ASTNodeKind::getFromNodeKind<T>();
464
12
      new (&Result.Storage) T(Node);
465
12
      return Result;
466
12
    }
clang::DynTypedNode::ValueConverter<clang::NestedNameSpecifierLoc>::create(clang::NestedNameSpecifierLoc const&)
Line
Count
Source
461
457k
    static DynTypedNode create(const T &Node) {
462
457k
      DynTypedNode Result;
463
457k
      Result.NodeKind = ASTNodeKind::getFromNodeKind<T>();
464
457k
      new (&Result.Storage) T(Node);
465
457k
      return Result;
466
457k
    }
clang::DynTypedNode::ValueConverter<clang::TemplateArgumentLoc>::create(clang::TemplateArgumentLoc const&)
Line
Count
Source
461
831
    static DynTypedNode create(const T &Node) {
462
831
      DynTypedNode Result;
463
831
      Result.NodeKind = ASTNodeKind::getFromNodeKind<T>();
464
831
      new (&Result.Storage) T(Node);
465
831
      return Result;
466
831
    }
clang::DynTypedNode::ValueConverter<clang::QualType>::create(clang::QualType const&)
Line
Count
Source
461
63.1k
    static DynTypedNode create(const T &Node) {
462
63.1k
      DynTypedNode Result;
463
63.1k
      Result.NodeKind = ASTNodeKind::getFromNodeKind<T>();
464
63.1k
      new (&Result.Storage) T(Node);
465
63.1k
      return Result;
466
63.1k
    }
clang::DynTypedNode::ValueConverter<clang::TemplateName>::create(clang::TemplateName const&)
Line
Count
Source
461
2
    static DynTypedNode create(const T &Node) {
462
2
      DynTypedNode Result;
463
2
      Result.NodeKind = ASTNodeKind::getFromNodeKind<T>();
464
2
      new (&Result.Storage) T(Node);
465
2
      return Result;
466
2
    }
clang::DynTypedNode::ValueConverter<clang::LambdaCapture>::create(clang::LambdaCapture const&)
Line
Count
Source
461
298
    static DynTypedNode create(const T &Node) {
462
298
      DynTypedNode Result;
463
298
      Result.NodeKind = ASTNodeKind::getFromNodeKind<T>();
464
298
      new (&Result.Storage) T(Node);
465
298
      return Result;
466
298
    }
clang::DynTypedNode::ValueConverter<clang::TemplateArgument>::create(clang::TemplateArgument const&)
Line
Count
Source
461
4.19k
    static DynTypedNode create(const T &Node) {
462
4.19k
      DynTypedNode Result;
463
4.19k
      Result.NodeKind = ASTNodeKind::getFromNodeKind<T>();
464
4.19k
      new (&Result.Storage) T(Node);
465
4.19k
      return Result;
466
4.19k
    }
467
  };
468
469
  /// Converter that stores nodes by value. It must be possible to dynamically
470
  /// cast the stored node within a type hierarchy without breaking (especially
471
  /// through slicing).
472
  template <typename T, typename BaseT,
473
            typename = std::enable_if_t<(sizeof(T) == sizeof(BaseT))>>
474
  struct DynCastValueConverter {
475
5.55k
    static const T *get(ASTNodeKind NodeKind, const void *Storage) {
476
5.55k
      if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind))
477
2.48k
        return &getUnchecked(NodeKind, Storage);
478
3.06k
      return nullptr;
479
5.55k
    }
480
1.69M
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
481
1.69M
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
482
0
      return *static_cast<const T *>(reinterpret_cast<const BaseT *>(Storage));
483
1.69M
    }
clang::DynTypedNode::DynCastValueConverter<clang::TypeLoc, clang::TypeLoc, void>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
480
1.69M
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
481
1.69M
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
482
0
      return *static_cast<const T *>(reinterpret_cast<const BaseT *>(Storage));
483
1.69M
    }
clang::DynTypedNode::DynCastValueConverter<clang::QualifiedTypeLoc, clang::TypeLoc, void>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
480
18
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
481
18
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
482
0
      return *static_cast<const T *>(reinterpret_cast<const BaseT *>(Storage));
483
18
    }
clang::DynTypedNode::DynCastValueConverter<clang::PointerTypeLoc, clang::TypeLoc, void>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
480
41
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
481
41
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
482
0
      return *static_cast<const T *>(reinterpret_cast<const BaseT *>(Storage));
483
41
    }
clang::DynTypedNode::DynCastValueConverter<clang::ReferenceTypeLoc, clang::TypeLoc, void>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
480
28
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
481
28
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
482
0
      return *static_cast<const T *>(reinterpret_cast<const BaseT *>(Storage));
483
28
    }
clang::DynTypedNode::DynCastValueConverter<clang::TemplateSpecializationTypeLoc, clang::TypeLoc, void>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
480
46
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
481
46
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
482
0
      return *static_cast<const T *>(reinterpret_cast<const BaseT *>(Storage));
483
46
    }
clang::DynTypedNode::DynCastValueConverter<clang::ElaboratedTypeLoc, clang::TypeLoc, void>::getUnchecked(clang::ASTNodeKind, void const*)
Line
Count
Source
480
4
    static const T &getUnchecked(ASTNodeKind NodeKind, const void *Storage) {
481
4
      assert(ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind));
482
0
      return *static_cast<const T *>(reinterpret_cast<const BaseT *>(Storage));
483
4
    }
484
1.26M
    static DynTypedNode create(const T &Node) {
485
1.26M
      DynTypedNode Result;
486
1.26M
      Result.NodeKind = ASTNodeKind::getFromNode(Node);
487
1.26M
      new (&Result.Storage) T(Node);
488
1.26M
      return Result;
489
1.26M
    }
490
  };
491
492
  ASTNodeKind NodeKind;
493
494
  /// Stores the data of the node.
495
  ///
496
  /// Note that we can store \c Decls, \c Stmts, \c Types,
497
  /// \c NestedNameSpecifiers and \c CXXCtorInitializer by pointer as they are
498
  /// guaranteed to be unique pointers pointing to dedicated storage in the AST.
499
  /// \c QualTypes, \c NestedNameSpecifierLocs, \c TypeLocs,
500
  /// \c TemplateArguments and \c TemplateArgumentLocs on the other hand do not
501
  /// have storage or unique pointers and thus need to be stored by value.
502
  llvm::AlignedCharArrayUnion<const void *, TemplateArgument,
503
                              TemplateArgumentLoc, NestedNameSpecifierLoc,
504
                              QualType, TypeLoc, ObjCProtocolLoc>
505
      Storage;
506
};
507
508
template <typename T>
509
struct DynTypedNode::BaseConverter<
510
    T, std::enable_if_t<std::is_base_of<Decl, T>::value>>
511
    : public DynCastPtrConverter<T, Decl> {};
512
513
template <typename T>
514
struct DynTypedNode::BaseConverter<
515
    T, std::enable_if_t<std::is_base_of<Stmt, T>::value>>
516
    : public DynCastPtrConverter<T, Stmt> {};
517
518
template <typename T>
519
struct DynTypedNode::BaseConverter<
520
    T, std::enable_if_t<std::is_base_of<Type, T>::value>>
521
    : public DynCastPtrConverter<T, Type> {};
522
523
template <typename T>
524
struct DynTypedNode::BaseConverter<
525
    T, std::enable_if_t<std::is_base_of<OMPClause, T>::value>>
526
    : public DynCastPtrConverter<T, OMPClause> {};
527
528
template <typename T>
529
struct DynTypedNode::BaseConverter<
530
    T, std::enable_if_t<std::is_base_of<Attr, T>::value>>
531
    : public DynCastPtrConverter<T, Attr> {};
532
533
template <>
534
struct DynTypedNode::BaseConverter<
535
    NestedNameSpecifier, void> : public PtrConverter<NestedNameSpecifier> {};
536
537
template <>
538
struct DynTypedNode::BaseConverter<
539
    CXXCtorInitializer, void> : public PtrConverter<CXXCtorInitializer> {};
540
541
template <>
542
struct DynTypedNode::BaseConverter<
543
    TemplateArgument, void> : public ValueConverter<TemplateArgument> {};
544
545
template <>
546
struct DynTypedNode::BaseConverter<TemplateArgumentLoc, void>
547
    : public ValueConverter<TemplateArgumentLoc> {};
548
549
template <>
550
struct DynTypedNode::BaseConverter<LambdaCapture, void>
551
    : public ValueConverter<LambdaCapture> {};
552
553
template <>
554
struct DynTypedNode::BaseConverter<
555
    TemplateName, void> : public ValueConverter<TemplateName> {};
556
557
template <>
558
struct DynTypedNode::BaseConverter<
559
    NestedNameSpecifierLoc,
560
    void> : public ValueConverter<NestedNameSpecifierLoc> {};
561
562
template <>
563
struct DynTypedNode::BaseConverter<QualType,
564
                                   void> : public ValueConverter<QualType> {};
565
566
template <typename T>
567
struct DynTypedNode::BaseConverter<
568
    T, std::enable_if_t<std::is_base_of<TypeLoc, T>::value>>
569
    : public DynCastValueConverter<T, TypeLoc> {};
570
571
template <>
572
struct DynTypedNode::BaseConverter<CXXBaseSpecifier, void>
573
    : public PtrConverter<CXXBaseSpecifier> {};
574
575
template <>
576
struct DynTypedNode::BaseConverter<ObjCProtocolLoc, void>
577
    : public ValueConverter<ObjCProtocolLoc> {};
578
579
// The only operation we allow on unsupported types is \c get.
580
// This allows to conveniently use \c DynTypedNode when having an arbitrary
581
// AST node that is not supported, but prevents misuse - a user cannot create
582
// a DynTypedNode from arbitrary types.
583
template <typename T, typename EnablerT> struct DynTypedNode::BaseConverter {
584
  static const T *get(ASTNodeKind NodeKind, const char Storage[]) {
585
    return NULL;
586
  }
587
};
588
589
} // end namespace clang
590
591
namespace llvm {
592
593
template <>
594
struct DenseMapInfo<clang::ASTNodeKind> : clang::ASTNodeKind::DenseMapInfo {};
595
596
template <>
597
struct DenseMapInfo<clang::DynTypedNode> : clang::DynTypedNode::DenseMapInfo {};
598
599
}  // end namespace llvm
600
601
#endif