Fixed TypeMemberFunctionImpl to not use clang types directly but use the new CompilerDecl class to do the job in an abstract way.
Fixed a crash that would happen if you tried to get the name of a constructor or destructor by calling "getDeclName()" instead of calling getName() (which would assert and crash).

Added the ability to get function arguments names from SBFunction.

llvm-svn: 252622
diff --git a/lldb/source/Symbol/CompilerDecl.cpp b/lldb/source/Symbol/CompilerDecl.cpp
index f530b20..42e5fb0 100644
--- a/lldb/source/Symbol/CompilerDecl.cpp
+++ b/lldb/source/Symbol/CompilerDecl.cpp
@@ -25,12 +25,42 @@
     return m_type_system->DeclGetName(m_opaque_decl);
 }
 
+ConstString
+CompilerDecl::GetMangledName () const
+{
+    return m_type_system->DeclGetMangledName(m_opaque_decl);
+}
+
 lldb::VariableSP
 CompilerDecl::GetAsVariable ()
 {
     return m_type_system->DeclGetVariable(m_opaque_decl);
 }
 
+CompilerDeclContext
+CompilerDecl::GetDeclContext() const
+{
+    return m_type_system->DeclGetDeclContext(m_opaque_decl);
+}
+
+CompilerType
+CompilerDecl::GetFunctionReturnType() const
+{
+    return m_type_system->DeclGetFunctionReturnType(m_opaque_decl);
+}
+
+size_t
+CompilerDecl::GetNumFunctionArguments() const
+{
+    return m_type_system->DeclGetFunctionNumArguments(m_opaque_decl);
+}
+
+CompilerType
+CompilerDecl::GetFunctionArgumentType (size_t arg_idx) const
+{
+    return m_type_system->DeclGetFunctionArgumentType(m_opaque_decl, arg_idx);
+}
+
 bool
 lldb_private::operator == (const lldb_private::CompilerDecl &lhs, const lldb_private::CompilerDecl &rhs)
 {