File indexing completed on 2024-06-16 04:23:17
0001 /* 0002 SPDX-FileCopyrightText: 2002-2005 Roberto Raggi <roberto@kdevelop.org> 0003 SPDX-FileCopyrightText: 2006 Adam Treat <treat@kde.org> 0004 SPDX-FileCopyrightText: 2006 Hamish Rodda <rodda@kde.org> 0005 SPDX-FileCopyrightText: 2007-2008 David Nolden <david.nolden.kdevelop@art-master.de> 0006 0007 SPDX-License-Identifier: LGPL-2.0-only 0008 */ 0009 0010 #include "identifiedtype.h" 0011 #include "../declaration.h" 0012 #include "../duchainpointer.h" 0013 #include "../declarationid.h" 0014 #include <debug.h> 0015 0016 namespace KDevelop { 0017 IdentifiedType::~IdentifiedType() 0018 { 0019 } 0020 0021 void IdentifiedType::clear() 0022 { 0023 idData()->m_id = DeclarationId(); 0024 } 0025 0026 bool IdentifiedType::equals(const IdentifiedType* rhs) const 0027 { 0028 bool ret = false; 0029 if (idData()->m_id == rhs->idData()->m_id) 0030 ret = true; 0031 0032 //qCDebug(LANGUAGE) << this << rhs << true; 0033 return ret; 0034 } 0035 0036 // QualifiedIdentifier IdentifiedType::identifier() const 0037 // { 0038 // return idData()->m_id ? idData()->m_iidData()->qualifiedIdentifier() : QualifiedIdentifier(); 0039 // } 0040 0041 QualifiedIdentifier IdentifiedType::qualifiedIdentifier() const 0042 { 0043 return idData()->m_id.qualifiedIdentifier(); 0044 } 0045 0046 uint IdentifiedType::hash() const 0047 { 0048 return idData()->m_id.hash(); 0049 } 0050 0051 DeclarationId IdentifiedType::declarationId() const 0052 { 0053 return idData()->m_id; 0054 } 0055 0056 void IdentifiedType::setDeclarationId(const DeclarationId& id) 0057 { 0058 idData()->m_id = id; 0059 } 0060 0061 Declaration* IdentifiedType::declaration(const TopDUContext* top) const 0062 { 0063 return idData()->m_id.declaration(top); 0064 } 0065 0066 KDevelop::DUContext* IdentifiedType::internalContext(const KDevelop::TopDUContext* top) const 0067 { 0068 Declaration* decl = declaration(top); 0069 if (decl) 0070 return decl->internalContext(); 0071 else 0072 return nullptr; 0073 } 0074 0075 void IdentifiedType::setDeclaration(Declaration* declaration) 0076 { 0077 if (declaration) 0078 idData()->m_id = declaration->id(); 0079 else 0080 idData()->m_id = DeclarationId(); 0081 } 0082 0083 // QString IdentifiedType::idMangled() const 0084 // { 0085 // return identifier().mangled(); 0086 // } 0087 }