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 ConstString 42 CompilerDeclContext::GetScopeQualifiedName () const 43 { 44 if (IsValid()) 45 return m_type_system->DeclContextGetScopeQualifiedName(m_opaque_decl_ctx); 46 else 47 return ConstString(); 48 } 49 50 bool 51 CompilerDeclContext::IsStructUnionOrClass () const 52 { 53 if (IsValid()) 54 return m_type_system->DeclContextIsStructUnionOrClass(m_opaque_decl_ctx); 55 else 56 return false; 57 } 58 59 bool 60 CompilerDeclContext::IsClassMethod (lldb::LanguageType *language_ptr, 61 bool *is_instance_method_ptr, 62 ConstString *language_object_name_ptr) 63 { 64 if (IsValid()) 65 return m_type_system->DeclContextIsClassMethod (m_opaque_decl_ctx, 66 language_ptr, 67 is_instance_method_ptr, 68 language_object_name_ptr); 69 else 70 return false; 71 } 72 73 bool 74 lldb_private::operator == (const lldb_private::CompilerDeclContext &lhs, const lldb_private::CompilerDeclContext &rhs) 75 { 76 return lhs.GetTypeSystem() == rhs.GetTypeSystem() && lhs.GetOpaqueDeclContext() == rhs.GetOpaqueDeclContext(); 77 } 78 79 80 bool 81 lldb_private::operator != (const lldb_private::CompilerDeclContext &lhs, const lldb_private::CompilerDeclContext &rhs) 82 { 83 return lhs.GetTypeSystem() != rhs.GetTypeSystem() || lhs.GetOpaqueDeclContext() != rhs.GetOpaqueDeclContext(); 84 } 85