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