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>
21#include <private/qqmljslinterrenamedcomponents_p.h>
37 const QQmlJSTypeResolver *typeResolver, QQmlJSLogger *logger,
38 const BasicBlocks &basicBlocks = {},
39 const InstructionAnnotations &annotations = {},
40 QQmlSA::PassManager *passManager =
nullptr,
45 m_scopesById = scopesById;
50 m_idMemberShadows = idMemberShadows;
55 m_renamedComponents = renamedComponents;
69 void checkDeprecated(QQmlJSScope::ConstPtr scope,
const QString &name,
bool isMethod)
const override;
70 bool isCallingProperty(QQmlJSScope::ConstPtr scope,
const QString &name)
const override;
77 void propagateCall(
const QList<QQmlJSMetaMethod> &methods,
int argc,
int argv,
78 QQmlJSRegisterContent scope)
override;
82 QQmlSA::PassManager *m_passManager =
nullptr;
84 QQmlJSScopesById m_scopesById;
85 QSet<IdMemberShadow> *m_idMemberShadows =
nullptr;
86 const QQmlJS::LinterRenamedComponents *m_renamedComponents =
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
void setRenamedComponents(const QQmlJS::LinterRenamedComponents *renamedComponents)
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
QQmlJSLinterTypePropagator(const QV4::Compiler::JSUnitGenerator *unitGenerator, const QQmlJSTypeResolver *typeResolver, QQmlJSLogger *logger, const BasicBlocks &basicBlocks={}, const InstructionAnnotations &annotations={}, QQmlSA::PassManager *passManager=nullptr, const ContextPropertyInfo &contextPropertyInfo={})
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)
QQmlJS::HeuristicContextProperties heuristicContextProperties
QQmlJS::UserContextProperties userContextProperties