Coverage Report

Created: 2021-09-21 08:58

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