1*d628cbb9SPaul Herman //===-- CompilerDecl.cpp ----------------------------------------*- C++ -*-===//
2*d628cbb9SPaul Herman //
3*d628cbb9SPaul Herman //                     The LLVM Compiler Infrastructure
4*d628cbb9SPaul Herman //
5*d628cbb9SPaul Herman // This file is distributed under the University of Illinois Open Source
6*d628cbb9SPaul Herman // License. See LICENSE.TXT for details.
7*d628cbb9SPaul Herman //
8*d628cbb9SPaul Herman //===----------------------------------------------------------------------===//
9*d628cbb9SPaul Herman 
10*d628cbb9SPaul Herman #include "lldb/Symbol/CompilerDecl.h"
11*d628cbb9SPaul Herman #include "lldb/Symbol/CompilerDeclContext.h"
12*d628cbb9SPaul Herman #include "lldb/Symbol/TypeSystem.h"
13*d628cbb9SPaul Herman 
14*d628cbb9SPaul Herman using namespace lldb_private;
15*d628cbb9SPaul Herman 
16*d628cbb9SPaul Herman bool
17*d628cbb9SPaul Herman CompilerDecl::IsClang () const
18*d628cbb9SPaul Herman {
19*d628cbb9SPaul Herman     return IsValid() && m_type_system->getKind() == TypeSystem::eKindClang;
20*d628cbb9SPaul Herman }
21*d628cbb9SPaul Herman 
22*d628cbb9SPaul Herman ConstString
23*d628cbb9SPaul Herman CompilerDecl::GetName() const
24*d628cbb9SPaul Herman {
25*d628cbb9SPaul Herman     return m_type_system->DeclGetName(m_opaque_decl);
26*d628cbb9SPaul Herman }
27*d628cbb9SPaul Herman 
28*d628cbb9SPaul Herman lldb::VariableSP
29*d628cbb9SPaul Herman CompilerDecl::GetAsVariable ()
30*d628cbb9SPaul Herman {
31*d628cbb9SPaul Herman     return m_type_system->DeclGetVariable(m_opaque_decl);
32*d628cbb9SPaul Herman }
33*d628cbb9SPaul Herman 
34*d628cbb9SPaul Herman bool
35*d628cbb9SPaul Herman lldb_private::operator == (const lldb_private::CompilerDecl &lhs, const lldb_private::CompilerDecl &rhs)
36*d628cbb9SPaul Herman {
37*d628cbb9SPaul Herman     return lhs.GetTypeSystem() == rhs.GetTypeSystem() && lhs.GetOpaqueDecl() == rhs.GetOpaqueDecl();
38*d628cbb9SPaul Herman }
39*d628cbb9SPaul Herman 
40*d628cbb9SPaul Herman 
41*d628cbb9SPaul Herman bool
42*d628cbb9SPaul Herman lldb_private::operator != (const lldb_private::CompilerDecl &lhs, const lldb_private::CompilerDecl &rhs)
43*d628cbb9SPaul Herman {
44*d628cbb9SPaul Herman     return lhs.GetTypeSystem() != rhs.GetTypeSystem() || lhs.GetOpaqueDecl() != rhs.GetOpaqueDecl();
45*d628cbb9SPaul Herman }
46*d628cbb9SPaul Herman 
47