Clean up a bit of the type getting code where lldb_private:Type now has

    clang_type_t
    GetClangFullType(); // Get a completely defined clang type

    clang_type_t
    GetClangLayoutType(); // Get a clang type that can be used for type layout
    
    clang_type_t
    GetClangForwardType(); // A type that can be completed if needed, but is more efficient.
    



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125691 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/source/Symbol/Function.cpp b/source/Symbol/Function.cpp
index c2ad76b..160d455 100644
--- a/source/Symbol/Function.cpp
+++ b/source/Symbol/Function.cpp
@@ -399,39 +399,20 @@
     return m_type;
 }
 
-Type
-Function::GetReturnType ()
+clang_type_t
+Function::GetReturnClangType ()
 {
-    clang::QualType clang_type (clang::QualType::getFromOpaquePtr(GetType()->GetClangType()));
-    assert (clang_type->isFunctionType());
+    clang::QualType clang_type (clang::QualType::getFromOpaquePtr(GetType()->GetClangFullType()));
     const clang::FunctionType *function_type = dyn_cast<clang::FunctionType> (clang_type);
-    clang::QualType fun_return_qualtype = function_type->getResultType();
-
-    const ConstString fun_return_name(ClangASTType::GetClangTypeName(fun_return_qualtype.getAsOpaquePtr()));
-
-    SymbolContext sc;
-    CalculateSymbolContext (&sc);
-    // Null out everything below the CompUnit 'cause we don't actually know these.
-
-    size_t bit_size = ClangASTType::GetClangTypeBitWidth (GetType()->GetClangASTContext().getASTContext(), 
-                                                          fun_return_qualtype.getAsOpaquePtr());
-    Type return_type (0, 
-                      GetType()->GetSymbolFile(), 
-                      fun_return_name, 
-                      bit_size, 
-                      sc.comp_unit, 
-                      0, 
-                      Type::eEncodingIsSyntheticUID, 
-                      Declaration(), 
-                      fun_return_qualtype.getAsOpaquePtr(), 
-                      Type::eResolveStateFull);
-    return return_type;
+    if (function_type)
+        return function_type->getResultType().getAsOpaquePtr();
+    return NULL;
 }
 
 int
 Function::GetArgumentCount ()
 {
-    clang::QualType clang_type (clang::QualType::getFromOpaquePtr(GetType()->GetClangType()));
+    clang::QualType clang_type (clang::QualType::getFromOpaquePtr(GetType()->GetClangFullType()));
     assert (clang_type->isFunctionType());
     if (!clang_type->isFunctionProtoType())
         return -1;
@@ -443,67 +424,33 @@
     return 0;
 }
 
-const Type
+clang_type_t
 Function::GetArgumentTypeAtIndex (size_t idx)
 {
-    clang::QualType clang_type (clang::QualType::getFromOpaquePtr(GetType()->GetClangType()));
-   assert (clang_type->isFunctionType());
-   if (!clang_type->isFunctionProtoType())
-        return Type();
-
+    clang::QualType clang_type (clang::QualType::getFromOpaquePtr(GetType()->GetClangFullType()));
     const clang::FunctionProtoType *function_proto_type = dyn_cast<clang::FunctionProtoType>(clang_type);
-    if (function_proto_type != NULL)
+    if (function_proto_type)
     {
         unsigned num_args = function_proto_type->getNumArgs();
         if (idx >= num_args)
-            return Type();
-        clang::QualType arg_qualtype = (function_proto_type->arg_type_begin())[idx];
-
-        const ConstString arg_return_name(ClangASTType::GetClangTypeName(arg_qualtype.getAsOpaquePtr()));
-        SymbolContext sc;
-        CalculateSymbolContext (&sc);
-        // Null out everything below the CompUnit 'cause we don't actually know these.
-
-        size_t bit_size = ClangASTType::GetClangTypeBitWidth ((GetType()->GetClangASTContext().getASTContext()), arg_qualtype.getAsOpaquePtr());
-        Type arg_type (0, 
-                       GetType()->GetSymbolFile(), 
-                       arg_return_name, 
-                       bit_size, 
-                       sc.comp_unit, 
-                       0, 
-                       Type::eEncodingIsSyntheticUID, 
-                       Declaration(), 
-                       arg_qualtype.getAsOpaquePtr(), 
-                       Type::eResolveStateFull);
-        return arg_type;
+            return NULL;
+        
+        return (function_proto_type->arg_type_begin())[idx].getAsOpaquePtr();
     }
-
-    return Type();
-}
-
-const char *
-Function::GetArgumentNameAtIndex (size_t idx)
-{
-   const clang::Type *clang_type = static_cast<clang::QualType *>(GetType()->GetClangType())->getTypePtr();
-   assert (clang_type->isFunctionType());
-   if (!clang_type->isFunctionProtoType())
-       return NULL;
     return NULL;
 }
 
 bool
 Function::IsVariadic ()
 {
-   const clang::Type *clang_type = static_cast<clang::QualType *>(GetType()->GetClangType())->getTypePtr();
+   const clang::Type *clang_type = static_cast<clang::QualType *>(GetType()->GetClangFullType())->getTypePtr();
    assert (clang_type->isFunctionType());
    if (!clang_type->isFunctionProtoType())
         return false;
 
     const clang::FunctionProtoType *function_proto_type = dyn_cast<clang::FunctionProtoType>(clang_type);
-    if (function_proto_type != NULL)
-    {
+    if (function_proto_type)
         return function_proto_type->isVariadic();
-    }
 
     return false;
 }