kdevplatform/language/duchain
identifier.cpp
Go to the documentation of this file.
96 //The thread-safety is given because all threads will have the same result, and it will only be written once at the end.
133 //Should create an item where the information of the requested item is permanently stored. The pointer
162 using IdentifierRepository = RepositoryManager<ItemRepository<ConstantIdentifierPrivate, IdentifierItemRequest>, false>;
165 static IdentifierRepository identifierRepositoryObject(QStringLiteral("Identifier Repository"));
332 using QualifiedIdentifierRepository = RepositoryManager<ItemRepository<ConstantQualifiedIdentifierPrivate,
346 static const uint index = qualifiedidentifierRepository()->index(DynamicQualifiedIdentifierPrivate());
397 appendTemplateIdentifier(IndexedTypeIdentifier(IndexedQualifiedIdentifier(QualifiedIdentifier(*paramIt))));
585 void Identifier::setTemplateIdentifiers(const QList<IndexedTypeIdentifier>& templateIdentifiers)
1355 decrease(identifierRepository()->dynamicItemFromIndexSimple(rhs.m_index)->m_refCount, rhs.m_index);
1442 //qCDebug(LANGUAGE) << "(" << ++cnt << ")" << this << identifier().toString() << "inc" << index;
1444 increase(qualifiedidentifierRepository()->dynamicItemFromIndexSimple(m_index)->m_refCount, m_index);
1456 increase(qualifiedidentifierRepository()->dynamicItemFromIndexSimple(m_index)->m_refCount, m_index);
1469 increase(qualifiedidentifierRepository()->dynamicItemFromIndexSimple(m_index)->m_refCount, m_index);
1473 IndexedQualifiedIdentifier::IndexedQualifiedIdentifier(IndexedQualifiedIdentifier&& rhs) Q_DECL_NOEXCEPT
1479 IndexedQualifiedIdentifier& IndexedQualifiedIdentifier::operator=(const QualifiedIdentifier& id)
1487 decrease(qualifiedidentifierRepository()->dynamicItemFromIndexSimple(m_index)->m_refCount, m_index);
1492 increase(qualifiedidentifierRepository()->dynamicItemFromIndexSimple(m_index)->m_refCount, m_index);
1500 IndexedQualifiedIdentifier& IndexedQualifiedIdentifier::operator=(const IndexedQualifiedIdentifier& rhs)
1508 decrease(qualifiedidentifierRepository()->dynamicItemFromIndexSimple(m_index)->m_refCount, m_index);
1513 increase(qualifiedidentifierRepository()->dynamicItemFromIndexSimple(m_index)->m_refCount, m_index);
1521 IndexedQualifiedIdentifier& IndexedQualifiedIdentifier::operator=(IndexedQualifiedIdentifier&& rhs) Q_DECL_NOEXCEPT
1527 decrease(qualifiedidentifierRepository()->dynamicItemFromIndexSimple(m_index)->m_refCount, m_index);
1532 decrease(qualifiedidentifierRepository()->dynamicItemFromIndexSimple(rhs.m_index)->m_refCount, rhs.m_index);
1542 increase(qualifiedidentifierRepository()->dynamicItemFromIndexSimple(m_index)->m_refCount, m_index);
1554 decrease(qualifiedidentifierRepository()->dynamicItemFromIndexSimple(m_index)->m_refCount, m_index);
~QualifiedIdentifier()
Definition: identifier.cpp:772
void clearTemplateIdentifiers()
Definition: identifier.cpp:567
void append(const T &value)
IndexedQualifiedIdentifier & operator=(const QualifiedIdentifier &id)
Definition: identifier.cpp:1479
#define FOREACH_FUNCTION_STATIC(item, container)
This file contains macros and classes that can be used to conveniently implement classes that store t...
Definition: appendedlist_static.h:45
QStringList toStringList(IdentifierStringFormattingOptions options=NoOptions) const
Definition: identifier.cpp:778
static IdentifierRepository & identifierRepository()
Definition: identifier.cpp:163
#define APPENDED_LIST_FIRST_STATIC(type, name)
Definition: appendedlist_static.h:66
bool operator!=(const QualifiedIdentifier &rhs) const
Definition: identifier.cpp:920
QualifiedIdentifier()
Definition: identifier.cpp:715
void setIsReference(bool)
Definition: identifier.cpp:1182
IndexedQualifiedIdentifier identifier() const
Definition: identifier.cpp:1424
QString prefix() const
Returns the text in front of the first opening-paren(if none found then the whole text)
Definition: stringhelpers.cpp:609
void appendTemplateIdentifier(const IndexedTypeIdentifier &identifier)
Definition: identifier.cpp:561
QualifiedIdentifierPrivate< true > DynamicQualifiedIdentifierPrivate
Definition: identifier.cpp:271
uint templateIdentifiersCount() const
Definition: identifier.cpp:553
Removes explicit global prefix from the result.
Definition: identifier.h:139
QDebug & nospace()
QString trimmed() const
Can be used to iterate through different kinds of parameters, for example template-parameters.
Definition: stringhelpers.h:110
static const ConstantIdentifierPrivate * emptyConstantIdentifierPrivate()
Definition: identifier.cpp:175
QualifiedIdentifier merge(const QualifiedIdentifier &base) const
Definition: identifier.cpp:824
void setIsConstant(bool)
Definition: identifier.cpp:1202
QDebug & space()
bool explicitlyGlobal() const
Definition: identifier.cpp:884
bool operator!=(const IndexedTypeIdentifier &rhs) const
Definition: identifier.cpp:1172
A helper-class to store an identifier by index in a type-safe way.
Definition: identifier.h:55
~IndexedQualifiedIdentifier()
Definition: identifier.cpp:1548
bool beginsWith(const QualifiedIdentifier &other) const
Definition: identifier.cpp:925
IndexedIdentifier indexedAt(int i) const
Definition: identifier.cpp:1114
#define END_APPENDED_LISTS_STATIC(predecessor)
Definition: appendedlist_static.h:86
A helper-class to store an identifier by index in a type-safe way.
Definition: identifier.h:95
IdentifierPrivate< false > ConstantIdentifierPrivate
Definition: identifier.cpp:108
bool operator==(const Identifier &rhs) const
Definition: identifier.cpp:611
void setIsVolatile(bool)
Definition: identifier.cpp:1212
void reserve(int alloc)
void setIsExpression(bool)
Set the expression-flag, that can be retrieved by isExpression().
Definition: identifier.cpp:876
int size() const
QString toString(IdentifierStringFormattingOptions options=NoOptions) const
Definition: identifier.cpp:1245
void setExplicitlyGlobal(bool eg)
Definition: identifier.cpp:893
QualifiedIdentifier identifier() const
Definition: identifier.cpp:1568
QualifiedIdentifier mid(int pos, int len=-1) const
Definition: identifier.cpp:1089
const IndexedString identifier() const
Definition: identifier.cpp:520
QualifiedIdentifierPrivate< true > * dd
Definition: identifier.h:370
Identifier & operator=(const Identifier &rhs)
Definition: identifier.cpp:411
bool operator==(const IndexedIdentifier &rhs) const
Definition: identifier.cpp:1387
int length() const
static QualifiedIdentifierRepository & qualifiedidentifierRepository()
Definition: identifier.cpp:335
bool isConstPointer(int depthNumber) const
Whether the target of pointer 'depthNumber' is constant.
Definition: identifier.cpp:1232
void setIdentifier(const IndexedQualifiedIdentifier &id)
Definition: identifier.cpp:1429
bool sameIdentifiers(const QualifiedIdentifier &rhs) const
Definition: identifier.cpp:901
int pointerDepth() const
Definition: identifier.cpp:1217
friend class QualifiedIdentifier
Definition: identifier.h:152
RepositoryManager< ItemRepository< ConstantIdentifierPrivate, IdentifierItemRequest >, false > IdentifierRepository
Definition: identifier.cpp:162
IndexedQualifiedIdentifier()
Definition: identifier.cpp:1434
QString join(const QString &separator) const
void setTemplateIdentifiers(const QList< IndexedTypeIdentifier > &templateIdentifiers)
Definition: identifier.cpp:585
const QualifiedIdentifierPrivate< false > * cd
Definition: identifier.h:371
QString toString(IdentifierStringFormattingOptions options=NoOptions) const
Definition: identifier.cpp:798
IndexedTypeIdentifier templateIdentifier(int num) const
Definition: identifier.cpp:545
void push(const IndexedIdentifier &id)
Append id to this qualified identifier.
Definition: identifier.cpp:995
RepositoryManager< ItemRepository< ConstantQualifiedIdentifierPrivate, QualifiedIdentifierItemRequest >, false > QualifiedIdentifierRepository
Definition: identifier.cpp:333
IndexedIdentifier indexedFirst() const
Definition: identifier.cpp:1062
QualifiedIdentifierPrivate< false > ConstantQualifiedIdentifierPrivate
Definition: identifier.cpp:272
QString toString(IdentifierStringFormattingOptions options=NoOptions) const
Definition: identifier.cpp:594
void setIsConstPointer(int depthNumber, bool constant)
Definition: identifier.cpp:1237
Removes template information from the result.
Definition: identifier.h:143
bool operator!=(const IndexedIdentifier &rhs) const
Definition: identifier.cpp:1392
IndexedTypeIdentifier(const IndexedQualifiedIdentifier &identifier=IndexedQualifiedIdentifier())
Variables like pointerDepth, isReference, etc.
Definition: identifier.cpp:1267
IdentifierPrivate< true > DynamicIdentifierPrivate
Definition: identifier.cpp:107
IndexedIdentifier & operator=(const Identifier &id)
Definition: identifier.cpp:1328
bool operator==(const QualifiedIdentifier &rhs) const
The comparison-operators do not respect explicitlyGlobal and isExpression, they only respect the real...
Definition: identifier.cpp:913
Definition: abstractfunctiondeclaration.cpp:27
uint hash() const
The hash does not respect explicitlyGlobal, only the real scope.
Definition: identifier.cpp:959
#define START_APPENDED_LISTS_STATIC(selftype)
Definition: appendedlist_static.h:50
QualifiedIdentifier operator+(const QualifiedIdentifier &rhs) const
Definition: identifier.cpp:831
static uint emptyConstantQualifiedIdentifierPrivateIndex()
Definition: identifier.cpp:344
void setUnique(int token)
If token is non-zero, turns this Identifier into the special per-document unique identifier.
Definition: identifier.cpp:512
IndexedIdentifier indexedLast() const
Definition: identifier.cpp:1075
QualifiedIdentifier & operator+=(const QualifiedIdentifier &rhs)
Definition: identifier.cpp:836
void setPointerDepth(int)
Sets the pointer-depth to the specified count.
Definition: identifier.cpp:1222
QDebug operator<<(QDebug s, const KDevelop::Identifier &identifier)
{q,k}Debug() stream operator: Writes the Identifier to the debug output.
Definition: identifier.cpp:1587
QualifiedIdentifier & operator=(const QualifiedIdentifier &rhs)
Definition: identifier.cpp:744
static const ConstantQualifiedIdentifierPrivate * emptyConstantQualifiedIdentifierPrivate()
Definition: identifier.cpp:350
static uint emptyConstantIdentifierPrivateIndex()
Definition: identifier.cpp:169
bool operator!=(const Identifier &rhs) const
Definition: identifier.cpp:616
bool operator==(const IndexedTypeIdentifier &rhs) const
The comparison-operators do not respect explicitlyGlobal and isExpression, they only respect the real...
Definition: identifier.cpp:1161
void setIdentifier(const QString &identifier)
Definition: identifier.cpp:528
bool operator==(const IndexedQualifiedIdentifier &rhs) const
Definition: identifier.cpp:1558
bool nameEquals(const Identifier &rhs) const
Comparison ignoring the template-identifiers.
Definition: identifier.cpp:468
This file is part of the KDE documentation.
Documentation copyright © 1996-2021 The KDE developers.
Generated on Sun Mar 7 2021 23:29:30 by doxygen 1.8.16 written by Dimitri van Heesch, © 1997-2006
Documentation copyright © 1996-2021 The KDE developers.
Generated on Sun Mar 7 2021 23:29:30 by doxygen 1.8.16 written by Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.