aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSami Shalayel <sami.shalayel@qt.io>2023-10-04 14:22:20 +0200
committerSami Shalayel <sami.shalayel@qt.io>2023-10-16 18:28:47 +0200
commitf74fa49f85f2e53cf4e1c1be932edf4615b08ec7 (patch)
treea124e78ad98c1a8beba6e8237232a673442fae04 /src
parent0a0f6637c64a4c6bc9180b0d926242137f23ef28 (diff)
qmllsutils: use QQmlJSScope::ConstPtr instead of raw pointers
Replace the use of QQmlJSScope* with QQmlJSScope::ConstPtr or const QQmlJSScope::ConstPtr&. Change-Id: I07f35cbcc08ce1cb1cd07a9aff0d4721b7f45128 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/qmlls/qqmllsutils.cpp33
1 files changed, 16 insertions, 17 deletions
diff --git a/src/qmlls/qqmllsutils.cpp b/src/qmlls/qqmllsutils.cpp
index 3efc50318c..489ee26eb7 100644
--- a/src/qmlls/qqmllsutils.cpp
+++ b/src/qmlls/qqmllsutils.cpp
@@ -33,9 +33,9 @@ QT_BEGIN_NAMESPACE
Q_LOGGING_CATEGORY(QQmlLSUtilsLog, "qt.languageserver.utils")
Q_LOGGING_CATEGORY(QQmlLSCompletionLog, "qt.languageserver.completions")
-static QList<CompletionItem> methodCompletion(const QQmlJSScope *scope,
+static QList<CompletionItem> methodCompletion(const QQmlJSScope::ConstPtr &scope,
QDuplicateTracker<QString> *usedNames);
-static QList<CompletionItem> propertyCompletion(const QQmlJSScope *scope,
+static QList<CompletionItem> propertyCompletion(const QQmlJSScope::ConstPtr &scope,
QDuplicateTracker<QString> *usedNames);
/*!
\internal
@@ -1651,7 +1651,7 @@ bool QQmlLSUtils::isValidEcmaScriptIdentifier(QStringView identifier)
return eofToken == static_cast<int>(QQmlJS::Lexer::EOF_SYMBOL);
}
-static QList<CompletionItem> signalHandlerCompletion(const QQmlJSScope *scope,
+static QList<CompletionItem> signalHandlerCompletion(const QQmlJSScope::ConstPtr &scope,
QDuplicateTracker<QString> *usedNames)
{
QList<CompletionItem> res;
@@ -1696,8 +1696,8 @@ QList<CompletionItem> QQmlLSUtils::bindingsCompletions(const DomItem &containing
if (!scope)
return res;
- res << insertColonsForCompletions(propertyCompletion(scope.get(), nullptr));
- res << insertColonsForCompletions(signalHandlerCompletion(scope.get(), nullptr));
+ res << insertColonsForCompletions(propertyCompletion(scope, nullptr));
+ res << insertColonsForCompletions(signalHandlerCompletion(scope, nullptr));
return res;
}
@@ -1858,7 +1858,7 @@ QList<CompletionItem> QQmlLSUtils::reachableTypes(const DomItem &el, LocalSymbol
return res;
}
-static QList<CompletionItem> jsIdentifierCompletion(const QQmlJSScope *scope,
+static QList<CompletionItem> jsIdentifierCompletion(const QQmlJSScope::ConstPtr &scope,
QDuplicateTracker<QString> *usedNames)
{
QList<CompletionItem> result;
@@ -1884,7 +1884,7 @@ static QList<CompletionItem> jsIdentifierCompletion(const QQmlJSScope *scope,
return result;
}
-static QList<CompletionItem> methodCompletion(const QQmlJSScope *scope,
+static QList<CompletionItem> methodCompletion(const QQmlJSScope::ConstPtr &scope,
QDuplicateTracker<QString> *usedNames)
{
QList<CompletionItem> result;
@@ -1905,7 +1905,7 @@ static QList<CompletionItem> methodCompletion(const QQmlJSScope *scope,
return result;
}
-static QList<CompletionItem> propertyCompletion(const QQmlJSScope *scope,
+static QList<CompletionItem> propertyCompletion(const QQmlJSScope::ConstPtr &scope,
QDuplicateTracker<QString> *usedNames)
{
QList<CompletionItem> result;
@@ -1926,7 +1926,7 @@ static QList<CompletionItem> propertyCompletion(const QQmlJSScope *scope,
return result;
}
-static QList<CompletionItem> enumerationCompletion(const QQmlJSScope *scope,
+static QList<CompletionItem> enumerationCompletion(const QQmlJSScope::ConstPtr &scope,
QDuplicateTracker<QString> *usedNames)
{
QList<CompletionItem> result;
@@ -1974,7 +1974,7 @@ property var b: someItem.<complete World, ValueOne and ValueTwo here>
```
*/
-static QList<CompletionItem> enumerationValueCompletion(const QQmlJSScope *scope,
+static QList<CompletionItem> enumerationValueCompletion(const QQmlJSScope::ConstPtr &scope,
const QString &enumeratorName)
{
auto enumerator = scope->enumeration(enumeratorName);
@@ -2003,10 +2003,10 @@ collect all the JavaScript Identifiers from following code:
```
*/
template<auto F, typename... T>
-decltype(auto) collectFromAllJavaScriptParents(const QQmlJSScope *scope, T... args)
+decltype(auto) collectFromAllJavaScriptParents(const QQmlJSScope::ConstPtr &scope, T... args)
{
decltype(F(scope, args...)) result;
- for (const QQmlJSScope *current = scope; current; current = current->parentScope().get()) {
+ for (QQmlJSScope::ConstPtr current = scope; current; current = current->parentScope()) {
result << F(current, args...);
if (current->scopeType() == QQmlSA::ScopeType::QMLScope)
break;
@@ -2019,7 +2019,7 @@ QList<CompletionItem> QQmlLSUtils::scriptIdentifierCompletion(const DomItem &con
{
QList<CompletionItem> result;
QDuplicateTracker<QString> usedNames;
- const QQmlJSScope *nearestScope;
+ QQmlJSScope::ConstPtr nearestScope;
const bool hasQualifier = !ctx.base().isEmpty();
if (!hasQualifier) {
@@ -2031,14 +2031,14 @@ QList<CompletionItem> QQmlLSUtils::scriptIdentifierCompletion(const DomItem &con
auto scope = context.nearestSemanticScope();
if (!scope)
return result;
- nearestScope = scope.get();
+ nearestScope = scope;
result << enumerationCompletion(nearestScope, &usedNames);
} else {
auto expressionType = QQmlLSUtils::resolveExpressionType(context, ResolveOwnerType);
if (!expressionType || !expressionType->semanticScope)
return result;
- nearestScope = expressionType->semanticScope.get();
+ nearestScope = expressionType->semanticScope;
if (expressionType->name) {
// note: you only get enumeration values in qualified expressions, never alone
@@ -2071,8 +2071,7 @@ QList<CompletionItem> QQmlLSUtils::scriptIdentifierCompletion(const DomItem &con
return result;
const auto globals = resolver->jsGlobalObject();
- result << methodCompletion(globals.get(), &usedNames)
- << propertyCompletion(globals.get(), &usedNames);
+ result << methodCompletion(globals, &usedNames) << propertyCompletion(globals, &usedNames);
}
return result;