1 //===-- CompilerDeclContext.cpp ---------------------------------*- C++ -*-===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 10 #include "lldb/Symbol/CompilerDeclContext.h" 11 #include "lldb/Symbol/CompilerDecl.h" 12 #include "lldb/Symbol/TypeSystem.h" 13 #include <vector> 14 15 using namespace lldb_private; 16 17 std::vector<CompilerDecl> 18 CompilerDeclContext::FindDeclByName (ConstString name) 19 { 20 if (IsValid()) 21 return m_type_system->DeclContextFindDeclByName(m_opaque_decl_ctx, name); 22 else 23 return std::vector<CompilerDecl>(); 24 } 25 26 bool 27 CompilerDeclContext::IsClang () const 28 { 29 return IsValid() && m_type_system->getKind() == TypeSystem::eKindClang; 30 } 31 32 ConstString 33 CompilerDeclContext::GetName () const 34 { 35 if (IsValid()) 36 return m_type_system->DeclContextGetName(m_opaque_decl_ctx); 37 else 38 return ConstString(); 39 } 40 41 bool 42 CompilerDeclContext::IsStructUnionOrClass () const 43 { 44 if (IsValid()) 45 return m_type_system->DeclContextIsStructUnionOrClass(m_opaque_decl_ctx); 46 else 47 return false; 48 } 49 50 bool 51 CompilerDeclContext::IsClassMethod (lldb::LanguageType *language_ptr, 52 bool *is_instance_method_ptr, 53 ConstString *language_object_name_ptr) 54 { 55 if (IsValid()) 56 return m_type_system->DeclContextIsClassMethod (m_opaque_decl_ctx, 57 language_ptr, 58 is_instance_method_ptr, 59 language_object_name_ptr); 60 else 61 return false; 62 } 63 64 bool 65 lldb_private::operator == (const lldb_private::CompilerDeclContext &lhs, const lldb_private::CompilerDeclContext &rhs) 66 { 67 return lhs.GetTypeSystem() == rhs.GetTypeSystem() && lhs.GetOpaqueDeclContext() == rhs.GetOpaqueDeclContext(); 68 } 69 70 71 bool 72 lldb_private::operator != (const lldb_private::CompilerDeclContext &lhs, const lldb_private::CompilerDeclContext &rhs) 73 { 74 return lhs.GetTypeSystem() != rhs.GetTypeSystem() || lhs.GetOpaqueDeclContext() != rhs.GetOpaqueDeclContext(); 75 } 76