1cfca06d7SDimitry Andric //===-- CompilerDecl.cpp --------------------------------------------------===// 2e81d9d49SDimitry Andric // 35f29bb8aSDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 45f29bb8aSDimitry Andric // See https://llvm.org/LICENSE.txt for license information. 55f29bb8aSDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6e81d9d49SDimitry Andric // 7e81d9d49SDimitry Andric //===----------------------------------------------------------------------===// 8e81d9d49SDimitry Andric 9e81d9d49SDimitry Andric #include "lldb/Symbol/CompilerDecl.h" 10e81d9d49SDimitry Andric #include "lldb/Symbol/CompilerDeclContext.h" 11e81d9d49SDimitry Andric #include "lldb/Symbol/TypeSystem.h" 12ac9a064cSDimitry Andric #include "lldb/Utility/Scalar.h" 13e81d9d49SDimitry Andric 14e81d9d49SDimitry Andric using namespace lldb_private; 15e81d9d49SDimitry Andric GetName() const1614f1b3e8SDimitry AndricConstString CompilerDecl::GetName() const { 17e81d9d49SDimitry Andric return m_type_system->DeclGetName(m_opaque_decl); 18e81d9d49SDimitry Andric } 19e81d9d49SDimitry Andric GetMangledName() const2014f1b3e8SDimitry AndricConstString CompilerDecl::GetMangledName() const { 21e81d9d49SDimitry Andric return m_type_system->DeclGetMangledName(m_opaque_decl); 22e81d9d49SDimitry Andric } 23e81d9d49SDimitry Andric GetDeclContext() const2414f1b3e8SDimitry AndricCompilerDeclContext CompilerDecl::GetDeclContext() const { 25e81d9d49SDimitry Andric return m_type_system->DeclGetDeclContext(m_opaque_decl); 26e81d9d49SDimitry Andric } 27e81d9d49SDimitry Andric GetType() const28ac9a064cSDimitry AndricCompilerType CompilerDecl::GetType() const { 29ac9a064cSDimitry Andric return m_type_system->GetTypeForDecl(m_opaque_decl); 30ac9a064cSDimitry Andric } 31ac9a064cSDimitry Andric GetFunctionReturnType() const3214f1b3e8SDimitry AndricCompilerType CompilerDecl::GetFunctionReturnType() const { 33e81d9d49SDimitry Andric return m_type_system->DeclGetFunctionReturnType(m_opaque_decl); 34e81d9d49SDimitry Andric } 35e81d9d49SDimitry Andric GetNumFunctionArguments() const3614f1b3e8SDimitry Andricsize_t CompilerDecl::GetNumFunctionArguments() const { 37e81d9d49SDimitry Andric return m_type_system->DeclGetFunctionNumArguments(m_opaque_decl); 38e81d9d49SDimitry Andric } 39e81d9d49SDimitry Andric GetFunctionArgumentType(size_t arg_idx) const4014f1b3e8SDimitry AndricCompilerType CompilerDecl::GetFunctionArgumentType(size_t arg_idx) const { 41e81d9d49SDimitry Andric return m_type_system->DeclGetFunctionArgumentType(m_opaque_decl, arg_idx); 42e81d9d49SDimitry Andric } 43e81d9d49SDimitry Andric operator ==(const lldb_private::CompilerDecl & lhs,const lldb_private::CompilerDecl & rhs)4414f1b3e8SDimitry Andricbool lldb_private::operator==(const lldb_private::CompilerDecl &lhs, 4514f1b3e8SDimitry Andric const lldb_private::CompilerDecl &rhs) { 4614f1b3e8SDimitry Andric return lhs.GetTypeSystem() == rhs.GetTypeSystem() && 4714f1b3e8SDimitry Andric lhs.GetOpaqueDecl() == rhs.GetOpaqueDecl(); 48e81d9d49SDimitry Andric } 49e81d9d49SDimitry Andric operator !=(const lldb_private::CompilerDecl & lhs,const lldb_private::CompilerDecl & rhs)5014f1b3e8SDimitry Andricbool lldb_private::operator!=(const lldb_private::CompilerDecl &lhs, 5114f1b3e8SDimitry Andric const lldb_private::CompilerDecl &rhs) { 5214f1b3e8SDimitry Andric return lhs.GetTypeSystem() != rhs.GetTypeSystem() || 5314f1b3e8SDimitry Andric lhs.GetOpaqueDecl() != rhs.GetOpaqueDecl(); 54e81d9d49SDimitry Andric } 55312c0ed1SDimitry Andric 56312c0ed1SDimitry Andric std::vector<lldb_private::CompilerContext> GetCompilerContext() const57312c0ed1SDimitry AndricCompilerDecl::GetCompilerContext() const { 58312c0ed1SDimitry Andric return m_type_system->DeclGetCompilerContext(m_opaque_decl); 59312c0ed1SDimitry Andric } 60ac9a064cSDimitry Andric GetConstantValue() const61ac9a064cSDimitry AndricScalar CompilerDecl::GetConstantValue() const { 62ac9a064cSDimitry Andric return m_type_system->DeclGetConstantValue(m_opaque_decl); 63ac9a064cSDimitry Andric } 64