1//===-- CompilerDecl.cpp --------------------------------------------------===//
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#include "lldb/Symbol/CompilerDecl.h"
10#include "lldb/Symbol/CompilerDeclContext.h"
11#include "lldb/Symbol/TypeSystem.h"
12
13using namespace lldb_private;
14
15ConstString CompilerDecl::GetName() const {
16  return m_type_system->DeclGetName(m_opaque_decl);
17}
18
19ConstString CompilerDecl::GetMangledName() const {
20  return m_type_system->DeclGetMangledName(m_opaque_decl);
21}
22
23CompilerDeclContext CompilerDecl::GetDeclContext() const {
24  return m_type_system->DeclGetDeclContext(m_opaque_decl);
25}
26
27CompilerType CompilerDecl::GetFunctionReturnType() const {
28  return m_type_system->DeclGetFunctionReturnType(m_opaque_decl);
29}
30
31size_t CompilerDecl::GetNumFunctionArguments() const {
32  return m_type_system->DeclGetFunctionNumArguments(m_opaque_decl);
33}
34
35CompilerType CompilerDecl::GetFunctionArgumentType(size_t arg_idx) const {
36  return m_type_system->DeclGetFunctionArgumentType(m_opaque_decl, arg_idx);
37}
38
39bool lldb_private::operator==(const lldb_private::CompilerDecl &lhs,
40                              const lldb_private::CompilerDecl &rhs) {
41  return lhs.GetTypeSystem() == rhs.GetTypeSystem() &&
42         lhs.GetOpaqueDecl() == rhs.GetOpaqueDecl();
43}
44
45bool lldb_private::operator!=(const lldb_private::CompilerDecl &lhs,
46                              const lldb_private::CompilerDecl &rhs) {
47  return lhs.GetTypeSystem() != rhs.GetTypeSystem() ||
48         lhs.GetOpaqueDecl() != rhs.GetOpaqueDecl();
49}
50
51std::vector<lldb_private::CompilerContext>
52CompilerDecl::GetCompilerContext() const {
53  return m_type_system->DeclGetCompilerContext(m_opaque_decl);
54}
55