llvm/lldb/unittests/TestingSupport/Symbol/ClangTestUtils.h

//===- ClangTestUtils.h -----------------------------------------*- C++ -*-===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//

#ifndef LLDB_UNITTESTS_TESTINGSUPPORT_SYMBOL_CLANGTESTUTILS_H
#define LLDB_UNITTESTS_TESTINGSUPPORT_SYMBOL_CLANGTESTUTILS_H

#include "Plugins/ExpressionParser/Clang/ClangUtil.h"
#include "Plugins/TypeSystem/Clang/TypeSystemClang.h"
#include "lldb/Host/HostInfo.h"

namespace lldb_private {
namespace clang_utils {
inline clang::DeclarationName getDeclarationName(TypeSystemClang &ast,
                                                 llvm::StringRef name) {}

inline CompilerType createRecord(TypeSystemClang &ast, llvm::StringRef name) {}

/// Create a record with the given name and a field with the given type
/// and name.
inline CompilerType createRecordWithField(TypeSystemClang &ast,
                                          llvm::StringRef record_name,
                                          CompilerType field_type,
                                          llvm::StringRef field_name) {}

/// Simulates a Clang type system owned by a TypeSystemMap.
class TypeSystemClangHolder {};
  
/// Constructs a TypeSystemClang that contains a single RecordDecl that contains
/// a single FieldDecl. Utility class as this setup is a common starting point
/// for unit test that exercise the ASTImporter.
struct SourceASTWithRecord {};

} // namespace clang_utils
} // namespace lldb_private

#endif