1// Copyright 2015 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "CollectVisitor.h"
6
7#include "Config.h"
8
9using namespace clang;
10
11CollectVisitor::CollectVisitor() {
12}
13
14CollectVisitor::RecordVector& CollectVisitor::record_decls() {
15  return record_decls_;
16}
17
18CollectVisitor::MethodVector& CollectVisitor::trace_decls() {
19  return trace_decls_;
20}
21
22bool CollectVisitor::VisitCXXRecordDecl(CXXRecordDecl* record) {
23  if (record->hasDefinition() && record->isCompleteDefinition())
24    record_decls_.push_back(record);
25  return true;
26}
27
28bool CollectVisitor::VisitCXXMethodDecl(CXXMethodDecl* method) {
29  if (method->isThisDeclarationADefinition() && Config::IsTraceMethod(method))
30    trace_decls_.push_back(method);
31  return true;
32}
33