// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "CollectVisitor.h"
#include "Config.h"
using namespace clang;
CollectVisitor::CollectVisitor() {
}
CollectVisitor::RecordVector& CollectVisitor::record_decls() {
return record_decls_;
}
CollectVisitor::MethodVector& CollectVisitor::trace_decls() {
return trace_decls_;
}
bool CollectVisitor::VisitCXXRecordDecl(CXXRecordDecl* record) {
if (record->hasDefinition() && record->isCompleteDefinition())
record_decls_.push_back(record);
return true;
}
bool CollectVisitor::VisitCXXMethodDecl(CXXMethodDecl* method) {
if (method->isThisDeclarationADefinition()) {
if (Config::IsTraceMethod(method)) {
trace_decls_.push_back(method);
}
}
return true;
}