CppTools: Fix QStringRef and QSharedPointer related issues with Qt6

Task-number: QTCREATORBUG-24098
Change-Id: I97347ac3fb397fea8eee655e3cc4ee252c511885
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Eike Ziller
2020-09-15 15:27:32 +02:00
parent 432247357e
commit 242579099a
10 changed files with 26 additions and 16 deletions

View File

@@ -528,7 +528,7 @@ void CodeFormatter::recalculateStateAfter(const QTextBlock &block)
}
}
QStringRef tokenText = currentTokenText();
QStringView tokenText = currentTokenText();
if (tokenText == QLatin1String("ifdef")
|| tokenText == QLatin1String("if")
|| tokenText == QLatin1String("ifndef")) {
@@ -854,7 +854,7 @@ bool CodeFormatter::tryDeclaration()
return true;
case T_IDENTIFIER:
if (m_tokenIndex == 0) {
const QStringRef tokenText = currentTokenText();
const QStringView tokenText = currentTokenText();
if (tokenText.startsWith(QLatin1String("Q_"))
|| tokenText.startsWith(QLatin1String("QT_"))
|| tokenText.startsWith(QLatin1String("QML_"))
@@ -1009,9 +1009,11 @@ int CodeFormatter::column(int index) const
return col;
}
QStringRef CodeFormatter::currentTokenText() const
QStringView CodeFormatter::currentTokenText() const
{
return m_currentLine.midRef(m_currentToken.utf16charsBegin(), m_currentToken.utf16chars());
if (m_currentToken.utf16charsEnd() > m_currentLine.size())
return QStringView(m_currentLine).mid(m_currentToken.utf16charsBegin());
return QStringView(m_currentLine).mid(m_currentToken.utf16charsBegin(), m_currentToken.utf16chars());
}
void CodeFormatter::turnInto(int newState)