6#include <private/qqmljsimportvisitor_p.h>
7#include <private/qqmljstyperesolver_p.h>
8#include <private/qqmljsmetatypes_p.h>
18 if (resolver->
equals(from, to))
46 for (
const auto &scope : literalScopes) {
47 const auto bindings = scope->ownPropertyBindings();
48 for (
const auto &binding : bindings) {
49 if (!binding.hasLiteral())
52 const QString propertyName = binding.propertyName();
59 if (!
property.isWritable() && !scope->hasOwnProperty(propertyName)) {
60 logger->
log(u
"Cannot assign to read-only property %1"_s.arg(propertyName),
66 resolver, binding.literalType(resolver),
property.type())) {
67 logger->
log(u
"Cannot assign literal of type %1 to %2"_s.arg(
const QQmlJSLogger * logger() const
QSet< QQmlJSScope::ConstPtr > literalScopesToCheck() const
void run(QQmlJSImportVisitor *visitor, QQmlJSTypeResolver *resolver)
void log(const QString &message, QQmlJS::LoggerWarningId id, const QQmlJS::SourceLocation &srcLocation, bool showContext=true, bool showFileName=true, const std::optional< QQmlJSFixSuggestion > &suggestion={}, const QString overrideFileName=QString())
static QString prettyName(QAnyStringView name)
bool equals(const QQmlJSScope::ConstPtr &a, const QQmlJSScope::ConstPtr &b) const
QQmlJSScope::ConstPtr stringType() const
bool isNumeric(const QQmlJSRegisterContent &type) const
QQmlJSScope::ConstPtr byteArrayType() const
QQmlJSScope::ConstPtr boolType() const
bool canConvertFromTo(const QQmlJSScope::ConstPtr &from, const QQmlJSScope::ConstPtr &to) const
QQmlJSScope::ConstPtr stringListType() const
QQmlJSScope::ConstPtr urlType() const
\macro QT_RESTRICTED_CAST_FROM_ASCII
Combined button and popup list for selecting options.
static bool canConvertForLiteralBinding(QQmlJSTypeResolver *resolver, const QQmlJSScope::ConstPtr &from, const QQmlJSScope::ConstPtr &to)
const QQmlJS::LoggerWarningId qmlReadOnlyProperty
const QQmlJS::LoggerWarningId qmlIncompatibleType