diff options
Diffstat (limited to 'source/Symbol/Type.cpp')
-rw-r--r-- | source/Symbol/Type.cpp | 47 |
1 files changed, 25 insertions, 22 deletions
diff --git a/source/Symbol/Type.cpp b/source/Symbol/Type.cpp index 0927d55f1..23cda8a13 100644 --- a/source/Symbol/Type.cpp +++ b/source/Symbol/Type.cpp @@ -491,6 +491,7 @@ Type::GetDeclaration () const bool Type::ResolveClangType (ResolveState clang_type_resolve_state) { + // TODO: This needs to consider the correct type system to use. Type *encoding_type = nullptr; if (!m_clang_type.IsValid()) { @@ -511,20 +512,21 @@ Type::ResolveClangType (ResolveState clang_type_resolve_state) break; case eEncodingIsConstUID: - m_clang_type = encoding_type->GetClangForwardType().AddConstModifier(); + m_clang_type = ClangASTContext::AddConstModifier(encoding_type->GetClangForwardType()); break; case eEncodingIsRestrictUID: - m_clang_type = encoding_type->GetClangForwardType().AddRestrictModifier(); + m_clang_type = ClangASTContext::AddRestrictModifier(encoding_type->GetClangForwardType()); break; case eEncodingIsVolatileUID: - m_clang_type = encoding_type->GetClangForwardType().AddVolatileModifier(); + m_clang_type = ClangASTContext::AddVolatileModifier(encoding_type->GetClangForwardType()); break; case eEncodingIsTypedefUID: - m_clang_type = encoding_type->GetClangForwardType().CreateTypedefType (GetName().AsCString(), - GetSymbolFile()->GetClangDeclContextContainingTypeUID(GetID())); + m_clang_type = ClangASTContext::CreateTypedefType (encoding_type->GetClangForwardType(), + GetName().AsCString(), + GetSymbolFile()->GetClangDeclContextContainingTypeUID(GetID())); m_name.Clear(); break; @@ -533,11 +535,11 @@ Type::ResolveClangType (ResolveState clang_type_resolve_state) break; case eEncodingIsLValueReferenceUID: - m_clang_type = encoding_type->GetClangForwardType().GetLValueReferenceType(); + m_clang_type = ClangASTContext::GetLValueReferenceType(encoding_type->GetClangForwardType()); break; case eEncodingIsRValueReferenceUID: - m_clang_type = encoding_type->GetClangForwardType().GetRValueReferenceType(); + m_clang_type = ClangASTContext::GetRValueReferenceType(encoding_type->GetClangForwardType()); break; default: @@ -556,20 +558,21 @@ Type::ResolveClangType (ResolveState clang_type_resolve_state) break; case eEncodingIsConstUID: - m_clang_type = void_clang_type.AddConstModifier (); + m_clang_type = ClangASTContext::AddConstModifier (void_clang_type); break; case eEncodingIsRestrictUID: - m_clang_type = void_clang_type.AddRestrictModifier (); + m_clang_type = ClangASTContext::AddRestrictModifier (void_clang_type); break; case eEncodingIsVolatileUID: - m_clang_type = void_clang_type.AddVolatileModifier (); + m_clang_type = ClangASTContext::AddVolatileModifier (void_clang_type); break; case eEncodingIsTypedefUID: - m_clang_type = void_clang_type.CreateTypedefType (GetName().AsCString(), - GetSymbolFile()->GetClangDeclContextContainingTypeUID(GetID())); + m_clang_type = ClangASTContext::CreateTypedefType (void_clang_type, + GetName().AsCString(), + GetSymbolFile()->GetClangDeclContextContainingTypeUID(GetID())); break; case eEncodingIsPointerUID: @@ -577,11 +580,11 @@ Type::ResolveClangType (ResolveState clang_type_resolve_state) break; case eEncodingIsLValueReferenceUID: - m_clang_type = void_clang_type.GetLValueReferenceType (); + m_clang_type = ClangASTContext::GetLValueReferenceType(void_clang_type); break; case eEncodingIsRValueReferenceUID: - m_clang_type = void_clang_type.GetRValueReferenceType (); + m_clang_type = ClangASTContext::GetRValueReferenceType(void_clang_type); break; default: @@ -735,7 +738,7 @@ Type::IsRealObjCClass() // those don't have any information. We could extend this to only return true for "full // definitions" if we can figure that out. - if (m_clang_type.IsObjCObjectOrInterfaceType() && GetByteSize() != 0) + if (ClangASTContext::IsObjCObjectOrInterfaceType(m_clang_type) && GetByteSize() != 0) return true; else return false; @@ -1182,7 +1185,7 @@ TypeImpl::GetReferenceType () const { if (m_dynamic_type.IsValid()) { - return TypeImpl(m_static_type.GetReferenceType(), m_dynamic_type.GetLValueReferenceType()); + return TypeImpl(m_static_type.GetReferenceType(), ClangASTContext::GetLValueReferenceType(m_dynamic_type)); } return TypeImpl(m_static_type.GetReferenceType()); } @@ -1265,8 +1268,8 @@ TypeImpl::GetClangASTType (bool prefer_dynamic) return ClangASTType(); } -clang::ASTContext * -TypeImpl::GetClangASTContext (bool prefer_dynamic) +TypeSystem * +TypeImpl::GetTypeSystem (bool prefer_dynamic) { ModuleSP module_sp; if (CheckModule (module_sp)) @@ -1274,9 +1277,9 @@ TypeImpl::GetClangASTContext (bool prefer_dynamic) if (prefer_dynamic) { if (m_dynamic_type.IsValid()) - return m_dynamic_type.GetASTContext(); + return m_dynamic_type.GetTypeSystem(); } - return m_static_type.GetClangASTContext(); + return m_static_type.GetClangASTType().GetTypeSystem(); } return NULL; } @@ -1387,7 +1390,7 @@ TypeMemberFunctionImpl::GetReturnType () const if (m_type) return m_type.GetFunctionReturnType(); if (m_objc_method_decl) - return ClangASTType(&m_objc_method_decl->getASTContext(),m_objc_method_decl->getReturnType().getAsOpaquePtr()); + return ClangASTType(&m_objc_method_decl->getASTContext(), m_objc_method_decl->getReturnType()); return ClangASTType(); } @@ -1409,7 +1412,7 @@ TypeMemberFunctionImpl::GetArgumentAtIndex (size_t idx) const if (m_objc_method_decl) { if (idx < m_objc_method_decl->param_size()) - return ClangASTType(&m_objc_method_decl->getASTContext(), m_objc_method_decl->parameters()[idx]->getOriginalType().getAsOpaquePtr()); + return ClangASTType(&m_objc_method_decl->getASTContext(), m_objc_method_decl->parameters()[idx]->getOriginalType()); } return ClangASTType(); } |