![]() |
Qt 6.x
The Qt SDK
|
#include <qqmljstyperesolver_p.h>
Classes | |
struct | TrackedType |
Public Types | |
enum | ParentMode { UseDocumentParent , UseParentProperty } |
enum | CloneMode { CloneTypes , DoNotCloneTypes } |
enum | ListMode { UseListProperty , UseQObjectList } |
enum class | UnaryOperator { Not , Plus , Minus , Increment , Decrement , Complement } |
enum class | ComponentIsGeneric { No , Yes } |
Protected Member Functions | |
QQmlJSRegisterContent | memberType (const QQmlJSScope::ConstPtr &type, const QString &name) const |
QQmlJSRegisterContent | memberEnumType (const QQmlJSScope::ConstPtr &type, const QString &name) const |
bool | isPrimitive (const QQmlJSScope::ConstPtr &type) const |
bool | checkEnums (const QQmlJSScope::ConstPtr &scope, const QString &name, QQmlJSRegisterContent *result, QQmlJSScope::ExtensionKind mode) const |
bool | canPrimitivelyConvertFromTo (const QQmlJSScope::ConstPtr &from, const QQmlJSScope::ConstPtr &to) const |
QQmlJSRegisterContent | lengthProperty (bool isWritable, const QQmlJSScope::ConstPtr &scope) const |
QQmlJSRegisterContent | transformed (const QQmlJSRegisterContent &origin, QQmlJSScope::ConstPtr(QQmlJSTypeResolver::*op)(const QQmlJSScope::ConstPtr &) const) const |
QQmlJSRegisterContent | registerContentForName (const QString &name, const QQmlJSScope::ConstPtr &scopeType=QQmlJSScope::ConstPtr(), bool hasObjectModuelPrefix=false) const |
Definition at line 30 of file qqmljstyperesolver_p.h.
Enumerator | |
---|---|
CloneTypes | |
DoNotCloneTypes |
Definition at line 34 of file qqmljstyperesolver_p.h.
|
strong |
Enumerator | |
---|---|
No | |
Yes |
Definition at line 110 of file qqmljstyperesolver_p.h.
Enumerator | |
---|---|
UseListProperty | |
UseQObjectList |
Definition at line 35 of file qqmljstyperesolver_p.h.
Enumerator | |
---|---|
UseDocumentParent | |
UseParentProperty |
Definition at line 33 of file qqmljstyperesolver_p.h.
|
strong |
Enumerator | |
---|---|
Not | |
Plus | |
Minus | |
Increment | |
Decrement | |
Complement |
Definition at line 97 of file qqmljstyperesolver_p.h.
QQmlJSTypeResolver::QQmlJSTypeResolver | ( | QQmlJSImporter * | importer | ) |
Definition at line 22 of file qqmljstyperesolver.cpp.
References QQmlJSScope::create(), emptyType(), QQmlJSImporter::jsGlobalObject(), jsPrimitiveType(), m_arrayPrototype, m_boolType, m_byteArrayType, m_dateTimeType, m_dateType, m_emptyType, m_floatType, m_functionType, m_imports, m_int16Type, m_int32Type, m_int64Type, m_int8Type, m_jsGlobalObject, m_jsPrimitiveType, m_jsValueType, m_listPropertyType, m_metaObjectType, m_nullType, m_numberPrototype, m_qObjectListType, m_qObjectType, m_realType, m_stringListType, m_stringType, m_timeType, m_uint16Type, m_uint32Type, m_uint64Type, m_uint8Type, m_urlType, m_variantListType, m_variantMapType, m_varType, m_voidType, metaObjectType(), Q_ASSERT, QQmlJSScope::setAccessSemantics(), QQmlJSScope::setFilePath(), QQmlJSScope::setInternalName(), and QQmlJSScope::ContextualTypes::type().
void QQmlJSTypeResolver::adjustOriginalType | ( | const QQmlJSScope::ConstPtr & | tracked, |
const QQmlJSScope::ConstPtr & | conversion | ||
) | const |
Definition at line 543 of file qqmljstyperesolver.cpp.
References QQmlJSScope::clone(), DoNotCloneTypes, it, m_cloneMode, m_trackedTypes, Q_ASSERT, and tracked().
bool QQmlJSTypeResolver::adjustTrackedType | ( | const QQmlJSScope::ConstPtr & | tracked, |
const QList< QQmlJSScope::ConstPtr > & | conversions | ||
) | const |
Definition at line 517 of file qqmljstyperesolver.cpp.
References canPopulate(), canPrimitivelyConvertFromTo(), QQmlJSScope::clone(), comparableType(), DoNotCloneTypes, QQmlJSMetaMethod::isValid(), it, m_cloneMode, m_trackedTypes, merge(), Q_ASSERT, selectConstructor(), and tracked().
bool QQmlJSTypeResolver::adjustTrackedType | ( | const QQmlJSScope::ConstPtr & | tracked, |
const QQmlJSScope::ConstPtr & | conversion | ||
) | const |
Definition at line 495 of file qqmljstyperesolver.cpp.
References canPopulate(), canPrimitivelyConvertFromTo(), QQmlJSScope::clone(), comparableType(), DoNotCloneTypes, it, m_cloneMode, m_trackedTypes, Q_ASSERT, selectConstructor(), and tracked().
bool QQmlJSTypeResolver::areEquivalentLists | ( | const QQmlJSScope::ConstPtr & | a, |
const QQmlJSScope::ConstPtr & | b | ||
) | const |
Definition at line 1110 of file qqmljstyperesolver.cpp.
References equals(), QQmlJSScope::listType(), m_stringListType, m_stringType, m_variantListType, and m_varType.
Referenced by canPrimitivelyConvertFromTo(), and QQmlJSCodeGenerator::convertStored().
|
inline |
Definition at line 74 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSTypePropagator::generate_CallProperty().
|
inline |
Definition at line 55 of file qqmljstyperesolver_p.h.
Referenced by canConvertForLiteralBinding(), QQmlJSCodeGenerator::conversion(), QQmlJSCodeGenerator::convertStored(), QQmlJSCodeGenerator::generate_CmpEqInt(), QQmlJSCodeGenerator::generate_CmpEqNull(), QQmlJSTypePropagator::generate_CmpEqNull(), QQmlJSCodeGenerator::generate_CmpNeInt(), QQmlJSCodeGenerator::generate_CmpNeNull(), QQmlJSTypePropagator::generate_CmpNeNull(), QQmlJSCodeGenerator::generate_JumpFalse(), QQmlJSTypePropagator::generate_JumpFalse(), QQmlJSCodeGenerator::generate_JumpTrue(), QQmlJSTypePropagator::generate_JumpTrue(), QQmlJSCodeGenerator::generate_LoadConst(), QQmlJSCodeGenerator::generate_LoadFalse(), QQmlJSTypePropagator::generate_LoadFalse(), QQmlJSCodeGenerator::generate_LoadTrue(), QQmlJSTypePropagator::generate_LoadTrue(), QQmlJSCodeGenerator::generate_MoveConst(), QQmlJSMetaPropertyBinding::literalType(), merge(), typeForArithmeticUnaryOperation(), typeForBinaryOperation(), and typeForConst().
QQmlJSRegisterContent QQmlJSTypeResolver::builtinType | ( | const QQmlJSScope::ConstPtr & | type | ) | const |
Definition at line 862 of file qqmljstyperesolver.cpp.
References QQmlJSRegisterContent::Builtin, QQmlJSRegisterContent::create(), Q_ASSERT, and storedType().
Referenced by typeForArithmeticUnaryOperation(), and typeForBinaryOperation().
|
inline |
Definition at line 58 of file qqmljstyperesolver_p.h.
Referenced by canConvertForLiteralBinding(), and QQmlJSCodeGenerator::convertStored().
|
inline |
Definition at line 160 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSTypePropagator::generate_As(), and registerContentForName().
|
inline |
Definition at line 159 of file qqmljstyperesolver_p.h.
bool QQmlJSTypeResolver::canConvertFromTo | ( | const QQmlJSRegisterContent & | from, |
const QQmlJSRegisterContent & | to | ||
) | const |
Definition at line 622 of file qqmljstyperesolver.cpp.
References canConvertFromTo(), and containedType().
bool QQmlJSTypeResolver::canConvertFromTo | ( | const QQmlJSScope::ConstPtr & | from, |
const QQmlJSScope::ConstPtr & | to | ||
) | const |
Definition at line 593 of file qqmljstyperesolver.cpp.
References canPopulate(), canPrimitivelyConvertFromTo(), equals(), QQmlJSScope::internalName(), QDeferredSharedPointer< T >::isNull(), m_stringType, and selectConstructor().
Referenced by canConvertForLiteralBinding(), canConvertFromTo(), and canPrimitivelyConvertFromTo().
bool QQmlJSTypeResolver::canHold | ( | const QQmlJSScope::ConstPtr & | container, |
const QQmlJSScope::ConstPtr & | contained | ||
) | const |
Definition at line 730 of file qqmljstyperesolver.cpp.
References QQmlJSScope::accessSemantics(), base, equals(), isPrimitive(), QQmlJSScope::isReferenceType(), m_jsPrimitiveType, m_jsValueType, m_listPropertyType, m_qObjectListType, m_variantListType, m_varType, QQmlJSUtils::searchBaseAndExtensionTypes(), and QQmlJSScope::valueType().
Referenced by canPopulate(), memberType(), and selectConstructor().
bool QQmlJSTypeResolver::canHoldUndefined | ( | const QQmlJSRegisterContent & | content | ) | const |
Definition at line 773 of file qqmljstyperesolver.cpp.
References containedType(), QQmlJSRegisterContent::conversionOrigins(), equals(), QQmlJSRegisterContent::isConversion(), m_jsPrimitiveType, m_jsValueType, m_varType, m_voidType, origins, and QQmlJSRegisterContent::storedType().
Referenced by QQmlJSTypePropagator::generate_Ret(), and QQmlJSTypePropagator::generate_StoreNameCommon().
bool QQmlJSTypeResolver::canPopulate | ( | const QQmlJSScope::ConstPtr & | type, |
const QQmlJSScope::ConstPtr & | argument, | ||
bool * | isExtension | ||
) | const |
Definition at line 1030 of file qqmljstyperesolver.cpp.
References canHold(), and isPrimitive().
Referenced by adjustTrackedType(), adjustTrackedType(), canConvertFromTo(), QQmlJSCodeGenerator::convertContained(), QQmlJSCodeGenerator::convertStored(), and QQmlJSCodeGenerator::generate_DefineObjectLiteral().
|
protected |
Definition at line 1151 of file qqmljstyperesolver.cpp.
References QQmlJSScope::accessSemantics(), areEquivalentLists(), QQmlJSScope::baseType(), canConvertFromTo(), equals(), QQmlJSScope::internalName(), QQmlJSScope::isComposite(), QString::isEmpty(), QQmlJSScope::isListProperty(), QDeferredSharedPointer< T >::isNull(), isNumeric(), isPrimitive(), m_boolType, m_byteArrayType, m_dateTimeType, m_dateType, m_jsPrimitiveType, m_jsValueType, m_nullType, m_stringType, m_timeType, m_urlType, m_variantListType, m_varType, m_voidType, Q_ASSERT, QQmlJSScope::scopeType(), and QQmlJSScope::valueType().
Referenced by adjustTrackedType(), adjustTrackedType(), canConvertFromTo(), and selectConstructor().
|
protected |
Definition at line 995 of file qqmljstyperesolver.cpp.
References QQmlJSRegisterContent::create(), QQmlJSScope::ExtensionNamespace, QQmlJSRegisterContent::ExtensionObjectEnum, QQmlJSScope::ExtensionType, QQmlJSRegisterContent::ObjectEnum, QQmlJSScope::ownEnumerations(), and storedType().
Referenced by memberEnumType(), and memberType().
|
inline |
Definition at line 151 of file qqmljstyperesolver_p.h.
QQmlJSScope::ConstPtr QQmlJSTypeResolver::comparableType | ( | const QQmlJSScope::ConstPtr & | type | ) | const |
Definition at line 1574 of file qqmljstyperesolver.cpp.
References it, and m_trackedTypes.
Referenced by adjustTrackedType(), adjustTrackedType(), equals(), and QQmlJSCodeGenerator::run().
QQmlJSScope::ConstPtr QQmlJSTypeResolver::containedType | ( | const QQmlJSRegisterContent & | container | ) | const |
Definition at line 322 of file qqmljstyperesolver.cpp.
References QQmlJSRegisterContent::conversionResult(), QQmlJSRegisterContent::enumeration(), QQmlJSRegisterContent::isConversion(), QQmlJSRegisterContent::isEnumeration(), QQmlJSRegisterContent::isImportNamespace(), QQmlJSRegisterContent::isMethod(), QQmlJSRegisterContent::isProperty(), QQmlJSRegisterContent::isType(), QQmlJSRegisterContent::ObjectModulePrefix, QQmlJSRegisterContent::property(), QQmlJSRegisterContent::ScopeModulePrefix, QQmlJSRegisterContent::scopeType(), QQmlJSRegisterContent::storedType(), QQmlJSMetaEnum::type(), QQmlJSMetaProperty::type(), QQmlJSRegisterContent::type(), and QQmlJSRegisterContent::variant().
Referenced by QQmlJSCodeGenerator::AccumulatorConverter::AccumulatorConverter(), canCompareWithQObject(), canCompareWithQUrl(), canConvertFromTo(), canHoldUndefined(), canStrictlyCompareWithVar(), containedTypeName(), QQmlJSCodeGenerator::contentPointer(), QQmlJSCodeGenerator::contentType(), QQmlJSCodeGenerator::conversion(), convert(), QQmlJSCodeGenerator::convertContained(), QQmlJSCodeGenerator::generate_As(), QQmlJSTypePropagator::generate_As(), QQmlJSTypePropagator::generate_CallProperty(), QQmlJSCodeGenerator::generate_DefineObjectLiteral(), QQmlJSCodeGenerator::generate_LoadElement(), QQmlJSTypePropagator::generate_LoadElement(), QQmlJSTypePropagator::generate_LoadQmlContextPropertyLookup(), QQmlJSTypePropagator::generate_Ret(), QQmlJSCodeGenerator::generate_SetLookup(), QQmlJSCodeGenerator::generate_StoreElement(), QQmlJSTypePropagator::generate_StoreElement(), QQmlJSTypePropagator::generate_StoreNameCommon(), QQmlJSTypePropagator::generate_StoreProperty(), isIntegral(), isNumeric(), isPrimitive(), merge(), originalContainedType(), trackedContainedType(), typeForArithmeticUnaryOperation(), and typeForBinaryOperation().
QString QQmlJSTypeResolver::containedTypeName | ( | const QQmlJSRegisterContent & | container, |
bool | useFancyName = false |
||
) | const |
Definition at line 569 of file qqmljstyperesolver.cpp.
References containedType(), QQmlJSRegisterContent::MetaType, QQmlJSScope::prettyName(), QQmlJSRegisterContent::ScopeAttached, QQmlJSRegisterContent::scopeType(), typeName, and QQmlJSRegisterContent::variant().
Referenced by QQmlJSTypePropagator::generate_CallProperty(), and QQmlJSTypePropagator::generate_Ret().
QQmlJSRegisterContent QQmlJSTypeResolver::convert | ( | const QQmlJSRegisterContent & | from, |
const QQmlJSRegisterContent & | to | ||
) | const |
Definition at line 1560 of file qqmljstyperesolver.cpp.
References containedType(), QQmlJSRegisterContent::conversionOrigins(), QQmlJSRegisterContent::create(), QQmlJSRegisterContent::isConversion(), QQmlJSRegisterContent::scopeType(), QQmlJSRegisterContent::storedType(), and QQmlJSRegisterContent::variant().
|
inline |
Definition at line 60 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSCodeGenerator::convertStored().
|
inline |
Definition at line 61 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSCodeGenerator::convertStored().
|
inline |
Definition at line 43 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSTypeResolver(), QQmlJSTypePropagator::generate_DeadTemporalZoneCheck(), QQmlJSTypePropagator::generate_InitializeBlockDeadTemporalZone(), and typeForConst().
bool QQmlJSTypeResolver::equals | ( | const QQmlJSScope::ConstPtr & | a, |
const QQmlJSScope::ConstPtr & | b | ||
) | const |
Compares the origin types of a and b. A straight a == b would compare the identity of the pointers. However, since we clone types to keep track of them, we need a separate way to compare the clones. Usually you'd do *a == *b for that, but as QQmlJSScope is rather large, we offer an optimization here that uses the type tracking we already have in place.
Definition at line 1555 of file qqmljstyperesolver.cpp.
References comparableType().
Referenced by QQmlJSCodeGenerator::AccumulatorConverter::AccumulatorConverter(), areEquivalentLists(), canCompareWithQObject(), canCompareWithQUrl(), canConvertForLiteralBinding(), canConvertFromTo(), canHold(), canHoldUndefined(), canPrimitivelyConvertFromTo(), canStrictlyCompareWithVar(), QQmlJSCodeGenerator::contentType(), QQmlJSCodeGenerator::conversion(), QQmlJSCodeGenerator::convertContained(), QQmlJSCodeGenerator::convertStored(), QQmlJSCodeGenerator::generate_As(), QQmlJSTypePropagator::generate_CallProperty(), QQmlJSCodeGenerator::generate_CallPropertyLookup(), QQmlJSCodeGenerator::generate_CallQmlContextPropertyLookup(), QQmlJSTypePropagator::generate_DeadTemporalZoneCheck(), QQmlJSCodeGenerator::generate_DefineObjectLiteral(), QQmlJSCodeGenerator::generate_GetLookup(), QQmlJSCodeGenerator::generate_Ret(), genericType(), isNumeric(), isPrimitive(), isSignedInteger(), isTriviallyCopyable(), isTypeStorable(), isUnsignedInteger(), memberType(), merge(), QQmlJSCodeGenerator::metaType(), registerContains(), registerIsStoredIn(), scopedType(), selectConstructor(), storedType(), typeForArithmeticUnaryOperation(), typeForBinaryOperation(), and valueType().
|
inline |
Definition at line 46 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSCodeGenerator::convertStored().
|
inline |
Definition at line 70 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSTypePropagator::generate_LoadClosure().
void QQmlJSTypeResolver::generalizeType | ( | const QQmlJSScope::ConstPtr & | type | ) | const |
Definition at line 556 of file qqmljstyperesolver.cpp.
References QQmlJSScope::clone(), DoNotCloneTypes, genericType(), it, m_cloneMode, m_trackedTypes, and Q_ASSERT.
Referenced by QQmlJSStorageGeneralizer::run().
QQmlJSScope::ConstPtr QQmlJSTypeResolver::genericType | ( | const QQmlJSScope::ConstPtr & | type, |
ComponentIsGeneric | allowComponent = ComponentIsGeneric::No |
||
) | const |
Definition at line 795 of file qqmljstyperesolver.cpp.
References arg, base, QQmlJSScope::baseType(), QQmlSA::EnumScope, equals(), isPrimitive(), QQmlJSLogger::log(), m_boolType, m_byteArrayType, m_dateTimeType, m_dateType, m_floatType, m_int16Type, m_int32Type, m_int64Type, m_int8Type, m_jsPrimitiveType, m_jsValueType, m_listPropertyType, m_logger, m_metaObjectType, m_qObjectListType, m_qObjectType, m_realType, m_stringListType, m_stringType, m_timeType, m_uint16Type, m_uint32Type, m_uint64Type, m_uint8Type, m_urlType, m_variantListType, m_variantMapType, m_varType, qmlCompiler, and Yes.
Referenced by QQmlJSCodeGenerator::convertContained(), generalizeType(), QQmlJSCodeGenerator::generate_As(), QQmlJSTypePropagator::generate_CallProperty(), QQmlJSCodeGenerator::generate_LoadElement(), QQmlJSTypePropagator::generate_LoadQmlContextPropertyLookup(), QQmlJSCodeGenerator::generate_SetLookup(), QQmlJSCodeGenerator::generate_StoreElement(), memberType(), QQmlJSCodeGenerator::metaType(), registerContentForName(), QQmlJSStorageGeneralizer::run(), and storedType().
QQmlJSRegisterContent QQmlJSTypeResolver::globalType | ( | const QQmlJSScope::ConstPtr & | type | ) | const |
Definition at line 868 of file qqmljstyperesolver.cpp.
References QQmlJSRegisterContent::create(), storedType(), and QQmlJSRegisterContent::Unknown.
Referenced by QQmlJSCodeGenerator::convertContained(), QQmlJSCodeGenerator::convertStored(), QQmlJSCodeGenerator::generate_As(), QQmlJSTypePropagator::generate_As(), QQmlJSTypePropagator::generate_CallProperty(), QQmlJSTypePropagator::generate_CmpEqInt(), QQmlJSTypePropagator::generate_CmpEqNull(), QQmlJSTypePropagator::generate_CmpIn(), QQmlJSTypePropagator::generate_CmpNeInt(), QQmlJSTypePropagator::generate_CmpNeNull(), QQmlJSTypePropagator::generate_Construct(), QQmlJSTypePropagator::generate_ConvertThisToObject(), QQmlJSTypePropagator::generate_DefineArray(), QQmlJSTypePropagator::generate_DefineObjectLiteral(), QQmlJSCodeGenerator::generate_GetLookup(), QQmlJSTypePropagator::generate_InitializeBlockDeadTemporalZone(), QQmlJSTypePropagator::generate_JumpFalse(), QQmlJSTypePropagator::generate_JumpTrue(), QQmlJSTypePropagator::generate_LoadClosure(), QQmlJSTypePropagator::generate_LoadConst(), QQmlJSCodeGenerator::generate_LoadElement(), QQmlJSTypePropagator::generate_LoadElement(), QQmlJSTypePropagator::generate_LoadFalse(), QQmlJSTypePropagator::generate_LoadInt(), QQmlJSTypePropagator::generate_LoadLocal(), QQmlJSTypePropagator::generate_LoadNull(), QQmlJSTypePropagator::generate_LoadQmlContextPropertyLookup(), QQmlJSTypePropagator::generate_LoadRuntimeString(), QQmlJSTypePropagator::generate_LoadTrue(), QQmlJSTypePropagator::generate_LoadUndefined(), QQmlJSTypePropagator::generate_LoadZero(), QQmlJSTypePropagator::generate_MoveConst(), QQmlJSCodeGenerator::generate_StoreElement(), QQmlJSTypePropagator::generate_StoreElement(), QQmlJSTypePropagator::generate_StoreNameCommon(), QQmlJSCodeGenerator::generate_ThrowException(), QQmlJSTypePropagator::generate_ThrowException(), QQmlJSTypePropagator::generate_TypeofName(), QQmlJSTypePropagator::generate_TypeofValue(), QQmlJSTypePropagator::run(), QQmlJSFunctionInitializer::run(), and typeForBinaryOperation().
QString QQmlJSTypeResolver::idForScope | ( | const QQmlJSScope::ConstPtr & | scope, |
const QQmlJSScope::ConstPtr & | referrer | ||
) | const |
Definition at line 146 of file qqmljstyperesolver.cpp.
References QQmlJSScopesById::id(), and m_objectsById.
void QQmlJSTypeResolver::init | ( | QQmlJSImportVisitor * | visitor, |
QQmlJS::AST::Node * | program | ||
) |
Initializes the type resolver. As part of that initialization, makes visitor traverse the program when given.
Definition at line 113 of file qqmljstyperesolver.cpp.
References QQmlJSImportVisitor::addressableScopes(), QQmlJSScopesById::clear(), QHash< Key, T >::clear(), QQmlJSScope::ContextualTypes::clearTypes(), QQmlJSImportVisitor::imports(), QQmlJSImportVisitor::logger(), m_imports, m_logger, m_objectsById, m_objectsByLocation, m_signalHandlers, QQmlJSImportVisitor::scopesBylocation(), and QQmlJSImportVisitor::signalHandlers().
Referenced by QQmlJSLinter::lintFile(), and QQmlJSAotCompiler::setDocument().
|
inline |
Definition at line 49 of file qqmljstyperesolver_p.h.
|
inline |
Definition at line 51 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSCodeGenerator::convertStored(), QQmlJSTypePropagator::generate_CmpEqInt(), QQmlJSTypePropagator::generate_CmpNeInt(), QQmlJSCodeGenerator::generate_GetLookup(), QQmlJSCodeGenerator::generate_LoadConst(), QQmlJSTypePropagator::generate_LoadElement(), QQmlJSCodeGenerator::generate_LoadInt(), QQmlJSTypePropagator::generate_LoadInt(), QQmlJSCodeGenerator::generate_LoadZero(), QQmlJSTypePropagator::generate_LoadZero(), QQmlJSCodeGenerator::generate_MoveConst(), QQmlJSTypePropagator::generate_StoreElement(), lengthProperty(), merge(), typeForArithmeticUnaryOperation(), typeForBinaryOperation(), and typeForConst().
|
inline |
Definition at line 53 of file qqmljstyperesolver_p.h.
|
inline |
Definition at line 47 of file qqmljstyperesolver_p.h.
bool QQmlJSTypeResolver::isIntegral | ( | const QQmlJSRegisterContent & | type | ) | const |
Definition at line 277 of file qqmljstyperesolver.cpp.
References containedType(), and isIntegral().
Referenced by QQmlJSCodeGenerator::conversion(), QQmlJSCodeGenerator::convertContained(), QQmlJSCodeGenerator::generate_LoadElement(), QQmlJSCodeGenerator::generate_StoreElement(), isIntegral(), merge(), and typeForArithmeticUnaryOperation().
bool QQmlJSTypeResolver::isIntegral | ( | const QQmlJSScope::ConstPtr & | type | ) | const |
Definition at line 282 of file qqmljstyperesolver.cpp.
References isSignedInteger(), and isUnsignedInteger().
bool QQmlJSTypeResolver::isNumeric | ( | const QQmlJSRegisterContent & | type | ) | const |
Definition at line 272 of file qqmljstyperesolver.cpp.
References containedType(), and isNumeric().
Referenced by canConvertForLiteralBinding(), canPrimitivelyConvertFromTo(), QQmlJSCodeGenerator::contentPointer(), QQmlJSCodeGenerator::contentType(), QQmlJSCodeGenerator::conversion(), QQmlJSCodeGenerator::convertStored(), QQmlJSCodeGenerator::generate_LoadElement(), QQmlJSTypePropagator::generate_LoadElement(), QQmlJSCodeGenerator::generate_StoreElement(), QQmlJSTypePropagator::generate_StoreElement(), isNumeric(), isPrimitive(), merge(), and typeForBinaryOperation().
bool QQmlJSTypeResolver::isNumeric | ( | const QQmlJSScope::ConstPtr & | type | ) | const |
Definition at line 295 of file qqmljstyperesolver.cpp.
References equals(), QQmlJSScope::ExtensionNamespace, m_numberPrototype, and QQmlJSUtils::searchBaseAndExtensionTypes().
|
inline |
Definition at line 82 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSTypePropagator::generate_LoadQmlContextPropertyLookup().
bool QQmlJSTypeResolver::isPrimitive | ( | const QQmlJSRegisterContent & | type | ) | const |
Definition at line 267 of file qqmljstyperesolver.cpp.
References containedType(), and isPrimitive().
Referenced by canHold(), canPopulate(), canPrimitivelyConvertFromTo(), genericType(), isPrimitive(), and merge().
|
protected |
Definition at line 288 of file qqmljstyperesolver.cpp.
References equals(), isNumeric(), m_boolType, m_jsPrimitiveType, m_nullType, m_stringType, and m_voidType.
bool QQmlJSTypeResolver::isSignedInteger | ( | const QQmlJSScope::ConstPtr & | type | ) | const |
Definition at line 305 of file qqmljstyperesolver.cpp.
References equals(), m_int16Type, m_int32Type, and m_int8Type.
Referenced by QQmlJSCodeGenerator::convertStored(), QQmlJSTypePropagator::generate_LoadElement(), QQmlJSTypePropagator::generate_StoreElement(), and isIntegral().
bool QQmlJSTypeResolver::isTriviallyCopyable | ( | const QQmlJSScope::ConstPtr & | type | ) | const |
Definition at line 1126 of file qqmljstyperesolver.cpp.
References QQmlSA::EnumScope, equals(), m_boolType, m_floatType, m_int16Type, m_int32Type, m_int64Type, m_int8Type, m_metaObjectType, m_nullType, m_realType, m_uint16Type, m_uint32Type, m_uint64Type, m_uint8Type, and m_voidType.
Referenced by QQmlJSCodeGenerator::shouldMoveRegister().
bool QQmlJSTypeResolver::isUnsignedInteger | ( | const QQmlJSScope::ConstPtr & | type | ) | const |
Definition at line 313 of file qqmljstyperesolver.cpp.
References equals(), m_uint16Type, m_uint32Type, and m_uint8Type.
Referenced by QQmlJSCodeGenerator::convertStored(), QQmlJSCodeGenerator::generate_LoadElement(), QQmlJSTypePropagator::generate_LoadElement(), QQmlJSCodeGenerator::generate_StoreElement(), QQmlJSTypePropagator::generate_StoreElement(), isIntegral(), and merge().
|
inline |
Definition at line 71 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSTypePropagator::generate_CallProperty(), and QQmlJSCodeGenerator::generate_CallQmlContextPropertyLookup().
|
inline |
Definition at line 67 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSTypeResolver(), QQmlJSCodeGenerator::contentPointer(), QQmlJSCodeGenerator::contentType(), QQmlJSCodeGenerator::conversion(), QQmlJSCodeGenerator::convertContained(), QQmlJSCodeGenerator::convertStored(), QQmlJSCodeGenerator::generate_CmpEqNull(), QQmlJSCodeGenerator::generate_CmpNeNull(), QQmlJSCodeGenerator::generate_DefineObjectLiteral(), QQmlJSCodeGenerator::generate_Mod(), QQmlJSCodeGenerator::generate_Ret(), merge(), and typeForBinaryOperation().
|
inline |
Definition at line 66 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSCodeGenerator::convertStored(), QQmlJSTypePropagator::generate_CallProperty(), QQmlJSTypePropagator::generate_CmpIn(), QQmlJSTypePropagator::generate_Construct(), QQmlJSCodeGenerator::generate_GetLookup(), QQmlJSTypePropagator::generate_LoadElement(), QQmlJSTypePropagator::generate_LoadLocal(), QQmlJSCodeGenerator::generate_Ret(), QQmlJSTypePropagator::generate_StoreElement(), QQmlJSCodeGenerator::generate_ThrowException(), QQmlJSTypePropagator::generate_ThrowException(), memberType(), memberType(), merge(), registerContains(), scopedType(), and storedType().
|
protected |
Definition at line 1253 of file qqmljstyperesolver.cpp.
References QQmlJSRegisterContent::Builtin, QQmlJSRegisterContent::create(), int32Type(), QQmlJSMetaProperty::setIsWritable(), QQmlJSMetaProperty::setPropertyName(), QQmlJSMetaProperty::setType(), and QQmlJSMetaProperty::setTypeName().
Referenced by memberType().
|
inline |
Definition at line 68 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSCodeGenerator::contentType(), QQmlJSCodeGenerator::convertStored(), QQmlJSCodeGenerator::generate_LoadElement(), and QQmlJSCodeGenerator::generate_StoreElement().
|
protected |
Definition at line 1368 of file qqmljstyperesolver.cpp.
References checkEnums(), and QQmlJSUtils::searchBaseAndExtensionTypes().
Referenced by memberType().
QQmlJSRegisterContent QQmlJSTypeResolver::memberType | ( | const QQmlJSRegisterContent & | type, |
const QString & | name | ||
) | const |
Definition at line 1383 of file qqmljstyperesolver.cpp.
References begin(), canHold(), QQmlJSRegisterContent::create(), QQmlJSRegisterContent::GenericObjectProperty, QQmlJSRegisterContent::isValid(), jsValueType(), QQmlJSLogger::log(), m_logger, memberEnumType(), memberType(), QQmlJSRegisterContent::ObjectEnum, QQmlJSRegisterContent::ObjectModulePrefix, origins, qmlPrefixedImportType, registerContentForName(), QQmlJSMetaProperty::setIsWritable(), QQmlJSMetaProperty::setPropertyName(), QQmlJSMetaProperty::setType(), QQmlJSMetaProperty::setTypeName(), storedType(), and QQmlJSRegisterContent::type().
Referenced by QQmlJSTypePropagator::generate_CallProperty(), QQmlJSCodeGenerator::generate_SetLookup(), QQmlJSTypePropagator::generate_StoreProperty(), and memberType().
|
protected |
Definition at line 1264 of file qqmljstyperesolver.cpp.
References QQmlJSScope::attachedType(), checkEnums(), QQmlJSRegisterContent::create(), equals(), QQmlJSScope::ExtensionNamespace, QQmlJSRegisterContent::ExtensionObjectMethod, QQmlJSRegisterContent::ExtensionObjectProperty, QQmlJSScope::findJSIdentifier(), QQmlJSRegisterContent::GenericObjectProperty, genericType(), QQmlJSScope::hasOwnMethod(), QQmlJSScope::hasOwnProperty(), QQmlJSRegisterContent::JavaScriptObject, jsValueType(), lengthProperty(), QQmlJSLogger::log(), m_logger, metaObjectType(), methods, QQmlJSScope::NotExtension, QQmlJSRegisterContent::ObjectAttached, QQmlJSRegisterContent::ObjectMethod, QQmlJSRegisterContent::ObjectProperty, QQmlJSScope::ownMethods(), QQmlJSScope::ownProperty(), qmlCompiler, QQmlJSUtils::searchBaseAndExtensionTypes(), QQmlJSMetaProperty::setIsWritable(), QQmlJSMetaProperty::setPropertyName(), QQmlJSMetaProperty::setType(), QQmlJSMetaProperty::setTypeName(), storedType(), stringType(), typeForName(), variantMapType(), and varType().
QQmlJSRegisterContent QQmlJSTypeResolver::merge | ( | const QQmlJSRegisterContent & | a, |
const QQmlJSRegisterContent & | b | ||
) | const |
Definition at line 634 of file qqmljstyperesolver.cpp.
References containedType(), QQmlJSRegisterContent::create(), erase(), merge(), mergeVariants(), and origins.
Referenced by adjustTrackedType(), QQmlJSTypePropagator::generate_As(), QQmlJSTypePropagator::generate_LoadElement(), QQmlJSCodeGenerator::generate_SetLookup(), merge(), and typeForBinaryOperation().
QQmlJSScope::ConstPtr QQmlJSTypeResolver::merge | ( | const QQmlJSScope::ConstPtr & | a, |
const QQmlJSScope::ConstPtr & | b | ||
) | const |
Definition at line 660 of file qqmljstyperesolver.cpp.
References QQmlJSScope::baseType(), boolType(), equals(), int32Type(), isIntegral(), isNumeric(), isPrimitive(), isUnsignedInteger(), jsPrimitiveType(), jsValueType(), nullType(), realType(), stringType(), uint32Type(), and varType().
|
inline |
Definition at line 69 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSTypeResolver(), QQmlJSCodeGenerator::generate_As(), QQmlJSTypePropagator::generate_As(), memberType(), and registerContentForName().
|
inline |
Definition at line 44 of file qqmljstyperesolver_p.h.
Referenced by canCompareWithQObject(), canStrictlyCompareWithVar(), QQmlJSCodeGenerator::convertStored(), QQmlJSCodeGenerator::errorReturnValue(), QQmlJSCodeGenerator::generate_LoadConst(), QQmlJSCodeGenerator::generate_LoadNull(), QQmlJSTypePropagator::generate_LoadNull(), QQmlJSCodeGenerator::generate_MoveConst(), isTypeStorable(), QQmlJSMetaPropertyBinding::literalType(), merge(), and typeForConst().
|
inline |
Definition at line 158 of file qqmljstyperesolver_p.h.
QQmlJSRegisterContent QQmlJSTypeResolver::original | ( | const QQmlJSRegisterContent & | type | ) | const |
Definition at line 472 of file qqmljstyperesolver.cpp.
References originalType(), and transformed().
Referenced by QQmlJSCodeGenerator::AccumulatorConverter::AccumulatorConverter(), QQmlJSCodeGenerator::generate_As(), QQmlJSCodeGenerator::generate_Exp(), QQmlJSCodeGenerator::generate_LoadQmlContextPropertyLookup(), QQmlJSCodeGenerator::generate_SetLookup(), and QQmlJSCodeGenerator::run().
QQmlJSScope::ConstPtr QQmlJSTypeResolver::originalContainedType | ( | const QQmlJSRegisterContent & | container | ) | const |
Definition at line 489 of file qqmljstyperesolver.cpp.
References containedType(), and originalType().
Referenced by QQmlJSCodeGenerator::AccumulatorConverter::AccumulatorConverter(), and QQmlJSCodeGenerator::generate_CallPropertyLookup().
QQmlJSScope::ConstPtr QQmlJSTypeResolver::originalType | ( | const QQmlJSScope::ConstPtr & | type | ) | const |
Definition at line 1541 of file qqmljstyperesolver.cpp.
References it, and m_trackedTypes.
Referenced by QQmlJSCodeGenerator::AccumulatorConverter::AccumulatorConverter(), original(), originalContainedType(), and QQmlJSCodeGenerator::run().
|
inline |
Definition at line 148 of file qqmljstyperesolver_p.h.
|
inline |
Definition at line 73 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSFunctionInitializer::run().
|
inline |
Definition at line 72 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSCodeGenerator::generate_ConvertThisToObject(), and QQmlJSTypePropagator::generate_ConvertThisToObject().
|
inline |
Definition at line 45 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSCodeGenerator::conversion(), QQmlJSCodeGenerator::convertStored(), QQmlJSTypePropagator::generate_CallProperty(), QQmlJSCodeGenerator::generate_LoadConst(), QQmlJSTypePropagator::generate_LoadElement(), QQmlJSCodeGenerator::generate_MoveConst(), QQmlJSTypePropagator::generate_StoreElement(), merge(), typeForArithmeticUnaryOperation(), typeForBinaryOperation(), and typeForConst().
bool QQmlJSTypeResolver::registerContains | ( | const QQmlJSRegisterContent & | reg, |
const QQmlJSScope::ConstPtr & | type | ||
) | const |
Definition at line 1505 of file qqmljstyperesolver.cpp.
References QQmlJSRegisterContent::conversionResult(), QQmlJSRegisterContent::enumeration(), equals(), QQmlJSRegisterContent::isConversion(), QQmlJSRegisterContent::isEnumeration(), QQmlJSRegisterContent::isMethod(), QQmlJSRegisterContent::isProperty(), QQmlJSRegisterContent::isType(), jsValueType(), QQmlJSRegisterContent::property(), QQmlJSMetaEnum::type(), QQmlJSMetaProperty::type(), and QQmlJSRegisterContent::type().
Referenced by QQmlJSCodeGenerator::contentPointer(), QQmlJSCodeGenerator::conversion(), QQmlJSTypePropagator::generate_CallProperty(), QQmlJSTypePropagator::generate_DeadTemporalZoneCheck(), QQmlJSCodeGenerator::generate_DefineObjectLiteral(), QQmlJSCodeGenerator::generate_GetLookup(), QQmlJSTypePropagator::generate_LoadElement(), QQmlJSTypePropagator::generate_Ret(), QQmlJSCodeGenerator::generate_SetLookup(), QQmlJSCodeGenerator::getLookupPreparation(), and QQmlJSCodeGenerator::setLookupPreparation().
|
protected |
Definition at line 410 of file qqmljstyperesolver.cpp.
References canAddressValueTypes(), QQmlJSRegisterContent::create(), genericType(), QQmlJSLogger::log(), m_logger, metaObjectType(), QQmlJSRegisterContent::MetaType, QQmlJSRegisterContent::ObjectAttached, qmlCompiler, QQmlJSRegisterContent::ScopeAttached, QQmlJSRegisterContent::Script, QQmlJSRegisterContent::Singleton, storedType(), and typeForName().
Referenced by memberType().
bool QQmlJSTypeResolver::registerIsStoredIn | ( | const QQmlJSRegisterContent & | reg, |
const QQmlJSScope::ConstPtr & | type | ||
) | const |
Definition at line 1499 of file qqmljstyperesolver.cpp.
References equals(), and QQmlJSRegisterContent::storedType().
Referenced by QQmlJSCodeGenerator::AccumulatorConverter::AccumulatorConverter(), QQmlJSCodeGenerator::contentPointer(), QQmlJSCodeGenerator::contentType(), QQmlJSCodeGenerator::conversion(), QQmlJSCodeGenerator::convertContained(), QQmlJSCodeGenerator::generate_GetLookup(), QQmlJSCodeGenerator::generate_LoadElement(), QQmlJSCodeGenerator::generate_Ret(), QQmlJSCodeGenerator::generate_StoreElement(), QQmlJSTypePropagator::generate_StoreNameCommon(), QQmlJSCodeGenerator::getLookupPreparation(), QQmlJSCodeGenerator::run(), and QQmlJSCodeGenerator::setLookupPreparation().
QQmlJSRegisterContent QQmlJSTypeResolver::returnType | ( | const QQmlJSScope::ConstPtr & | type, |
QQmlJSRegisterContent::ContentVariant | variant, | ||
const QQmlJSScope::ConstPtr & | scope | ||
) | const |
Definition at line 1490 of file qqmljstyperesolver.cpp.
References QQmlJSRegisterContent::create(), QQmlJSRegisterContent::JavaScriptReturnValue, QQmlJSRegisterContent::MethodReturnValue, Q_ASSERT, storedType(), and variant.
QQmlJSRegisterContent QQmlJSTypeResolver::scopedType | ( | const QQmlJSScope::ConstPtr & | scope, |
const QString & | name | ||
) | const |
Definition at line 905 of file qqmljstyperesolver.cpp.
References base, child, QQmlJSRegisterContent::create(), equals(), QQmlJSScope::ExtensionNamespace, QQmlJSScope::findCurrentQMLScope(), QQmlJSScope::hasOwnMethod(), QQmlJSScope::hasOwnProperty(), if(), QString::isEmpty(), jsValueType(), methods, QQmlSA::Object, QQmlJSRegisterContent::ObjectById, parent, scopeContentVariant(), scopeForId(), QQmlJSUtils::searchBaseAndExtensionTypes(), and storedType().
Referenced by QQmlJSTypePropagator::generate_LoadName(), QQmlJSTypePropagator::generate_LoadQmlContextPropertyLookup(), QQmlJSTypePropagator::generate_StoreNameCommon(), and QQmlJSCodeGenerator::generate_StoreNameSloppy().
QQmlJSScope::ConstPtr QQmlJSTypeResolver::scopeForId | ( | const QString & | id, |
const QQmlJSScope::ConstPtr & | referrer | ||
) | const |
Definition at line 140 of file qqmljstyperesolver.cpp.
References m_objectsById, and QQmlJSScopesById::scope().
Referenced by QQmlJSUtils::resolveAlias(), and scopedType().
QQmlJSScope::ConstPtr QQmlJSTypeResolver::scopeForLocation | ( | const QV4::CompiledData::Location & | location | ) | const |
Definition at line 132 of file qqmljstyperesolver.cpp.
References m_objectsByLocation, and qCDebug.
QQmlJSMetaMethod QQmlJSTypeResolver::selectConstructor | ( | const QQmlJSScope::ConstPtr & | type, |
const QQmlJSScope::ConstPtr & | argument, | ||
bool * | isExtension | ||
) | const |
Definition at line 1051 of file qqmljstyperesolver.cpp.
References canHold(), canPrimitivelyConvertFromTo(), equals(), extension(), QQmlJSMetaMethod::Invalid, QQmlJSMetaMethod::isValid(), method, and Q_ASSERT.
Referenced by adjustTrackedType(), adjustTrackedType(), canConvertFromTo(), QQmlJSCodeGenerator::convertContained(), and QQmlJSCodeGenerator::convertStored().
Definition at line 150 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSLinter::lintFile().
|
inline |
Definition at line 147 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSLinter::lintFile().
|
inline |
Definition at line 162 of file qqmljstyperesolver_p.h.
QQmlJSScope::ConstPtr QQmlJSTypeResolver::storedType | ( | const QQmlJSScope::ConstPtr & | type | ) | const |
Definition at line 1521 of file qqmljstyperesolver.cpp.
References equals(), genericType(), jsValueType(), QQmlJSScope::nonCompositeBaseType(), and voidType().
Referenced by builtinType(), checkEnums(), globalType(), memberType(), memberType(), registerContentForName(), returnType(), scopedType(), and valueType().
|
inline |
Definition at line 57 of file qqmljstyperesolver_p.h.
Referenced by canConvertForLiteralBinding().
|
inline |
Definition at line 56 of file qqmljstyperesolver_p.h.
Referenced by canConvertForLiteralBinding(), QQmlJSCodeGenerator::conversion(), QQmlJSCodeGenerator::convertStored(), QQmlJSTypePropagator::generate_CallProperty(), QQmlJSCodeGenerator::generate_CallPropertyLookup(), QQmlJSTypePropagator::generate_DefineObjectLiteral(), QQmlJSCodeGenerator::generate_GetLookup(), QQmlJSCodeGenerator::generate_LoadElement(), QQmlJSTypePropagator::generate_LoadElement(), QQmlJSCodeGenerator::generate_LoadRuntimeString(), QQmlJSTypePropagator::generate_LoadRuntimeString(), QQmlJSTypePropagator::generate_TypeofName(), QQmlJSTypePropagator::generate_TypeofValue(), QQmlJSMetaPropertyBinding::literalType(), memberType(), merge(), and typeForBinaryOperation().
|
inline |
Definition at line 62 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSCodeGenerator::convertStored().
QQmlJSRegisterContent QQmlJSTypeResolver::tracked | ( | const QQmlJSRegisterContent & | type | ) | const |
Definition at line 477 of file qqmljstyperesolver.cpp.
References trackedType(), and transformed().
Referenced by adjustOriginalType(), adjustTrackedType(), adjustTrackedType(), QQmlJSTypePropagator::generate_DefineArray(), QQmlJSTypePropagator::generate_DefineObjectLiteral(), and QQmlJSFunctionInitializer::run().
QQmlJSScope::ConstPtr QQmlJSTypeResolver::trackedContainedType | ( | const QQmlJSRegisterContent & | container | ) | const |
Definition at line 482 of file qqmljstyperesolver.cpp.
References containedType(), and m_trackedTypes.
QQmlJSScope::ConstPtr QQmlJSTypeResolver::trackedType | ( | const QQmlJSScope::ConstPtr & | type | ) | const |
Definition at line 348 of file qqmljstyperesolver.cpp.
References QQmlJSScope::clone(), DoNotCloneTypes, it, m_cloneMode, and m_trackedTypes.
Referenced by tracked().
|
protected |
Definition at line 362 of file qqmljstyperesolver.cpp.
References QQmlJSRegisterContent::conversionOrigins(), QQmlJSRegisterContent::conversionResult(), QQmlJSRegisterContent::create(), QQmlJSRegisterContent::enumeration(), QQmlJSRegisterContent::enumMember(), QQmlJSRegisterContent::importNamespace(), QQmlJSRegisterContent::isConversion(), QQmlJSRegisterContent::isEnumeration(), QQmlJSRegisterContent::isImportNamespace(), QQmlJSRegisterContent::isMethod(), QQmlJSRegisterContent::isProperty(), QQmlJSRegisterContent::isType(), QQmlJSRegisterContent::method(), QQmlJSRegisterContent::property(), QQmlJSRegisterContent::scopeType(), QQmlJSMetaEnum::setType(), QQmlJSMetaProperty::setType(), QQmlJSRegisterContent::storedType(), this, QQmlJSMetaEnum::type(), QQmlJSMetaProperty::type(), QQmlJSRegisterContent::type(), and QQmlJSRegisterContent::variant().
Referenced by original(), and tracked().
QQmlJSRegisterContent QQmlJSTypeResolver::typeForArithmeticUnaryOperation | ( | UnaryOperator | op, |
const QQmlJSRegisterContent & | operand | ||
) | const |
Definition at line 246 of file qqmljstyperesolver.cpp.
References boolType(), builtinType(), Complement, containedType(), equals(), int32Type(), isIntegral(), Not, Plus, Q_FALLTHROUGH, and realType().
QQmlJSRegisterContent QQmlJSTypeResolver::typeForBinaryOperation | ( | QSOperator::Op | oper, |
const QQmlJSRegisterContent & | left, | ||
const QQmlJSRegisterContent & | right | ||
) | const |
Definition at line 189 of file qqmljstyperesolver.cpp.
References QSOperator::Add, QSOperator::As, QSOperator::BitAnd, QSOperator::BitOr, QSOperator::BitXor, boolType(), builtinType(), containedType(), QSOperator::Div, QSOperator::Equal, equals(), QSOperator::Exp, QSOperator::Ge, globalType(), QSOperator::Gt, QSOperator::In, int32Type(), isNumeric(), jsPrimitiveType(), QSOperator::Le, QSOperator::LShift, QSOperator::Lt, merge(), QSOperator::Mod, QSOperator::Mul, QSOperator::NotEqual, Q_ASSERT, realType(), QSOperator::RShift, QSOperator::StrictEqual, QSOperator::StrictNotEqual, stringType(), QSOperator::Sub, uint32Type(), and QSOperator::URShift.
Referenced by QQmlJSTypePropagator::generate_CmpEqInt(), and QQmlJSTypePropagator::generate_CmpNeInt().
QQmlJSScope::ConstPtr QQmlJSTypeResolver::typeForConst | ( | QV4::ReturnedValue | rv | ) | const |
Definition at line 164 of file qqmljstyperesolver.cpp.
References boolType(), emptyType(), QV4::Value::fromReturnedValue(), int32Type(), nullType(), realType(), and voidType().
Referenced by QQmlJSCodeGenerator::generate_LoadConst(), QQmlJSTypePropagator::generate_LoadConst(), and QQmlJSTypePropagator::generate_MoveConst().
|
inline |
Definition at line 87 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSMetaPropertyBinding::literalType(), memberType(), registerContentForName(), and typeFromAST().
QQmlJSScope::ConstPtr QQmlJSTypeResolver::typeFromAST | ( | QQmlJS::AST::Type * | type | ) | const |
Definition at line 152 of file qqmljstyperesolver.cpp.
References QmlIR::IRBuilder::asString(), m_imports, QQmlJSScope::ContextualTypes::type(), and typeForName().
|
inline |
Definition at line 50 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSCodeGenerator::convertStored().
|
inline |
Definition at line 52 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSTypePropagator::generate_LoadElement(), QQmlJSTypePropagator::generate_StoreElement(), merge(), and typeForBinaryOperation().
|
inline |
Definition at line 54 of file qqmljstyperesolver_p.h.
|
inline |
Definition at line 48 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSCodeGenerator::convertStored().
|
inline |
Definition at line 59 of file qqmljstyperesolver_p.h.
Referenced by canCompareWithQUrl(), canConvertForLiteralBinding(), and QQmlJSCodeGenerator::convertStored().
QQmlJSRegisterContent QQmlJSTypeResolver::valueType | ( | const QQmlJSRegisterContent & | list | ) | const |
Definition at line 1452 of file qqmljstyperesolver.cpp.
References QQmlJSScope::accessSemantics(), QQmlJSRegisterContent::create(), equals(), list, QQmlJSRegisterContent::ListValue, m_jsValueType, m_stringType, m_varType, property, storedType(), QQmlJSScope::valueType(), and valueType().
Referenced by QQmlJSCodeGenerator::generate_LoadElement(), QQmlJSTypePropagator::generate_LoadElement(), QQmlJSCodeGenerator::generate_StoreElement(), QQmlJSTypePropagator::generate_StoreElement(), and valueType().
|
inline |
Definition at line 63 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSTypePropagator::generate_DefineArray().
|
inline |
Definition at line 64 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSCodeGenerator::generate_DefineObjectLiteral(), QQmlJSTypePropagator::generate_DefineObjectLiteral(), QQmlJSCodeGenerator::generate_GetLookup(), and memberType().
|
inline |
Definition at line 65 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSCodeGenerator::AccumulatorConverter::AccumulatorConverter(), canStrictlyCompareWithVar(), QQmlJSCodeGenerator::contentPointer(), QQmlJSCodeGenerator::contentType(), QQmlJSCodeGenerator::convertContained(), QQmlJSCodeGenerator::convertStored(), QQmlJSCodeGenerator::generate_As(), QQmlJSTypePropagator::generate_CallProperty(), QQmlJSTypePropagator::generate_DefineArray(), QQmlJSCodeGenerator::generate_DefineObjectLiteral(), QQmlJSTypePropagator::generate_DefineObjectLiteral(), QQmlJSCodeGenerator::generate_GetLookup(), QQmlJSCodeGenerator::generate_Ret(), QQmlJSTypePropagator::generate_StoreNameCommon(), QQmlJSCodeGenerator::getLookupPreparation(), memberType(), merge(), QQmlJSFunctionInitializer::run(), and QQmlJSCodeGenerator::setLookupPreparation().
|
inline |
Definition at line 42 of file qqmljstyperesolver_p.h.
Referenced by canStrictlyCompareWithVar(), QQmlJSCodeGenerator::convertStored(), QQmlJSCodeGenerator::generate_As(), QQmlJSTypePropagator::generate_As(), QQmlJSTypePropagator::generate_CallProperty(), QQmlJSCodeGenerator::generate_LoadConst(), QQmlJSCodeGenerator::generate_LoadElement(), QQmlJSTypePropagator::generate_LoadElement(), QQmlJSTypePropagator::generate_LoadQmlContextPropertyLookup(), QQmlJSCodeGenerator::generate_LoadUndefined(), QQmlJSTypePropagator::generate_LoadUndefined(), QQmlJSCodeGenerator::generate_MoveConst(), QQmlJSCodeGenerator::generate_Ret(), QQmlJSTypePropagator::generate_Ret(), QQmlJSTypePropagator::generate_StoreNameCommon(), isTypeStorable(), QQmlJSCodeGenerator::run(), storedType(), and typeForConst().
|
protected |
Definition at line 221 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSTypeResolver().
|
protected |
Definition at line 232 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSTypeResolver(), canPrimitivelyConvertFromTo(), genericType(), isPrimitive(), and isTriviallyCopyable().
|
protected |
Definition at line 235 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSTypeResolver(), canPrimitivelyConvertFromTo(), and genericType().
|
protected |
Definition at line 258 of file qqmljstyperesolver_p.h.
Referenced by adjustOriginalType(), adjustTrackedType(), adjustTrackedType(), generalizeType(), and trackedType().
|
protected |
Definition at line 237 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSTypeResolver(), canPrimitivelyConvertFromTo(), and genericType().
|
protected |
Definition at line 238 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSTypeResolver(), canPrimitivelyConvertFromTo(), and genericType().
|
protected |
Definition at line 218 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSTypeResolver().
|
protected |
Definition at line 223 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSTypeResolver(), genericType(), and isTriviallyCopyable().
|
protected |
Definition at line 249 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSTypeResolver().
|
protected |
Definition at line 254 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSTypeResolver(), init(), and typeFromAST().
|
protected |
Definition at line 226 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSTypeResolver(), genericType(), isSignedInteger(), and isTriviallyCopyable().
|
protected |
Definition at line 228 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSTypeResolver(), genericType(), isSignedInteger(), and isTriviallyCopyable().
|
protected |
Definition at line 230 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSTypeResolver(), genericType(), and isTriviallyCopyable().
|
protected |
Definition at line 224 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSTypeResolver(), genericType(), isSignedInteger(), and isTriviallyCopyable().
|
protected |
Definition at line 250 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSTypeResolver().
|
protected |
Definition at line 244 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSTypeResolver(), canHold(), canHoldUndefined(), canPrimitivelyConvertFromTo(), genericType(), and isPrimitive().
|
protected |
Definition at line 243 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSTypeResolver(), canHold(), canHoldUndefined(), canPrimitivelyConvertFromTo(), genericType(), and valueType().
|
protected |
Definition at line 245 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSTypeResolver(), canHold(), and genericType().
|
protected |
Definition at line 259 of file qqmljstyperesolver_p.h.
Referenced by genericType(), init(), memberType(), memberType(), and registerContentForName().
|
protected |
Definition at line 248 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSTypeResolver(), genericType(), and isTriviallyCopyable().
|
protected |
Definition at line 219 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSTypeResolver(), canPrimitivelyConvertFromTo(), isPrimitive(), and isTriviallyCopyable().
|
protected |
Definition at line 220 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSTypeResolver(), and isNumeric().
|
protected |
Definition at line 252 of file qqmljstyperesolver_p.h.
Referenced by idForScope(), init(), and scopeForId().
|
protected |
Definition at line 253 of file qqmljstyperesolver_p.h.
Referenced by init(), and scopeForLocation().
|
protected |
Definition at line 257 of file qqmljstyperesolver_p.h.
|
protected |
Definition at line 247 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSTypeResolver(), canHold(), and genericType().
|
protected |
Definition at line 246 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSTypeResolver(), and genericType().
|
protected |
Definition at line 222 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSTypeResolver(), genericType(), and isTriviallyCopyable().
|
protected |
Definition at line 255 of file qqmljstyperesolver_p.h.
Referenced by init().
|
protected |
Definition at line 234 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSTypeResolver(), areEquivalentLists(), and genericType().
|
protected |
Definition at line 233 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSTypeResolver(), areEquivalentLists(), canConvertFromTo(), canPrimitivelyConvertFromTo(), genericType(), isPrimitive(), and valueType().
|
protected |
Definition at line 239 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSTypeResolver(), canPrimitivelyConvertFromTo(), and genericType().
|
protected |
Definition at line 274 of file qqmljstyperesolver_p.h.
Referenced by adjustOriginalType(), adjustTrackedType(), adjustTrackedType(), comparableType(), generalizeType(), originalType(), trackedContainedType(), and trackedType().
|
protected |
Definition at line 227 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSTypeResolver(), genericType(), isTriviallyCopyable(), and isUnsignedInteger().
|
protected |
Definition at line 229 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSTypeResolver(), genericType(), isTriviallyCopyable(), and isUnsignedInteger().
|
protected |
Definition at line 231 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSTypeResolver(), genericType(), and isTriviallyCopyable().
|
protected |
Definition at line 225 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSTypeResolver(), genericType(), isTriviallyCopyable(), and isUnsignedInteger().
|
protected |
Definition at line 236 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSTypeResolver(), canPrimitivelyConvertFromTo(), and genericType().
|
protected |
Definition at line 240 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSTypeResolver(), areEquivalentLists(), canHold(), canPrimitivelyConvertFromTo(), and genericType().
|
protected |
Definition at line 241 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSTypeResolver(), and genericType().
|
protected |
Definition at line 242 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSTypeResolver(), areEquivalentLists(), canHold(), canHoldUndefined(), canPrimitivelyConvertFromTo(), genericType(), and valueType().
|
protected |
Definition at line 217 of file qqmljstyperesolver_p.h.
Referenced by QQmlJSTypeResolver(), canHoldUndefined(), canPrimitivelyConvertFromTo(), isPrimitive(), and isTriviallyCopyable().