6#include <private/qqmljsmemorypool_p.h>
8#include <QtCore/qloggingcategory.h>
9#include <QtCore/qfileinfo.h>
30 return u
"a boolean"_s;
38 return u
"a translation"_s;
40 return u
"a translation by id"_s;
44 return u
"an object"_s;
46 return u
"an attached property"_s;
48 return u
"a grouped property"_s;
54void QQmlJSFunctionInitializer::populateSignature(
66 signatureError(u
"Ignoring type annotations as requested "
67 "by pragma FunctionSignatureBehavior"_s);
80 if (
function->argumentTypes.isEmpty()) {
91 signatureError(u
"Cannot resolve the argument type %1."_s
98 signatureError(u
"Functions without type annotations won't be compiled"_s);
107 signatureError(u
"Type annotation %1 on signal handler "
108 "contradicts signal argument type %2"_s
110 function->argumentTypes[
i].descriptiveName()));
121 signatureError(u
"Cannot resolve return type %1"_s.arg(
127 i <
context->registerCountInFunction; ++
i) {
163 diagnose(u
"Binding is not a script binding, but %1."_s.arg(
172 if (signalName.
endsWith(u
"Changed"_s)
180 if (
method.methodType() == QQmlJSMetaMethodType::Signal) {
186 diagnose(u
"Cannot resolve the argument type %1."_s.arg(
203 diagnose(u
"Could not compile signal handler for %1: The signal does not exist"_s.arg(
211 diagnose(u
"Could not compile binding for %1: The property does not exist"_s.arg(
216 const auto property = m_objectType->
property(propertyName);
218 function.returnType = propertyType->isListProperty()
222 QString message = u
"Cannot resolve property type %1 for binding on %2."_s
228 message += u
" You may want use ID-based grouped properties here.";
251 pool.newString(
name),
nullptr, body);
static JNINativeMethod methods[]
qsizetype size() const noexcept
bool isEmpty() const noexcept
QQmlJSCompilePass::Function run(const QV4::Compiler::Context *context, const QString &propertyName, QQmlJS::AST::Node *astNode, const QmlIR::Binding &irBinding, QQmlJS::DiagnosticMessage *error)
bool isNameDeferred(const QString &name) const
QHash< QString, QQmlJSMetaMethod > methods() const
Returns all methods visible from this scope including those of base types and extensions.
QQmlJSMetaProperty property(const QString &name) const
bool hasProperty(const QString &name) const
const QQmlJSScopesById & objectsById() const
QQmlJSRegisterContent tracked(const QQmlJSRegisterContent &type) const
QQmlJSScope::ConstPtr qObjectListType() const
bool registerContains(const QQmlJSRegisterContent ®, const QQmlJSScope::ConstPtr &type) const
QQmlJSRegisterContent globalType(const QQmlJSScope::ConstPtr &type) const
QQmlJSScope::ConstPtr voidType() const
QQmlJSScope::ConstPtr typeFromAST(QQmlJS::AST::Type *type) const
QQmlJSScope::ConstPtr varType() const
bool canCallJSFunctions() const
FormalParameterList * formals
SourceLocation firstSourceLocation() const override
SourceLocation functionToken
SourceLocation lbraceToken
SourceLocation rbraceToken
TypeAnnotation * typeAnnotation
virtual SourceLocation firstSourceLocation() const =0
virtual Statement * statementCast()
virtual SourceLocation lastSourceLocation() const =0
virtual ExpressionNode * expressionCast()
virtual FunctionExpression * asFunctionDefinition()
\macro QT_RESTRICTED_CAST_FROM_ASCII
QString arg(qlonglong a, int fieldwidth=0, int base=10, QChar fillChar=u' ') const
bool endsWith(const QString &s, Qt::CaseSensitivity cs=Qt::CaseSensitive) const
Returns true if the string ends with s; otherwise returns false.
QString chopped(qsizetype n) const
QList< QVariant > arguments
Combined button and popup list for selecting options.
DBusConnection const char DBusError DBusBusType DBusError return DBusConnection DBusHandleMessageFunction function
DBusConnection const char DBusError * error
DBusConnection const char DBusError DBusBusType DBusError return DBusConnection DBusHandleMessageFunction void DBusFreeFunction return DBusConnection return DBusConnection return const char DBusError return DBusConnection DBusMessage dbus_uint32_t return DBusConnection dbus_bool_t DBusConnection DBusAddWatchFunction DBusRemoveWatchFunction DBusWatchToggledFunction void DBusFreeFunction return DBusConnection DBusDispatchStatusFunction void DBusFreeFunction DBusTimeout return DBusTimeout return DBusWatch return DBusWatch unsigned int return DBusError const DBusError return const DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessageIter int const void return DBusMessageIter DBusMessageIter return DBusMessageIter void DBusMessageIter void int return DBusMessage DBusMessageIter return DBusMessageIter return DBusMessageIter DBusMessageIter const char const char const char const char * method
GLuint GLsizei const GLchar * message
static void diagnose(const QString &message, QtMsgType type, const QQmlJS::SourceLocation &location, QQmlJS::DiagnosticMessage *error)
static QString bindingTypeDescription(QmlIR::Binding::Type type)
static QString signalNameFromSignalPropertyName(const QString &signalPropertyName)
static bool isSignalPropertyName(const QString &name)
static QString asString(QQmlJS::AST::UiQualifiedId *node)