5#ifndef QQMLJSLINTERTYPEPROPAGATOR_P_H
6#define QQMLJSLINTERTYPEPROPAGATOR_P_H
18#include <private/qduplicatetracker_p.h>
19#include <private/qqmljstypepropagator_p.h>
20#include <private/qqmljscontextproperties_p.h>
21#include <private/qqmljsusercontextproperties_p.h>
22#include <private/qqmljslinterrenamedcomponents_p.h>
23#include <private/qqmljslintercontext_p.h>
32 QQmlJSLinterTypePropagator(
const QV4::Compiler::JSUnitGenerator *unitGenerator,
33 const QQmlJSTypeResolver *typeResolver, QQmlJSLogger *logger,
34 const QQmlJS::LinterContext &linterContext,
35 const BasicBlocks &basicBlocks = { },
36 const InstructionAnnotations &annotations = { },
37 QQmlSA::PassManager *passManager =
nullptr);
41 m_idMemberShadows = idMemberShadows;
52 PropertyResolution propertyResolution(QQmlJSScope::ConstPtr scope,
const QString &type)
const;
56 void checkDeprecated(QQmlJSScope::ConstPtr scope,
const QString &name,
bool isMethod)
const override;
57 bool isCallingProperty(QQmlJSScope::ConstPtr scope,
const QString &name)
const override;
64 void propagateCall(
const QList<QQmlJSMetaMethod> &methods,
int argc,
int argv,
65 QQmlJSRegisterContent scope)
override;
69 bool checkTypeResolved(
const QQmlJSScope::ConstPtr &type);
71 QQmlSA::PassManager *m_passManager =
nullptr;
72 const QQmlJS::LinterContext &m_context;
73 QSet<IdMemberShadow> *m_idMemberShadows =
nullptr;
QQmlJSLinterCodegen(QQmlJSImporter *importer, const QString &fileName, const QStringList &qmldirFiles, QQmlJSLogger *logger, const QQmlJS::LinterContext &context)
void setDocument(const QmlIR::JSCodeGen *codegen, const QmlIR::Document *document) override
void setPassManager(QQmlSA::PassManager *passManager)
void propagateCall(const QList< QQmlJSMetaMethod > &methods, int argc, int argv, QQmlJSRegisterContent scope) override
void handleUnqualifiedAccess(const QString &name, bool isMethod) const override
void generate_CallProperty(int nameIndex, int base, int argc, int argv) override
bool isCallingProperty(QQmlJSScope::ConstPtr scope, const QString &name) const override
void setIdMemberShadows(QSet< IdMemberShadow > *idMemberShadows)
void generate_CallPossiblyDirectEval(int argc, int argv) override
void generate_LoadQmlContextPropertyLookup(int index) override
void generate_StoreNameCommon(int nameIndex) override
void generate_Ret() override
void handleUnqualifiedAccessAndContextProperties(const QString &name, bool isMethod) const override
void generate_GetOptionalLookup(int index, int offset) override
bool checkForEnumProblems(QQmlJSRegisterContent base, const QString &propertyName) override
void generate_StoreProperty(int nameIndex, int base) override
void warnAboutTypeCoercion(int lhs) override
void handleLookupError(const QString &propertyName) override
void propagateTranslationMethod_SAcheck(const QString &methodName) override
bool handleImportNamespaceLookup(const QString &propertyName) override
void propagatePropertyLookup(const QString &name, int lookupIndex=QQmlJSRegisterContent::InvalidLookupIndex) override
void checkDeprecated(QQmlJSScope::ConstPtr scope, const QString &name, bool isMethod) const override
Combined button and popup list for selecting options.
bool operator==(const IdMemberShadow &lhs, const IdMemberShadow &rhs)
bool operator!=(const IdMemberShadow &lhs, const IdMemberShadow &rhs)
size_t qHash(const IdMemberShadow &idShadowsMember, size_t seed)