diff options
Diffstat (limited to 'src/qmlcompiler/qqmljsimportvisitor.cpp')
| -rw-r--r-- | src/qmlcompiler/qqmljsimportvisitor.cpp | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/qmlcompiler/qqmljsimportvisitor.cpp b/src/qmlcompiler/qqmljsimportvisitor.cpp index 7ed433706f..8b9c94e2a9 100644 --- a/src/qmlcompiler/qqmljsimportvisitor.cpp +++ b/src/qmlcompiler/qqmljsimportvisitor.cpp @@ -107,6 +107,12 @@ inline QString getScopeName(const QQmlJSScope::ConstPtr &scope, QQmlJSScope::Sco || type == QQmlSA::ScopeType::AttachedPropertyScope) return scope->internalName(); + if (!scope->isComposite()) + return scope->internalName(); + + if (scope->isInlineComponent() && scope->inlineComponentName().has_value()) + return scope->inlineComponentName().value(); + return scope->baseTypeName(); } @@ -1000,16 +1006,12 @@ void QQmlJSImportVisitor::checkRequiredProperties() return false; }; - const auto warn = [this](const QList<QQmlJSScope::ConstPtr> scopesToSearch, - QQmlJSScope::ConstPtr prevRequiredScope, + const auto warn = [this](QQmlJSScope::ConstPtr prevRequiredScope, const QString &propName, QQmlJSScope::ConstPtr defScope, QQmlJSScope::ConstPtr requiredScope, QQmlJSScope::ConstPtr descendant) { - const QQmlJSScope::ConstPtr propertyScope = scopesToSearch.size() > 1 - ? scopesToSearch.at(scopesToSearch.size() - 2) - : QQmlJSScope::ConstPtr(); - + const auto &propertyScope = QQmlJSScope::ownerOfProperty(requiredScope, propName).scope; const QString propertyScopeName = !propertyScope.isNull() ? getScopeName(propertyScope, QQmlSA::ScopeType::QMLScope) : u"here"_s; @@ -1088,9 +1090,7 @@ void QQmlJSImportVisitor::checkRequiredProperties() if (requiredSetThroughAlias(scopesToSearch, requiredScope, propName)) continue; - warn(scopesToSearch, prevRequiredScope, propName, defScope, - requiredScope, descendant); - + warn(prevRequiredScope, propName, defScope, requiredScope, descendant); prevRequiredScope = requiredScope; } } |
