6#include <QtQmlCompiler/private/qqmljsimportvisitor_p.h>
7#include <QtQmlCompiler/private/qqmljsshadowcheck_p.h>
8#include <QtQmlCompiler/private/qqmljsstoragegeneralizer_p.h>
9#include <QtQmlCompiler/private/qqmljstypepropagator_p.h>
10#include <QtQmlCompiler/private/qqmljsfunctioninitializer_p.h>
32std::variant<QQmlJSAotFunction, QQmlJS::DiagnosticMessage>
42 initializer.
run(
context,
name, astNode, irBinding, &initializationError);
43 if (initializationError.isValid())
44 diagnose(initializationError.message, initializationError.type, initializationError.loc);
47 if (!analyzeFunction(
context, &function, &analyzeError)) {
50 return diagnose(u
"Could not compile binding for %1: %2"_s.arg(
name, analyzeError.message),
51 (function.isSignalHandler && analyzeError.type ==
QtDebugMsg)
60std::variant<QQmlJSAotFunction, QQmlJS::DiagnosticMessage>
69 if (initializationError.isValid())
70 diagnose(initializationError.message, initializationError.type, initializationError.loc);
73 if (!analyzeFunction(
context, &function, &analyzeError)) {
74 return diagnose(u
"Could not compile function %1: %2"_s.arg(
name, analyzeError.message),
86 {}, {}, m_passManager);
87 auto [basicBlocks, annotations] = propagator.
run(function,
error);
88 if (!
error->isValid()) {
91 shadowCheck.run(function,
error);
94 if (!
error->isValid()) {
96 basicBlocks, annotations);
97 generalizer.run(function,
error);
100 if (
error->isValid()) {
const QV4::Compiler::JSUnitGenerator * m_unitGenerator
QQmlJSTypeResolver m_typeResolver
virtual QQmlJS::DiagnosticMessage diagnose(const QString &message, QtMsgType type, const QQmlJS::SourceLocation &location) const
const QmlIR::Document * m_document
const QmlIR::Object * m_currentScope
const QmlIR::Object * m_currentObject
QQmlJSCompilePass::Function run(const QV4::Compiler::Context *context, const QString &propertyName, QQmlJS::AST::Node *astNode, const QmlIR::Binding &irBinding, QQmlJS::DiagnosticMessage *error)
std::variant< QQmlJSAotFunction, QQmlJS::DiagnosticMessage > compileBinding(const QV4::Compiler::Context *context, const QmlIR::Binding &irBinding, QQmlJS::AST::Node *astNode) override
QQmlJSLinterCodegen(QQmlJSImporter *importer, const QString &fileName, const QStringList &qmldirFiles, QQmlJSLogger *logger)
std::variant< QQmlJSAotFunction, QQmlJS::DiagnosticMessage > compileFunction(const QV4::Compiler::Context *context, const QString &name, QQmlJS::AST::Node *astNode) override
void setDocument(const QmlIR::JSCodeGen *codegen, const QmlIR::Document *document) override
\macro QT_RESTRICTED_CAST_FROM_ASCII
Combined button and popup list for selecting options.
DBusConnection const char DBusError * error
BlocksAndAnnotations run(const Function *m_function, QQmlJS::DiagnosticMessage *error)
QString stringAt(int index) const
QV4::CompiledData::Location location