5#ifndef QQMLJSLINTERTYPEPROPAGATOR_P_H
6#define QQMLJSLINTERTYPEPROPAGATOR_P_H
18#include <private/qqmljstypepropagator_p.h>
19#include <private/qqmljscontextproperties_p.h>
20#include <private/qqmljsusercontextproperties_p.h>
24struct ContextPropertyInfo
26 QQmlJS::HeuristicContextProperties heuristicContextProperties;
27 QQmlJS::UserContextProperties userContextProperties;
35 QQmlJSLinterTypePropagator(
const QV4::Compiler::JSUnitGenerator *unitGenerator,
36 const QQmlJSTypeResolver *typeResolver, QQmlJSLogger *logger,
37 const BasicBlocks &basicBlocks = {},
38 const InstructionAnnotations &annotations = {},
39 QQmlSA::PassManager *passManager =
nullptr,
40 const ContextPropertyInfo &contextPropertyInfo = {});
44 m_scopesById = scopesById;
49 m_idMemberShadows = idMemberShadows;
63 void checkDeprecated(QQmlJSScope::ConstPtr scope,
const QString &name,
bool isMethod)
const override;
64 bool isCallingProperty(QQmlJSScope::ConstPtr scope,
const QString &name)
const override;
71 void propagateCall(
const QList<QQmlJSMetaMethod> &methods,
int argc,
int argv,
72 QQmlJSRegisterContent scope)
override;
76 QQmlSA::PassManager *m_passManager =
nullptr;
77 ContextPropertyInfo m_contextPropertyInfo;
78 QQmlJSScopesById m_scopesById;
79 QSet<IdMemberShadow> *m_idMemberShadows =
nullptr;
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 setScopesById(const QQmlJSScopesById &scopesById)
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)