10#include <private/qv4value_p.h>
12#include <private/qduplicatetracker_p.h>
14#include <QtCore/qloggingcategory.h>
30 : m_imports(importer->builtinInternalNames()),
35 m_voidType = builtinTypes.type(u
"void"_s).scope;
38 m_nullType = builtinTypes.type(u
"std::nullptr_t"_s).scope;
41 m_realType = builtinTypes.type(u
"double"_s).scope;
47 m_int8Type = builtinTypes.type(u
"qint8"_s).scope;
65 m_int64Type = builtinTypes.type(u
"qlonglong"_s).scope;
71 m_sizeType = builtinTypes.type(u
"qsizetype"_s).scope;
77 m_boolType = builtinTypes.type(u
"bool"_s).scope;
89 m_urlType = builtinTypes.type(u
"QUrl"_s).scope;
95 m_dateType = builtinTypes.type(u
"QDate"_s).scope;
98 m_timeType = builtinTypes.type(u
"QTime"_s).scope;
106 m_varType = builtinTypes.type(u
"QVariant"_s).scope;
205 qCDebug(lcTypeResolver()).nospace()
213 if (!
type->typeArgument)
215 if (typeId == u
"list"_s) {
217 return typeArgument->listType();
225 if (
value.isUndefined())
231 if (
value.isBoolean())
234 if (
value.isDouble())
393 return container.
type();
413 Q_UNREACHABLE_RETURN({});
450 enumeration.
setType((this->*op)(enumeration.
type()));
473 QList<QQmlJSScope::ConstPtr> transformedOrigins;
477 transformedOrigins.reserve(
origins.length());
479 transformedOrigins.append((
this->*op)(origin));
490 Q_UNREACHABLE_RETURN({});
495 bool hasObjectModulePrefix)
const
501 if (
type->isSingleton()) {
507 if (
type->isScript()) {
513 if (
const auto attached =
type->attachedType()) {
515 m_logger->
log(u
"Cannot resolve generic base of attached %1"_s.arg(
516 attached->internalName()),
519 }
else if (
type->accessSemantics() != QQmlJSScope::AccessSemantics::Reference) {
520 m_logger->
log(u
"Cannot retrieve attached object for non-reference type %1"_s.arg(
521 type->internalName()),
530 hasObjectModulePrefix
536 switch (
type->accessSemantics()) {
537 case QQmlJSScope::AccessSemantics::None:
538 case QQmlJSScope::AccessSemantics::Reference:
546 case QQmlJSScope::AccessSemantics::Sequence:
547 case QQmlJSScope::AccessSemantics::Value:
641 it->original = conversion;
659 bool useFancyName)
const
701 if (toTypeName == u
"QPoint"_s || toTypeName == u
"QPointF"_s
702 || toTypeName == u
"QSize"_s || toTypeName == u
"QSizeF"_s
703 || toTypeName == u
"QRect"_s || toTypeName == u
"QRectF"_s) {
729 QList<QQmlJSScope::ConstPtr>
origins;
732 if (
a.isConversion()) {
733 origins.append(
a.conversionOrigins());
734 aResultScope =
a.conversionResultScope();
737 aResultScope =
a.scopeType();
741 if (
b.isConversion()) {
742 origins.append(
b.conversionOrigins());
743 bResultScope =
b.conversionResultScope();
746 bResultScope =
b.scopeType();
754 merge(
a.storedType(),
b.storedType()),
757 merge(aResultScope, bResultScope),
759 merge(
a.scopeType(),
b.scopeType()));
771 const auto commonBaseType = [
this](
796 if (isInt32Compatible(
a) && isInt32Compatible(
b))
803 if (isUInt32Compatible(
a) && isUInt32Compatible(
b))
812 if (
auto commonBase = commonBaseType(
a,
b))
827 if (
equals(container, contained)
837 return contained->
accessSemantics() == QQmlJSScope::AccessSemantics::Sequence;
840 if (contained->
accessSemantics() != QQmlJSScope::AccessSemantics::Sequence)
843 return value->isReferenceType();
881 for (
const auto &origin :
origins) {
882 if (canBeUndefined(origin))
917 if (
type->isScript())
923 if (
type->accessSemantics() == QQmlJSScope::AccessSemantics::Reference) {
924 QString unresolvedBaseTypeName;
931 if (
base->internalName() == u
"QObject"_s) {
934 &&
base->internalName() == u
"QQmlComponent"_s) {
938 if (
auto baseBase =
base->baseType()) {
941 unresolvedBaseTypeName =
base->baseTypeName();
946 m_logger->
log(u
"Object type %1 is not derived from QObject or QQmlComponent. "
947 "You may need to fully qualify all names in C++ so that moc can see them. "
948 "You may also need to add qt_extract_metatypes(<target containing %2>)."_s
949 .
arg(
type->internalName(), unresolvedBaseTypeName),
957 if (
type->isListProperty())
1024 return typeRevision.isValid() && typeRevision >= revision;
1029 QQmlJSScopesByIdOptions options)
const
1034 if (defaultPropertyName.
isEmpty())
1037 const QList<QQmlJSMetaPropertyBinding> defaultPropBindings =
1059 if (found->hasOwnProperty(
name)) {
1060 QQmlJSMetaProperty prop = found->ownProperty(name);
1061 if (!isRevisionAllowed(prop.revision(), scope))
1063 if (m_parentMode == UseDocumentParent
1064 && name == base->parentPropertyName()) {
1065 QQmlJSScope::ConstPtr baseParent = base->parentScope();
1066 if (baseParent && baseParent->inherits(prop.type())
1067 && isAssignedToDefaultProperty(baseParent, base)) {
1068 prop.setType(baseParent);
1078 if (found->hasOwnMethod(
name)) {
1079 auto methods = found->ownMethods(name);
1080 for (auto it = methods.begin(); it != methods.end();) {
1081 if (!isRevisionAllowed(it->revision(), scope))
1082 it = methods.erase(it);
1106 if (m_jsGlobalObject->hasProperty(
name)) {
1108 jsValueType(), m_jsGlobalObject->property(
name),
1111 }
else if (m_jsGlobalObject->hasMethod(
name)) {
1125 if (
name.isEmpty() || !
name.at(0).isUpper())
1131 for (
const auto &enumeration : enums) {
1132 if ((enumeration.isScoped() || enumeration.isQml()) && enumeration.name() ==
name) {
1141 if (!enumeration.isScoped() && enumeration.hasKey(
name)) {
1156 bool *isExtension)
const
1164 ||
type->accessSemantics() != QQmlJSScope::AccessSemantics::Value
1165 || !
type->isStructured()) {
1170 *isExtension = !
type->extensionType().scope.isNull();
1177 bool *isExtension)
const
1183 ||
type->accessSemantics() != QQmlJSScope::AccessSemantics::Value
1184 || !
type->isCreatable()) {
1191 const auto ownMethods =
type->ownMethods();
1193 if (!
method.isConstructor())
1199 const auto methodArguments =
method.parameters();
1200 if (methodArguments.size() != 1)
1205 if (
equals(passedArgumentType, methodArgumentType))
1221 if (ctor.isValid()) {
1223 *isExtension =
true;
1229 *isExtension =
false;
1231 return doSelectConstructor(
type);
1242 for (
const auto eq : equivalentLists) {
1253 if (
type->isReferenceType())
1277 const bool matchByName = !
base->isComposite();
1279 derivedBase = derivedBase->baseType()) {
1283 && !derivedBase->isComposite()
1284 && derivedBase->internalName() ==
base->internalName()) {
1306 if (from->
accessSemantics() == QQmlJSScope::AccessSemantics::Reference
1317 return to->
scopeType() != QQmlJSScope::ScopeType::EnumScope;
1338 for (
const auto &originType :
types) {
1339 if (!
equals(from, originType))
1342 for (
const auto &targetType :
types) {
1343 if (
equals(to, targetType))
1354 && to->
accessSemantics() == QQmlJSScope::AccessSemantics::Reference) {
1367 return to->
accessSemantics() == QQmlJSScope::AccessSemantics::Sequence;
1371 for (
auto baseType = from; baseType; baseType = baseType->
baseType()) {
1372 if (
equals(baseType, to))
1374 if (matchByName && baseType->internalName() == to->
internalName())
1396 && from->
accessSemantics() == QQmlJSScope::AccessSemantics::Sequence) {
1418 int resultLookupIndex)
const
1433 varType(), prop, baseLookupIndex, resultLookupIndex,
1444 jsValueType(), prop, baseLookupIndex, resultLookupIndex,
1449 ||
type->accessSemantics() == QQmlJSScope::AccessSemantics::Sequence)
1450 &&
name == u
"length"_s) {
1460 prop, baseLookupIndex, resultLookupIndex,
1486 for (
auto scope =
type;
1506 m_logger->
log(u
"Cannot resolve generic base of attached %1"_s.arg(
1507 attached->internalName()),
1510 }
else if (
type->accessSemantics() != QQmlJSScope::AccessSemantics::Reference) {
1511 m_logger->
log(u
"Cannot retrieve attached object for non-reference type %1"_s.arg(
1512 type->internalName()),
1517 storedType(attached), attached, resultLookupIndex,
1544 if (
type.isType()) {
1554 if (
type.isProperty())
1556 if (
type.isEnumeration()) {
1557 const auto enumeration =
type.enumeration();
1558 if (!
type.enumMember().isEmpty() || !enumeration.hasKey(
name))
1563 if (
type.isMethod()) {
1573 if (
type.isImportNamespace()) {
1574 if (
type.scopeType()->accessSemantics() != QQmlJSScope::AccessSemantics::Reference) {
1575 m_logger->
log(u
"Cannot use a non-QObject type %1 to access prefixed import"_s.arg(
1576 type.scopeType()->internalName()),
1585 if (
type.isConversion()) {
1587 type.conversionResult(),
name,
type.resultLookupIndex(), lookupIndex);
1603 return equals(origin, m_voidType);
1612 Q_UNREACHABLE_RETURN({});
1621 if (scope->
accessSemantics() == QQmlJSScope::AccessSemantics::Sequence)
1628 return list.scopeType()->valueType();
1639 if (
list.isType()) {
1640 scope =
list.type();
1642 }
else if (
list.isConversion()) {
1644 }
else if (
list.isProperty()) {
1645 const auto prop =
list.property();
1646 scope = prop.type();
1654 property.setPropertyName(u
"[]"_s);
1655 property.setTypeName(
value->internalName());
1656 property.setType(
value);
1675 int lookupIndex)
const
1708 if (reg.isConversion())
1710 if (reg.isProperty())
1712 if (reg.isEnumeration())
1713 return equals(
type, reg.enumeration().type());
1725 if (
type->isScript())
1727 if (
type->isComposite()) {
1729 return nonComposite;
1734 if (
type->filePath().isEmpty())
1769 to.
storedType(), QList<QQmlJSScope::ConstPtr>{containedType(from)},
1784 return it->replacement ?
it->replacement :
it->original;
static JNINativeMethod methods[]
void clear() noexcept(std::is_nothrow_destructible< Node >::value)
Removes all items from the hash and frees up all memory used by it.
QQmlJSImporter::ImportedTypes imports() const
const QQmlJSLogger * logger() const
QQmlJSScopesById addressableScopes() const
QHash< QQmlJS::SourceLocation, QQmlJSMetaSignalHandler > signalHandlers() const
QHash< QV4::CompiledData::Location, QQmlJSScope::ConstPtr > scopesBylocation() const
QQmlJSScope::ConstPtr jsGlobalObject() const
void log(const QString &message, QQmlJS::LoggerWarningId id, const QQmlJS::SourceLocation &srcLocation, bool showContext=true, bool showFileName=true, const std::optional< QQmlJSFixSuggestion > &suggestion={}, const QString overrideFileName=QString())
QQmlJSRegisterContent storedIn(const QQmlJSScope::ConstPtr &newStoredType) const
QQmlJSScope::ConstPtr conversionResult() const
QQmlJSMetaProperty property() const
QQmlJSScope::ConstPtr scopeType() const
QQmlJSScope::ConstPtr conversionResultScope() const
uint importNamespace() const
bool isConversion() const
QList< QQmlJSScope::ConstPtr > conversionOrigins() const
bool isImportNamespace() const
ContentVariant variant() const
QQmlJSScope::ConstPtr type() const
QQmlJSScope::ConstPtr storedType() const
static QQmlJSRegisterContent create(const QQmlJSScope::ConstPtr &storedType, const QQmlJSScope::ConstPtr &type, int resultLookupIndex, ContentVariant variant, const QQmlJSScope::ConstPtr &scope={})
QQmlJSMetaEnum enumeration() const
int baseLookupIndex() const
QQmlJSRegisterContent castTo(const QQmlJSScope::ConstPtr &newContainedType) const
@ ExtensionObjectProperty
int resultLookupIndex() const
QString enumMember() const
bool isEnumeration() const
QList< QQmlJSMetaMethod > method() const
Tracks the types for the QmlCompiler.
QQmlJSMetaProperty ownProperty(const QString &name) const
QList< QQmlJSMetaPropertyBinding > propertyBindings(const QString &name) const
QString defaultPropertyName() const
static QQmlJSScope::Ptr create()
void setAccessSemantics(AccessSemantics semantics)
AnnotatedScope extensionType() const
QHash< QString, QQmlJSMetaEnum > ownEnumerations() const
QQmlJSScope::Ptr parentScope()
ScopeType scopeType() const
void setInternalName(const QString &internalName)
QString internalName() const
bool isReferenceType() const
AccessSemantics accessSemantics() const
bool isListProperty() const
std::optional< JavaScriptIdentifier > ownJSIdentifier(const QString &id) const
QQmlJSScope::ConstPtr listType() const
static QQmlJSScope::ConstPtr nonCompositeBaseType(const QQmlJSScope::ConstPtr &type)
QQmlJSScope::ConstPtr attachedType() const
QString valueTypeName() const
static QQmlJSScope::Ptr clone(const QQmlJSScope::ConstPtr &origin)
QDeferredSharedPointer< const QQmlJSScope > ConstPtr
QQmlJSMetaProperty property(const QString &name) const
static QTypeRevision nonCompositeBaseRevision(const ImportedScope< QQmlJSScope::ConstPtr > &scope)
static QString prettyName(QAnyStringView name)
bool hasOwnProperty(const QString &name) const
QQmlJSScope::ConstPtr baseType() const
static QQmlJSScope::ConstPtr findCurrentQMLScope(const QQmlJSScope::ConstPtr &scope)
void setFilePath(const QString &file)
QMultiHash< QString, QQmlJSMetaMethod > ownMethods() const
QTypeRevision baseTypeRevision() const
QQmlJSScope::ConstPtr valueType() const
bool hasOwnMethod(const QString &name) const
QQmlJSScope::ConstPtr scope(const QString &id, const QQmlJSScope::ConstPtr &referrer, QQmlJSScopesByIdOptions options=Default) const
bool equals(const QQmlJSScope::ConstPtr &a, const QQmlJSScope::ConstPtr &b) const
QQmlJSRegisterContent original(const QQmlJSRegisterContent &type) const
QQmlJSScope::ConstPtr m_int8Type
QQmlJSScope::ConstPtr trackedContainedType(const QQmlJSRegisterContent &container) const
QQmlJSRegisterContent merge(const QQmlJSRegisterContent &a, const QQmlJSRegisterContent &b) const
QQmlJSMetaMethod selectConstructor(const QQmlJSScope::ConstPtr &type, const QQmlJSScope::ConstPtr &argument, bool *isExtension) const
QQmlJSScope::ConstPtr m_stringListType
QQmlJSScope::ConstPtr m_arrayPrototype
QQmlJSImporter::ImportedTypes m_imports
QQmlJSScope::ConstPtr stringType() const
QQmlJSScope::ConstPtr m_realType
QQmlJSScope::ConstPtr m_int64Type
QQmlJSScope::ConstPtr m_uint16Type
QQmlJSScope::ConstPtr storedType(const QQmlJSScope::ConstPtr &type) const
QQmlJSRegisterContent cast(const QQmlJSRegisterContent &from, const QQmlJSScope::ConstPtr &to) const
QQmlJSScope::ConstPtr nullType() const
QQmlJSRegisterContent memberEnumType(const QQmlJSScope::ConstPtr &type, const QString &name) const
QQmlJSScope::ConstPtr m_voidType
QQmlJSRegisterContent tracked(const QQmlJSRegisterContent &type) const
QQmlJSScope::ConstPtr mathObject() const
QQmlJSScope::ConstPtr genericType(const QQmlJSScope::ConstPtr &type, ComponentIsGeneric allowComponent=ComponentIsGeneric::No) const
bool areEquivalentLists(const QQmlJSScope::ConstPtr &a, const QQmlJSScope::ConstPtr &b) const
QQmlJSScope::ConstPtr emptyType() const
bool registerIsStoredIn(const QQmlJSRegisterContent ®, const QQmlJSScope::ConstPtr &type) const
bool canPopulate(const QQmlJSScope::ConstPtr &type, const QQmlJSScope::ConstPtr &argument, bool *isExtension) const
QQmlJSScope::ConstPtr containedType(const QQmlJSRegisterContent &container) const
QQmlJSScope::ConstPtr jsPrimitiveType() const
QQmlJSRegisterContent typeForArithmeticUnaryOperation(UnaryOperator op, const QQmlJSRegisterContent &operand) const
QQmlJSScope::ConstPtr m_jsValueType
bool isNumeric(const QQmlJSRegisterContent &type) const
QQmlJSScope::ConstPtr m_int16Type
QQmlJSRegisterContent lengthProperty(bool isWritable, const QQmlJSScope::ConstPtr &scope) const
QQmlJSScope::ConstPtr consoleObject() const
QQmlJSScope::ConstPtr boolType() const
QQmlJSScope::ConstPtr trackedType(const QQmlJSScope::ConstPtr &type) const
QQmlJSScope::ConstPtr m_jsPrimitiveType
QQmlJSScope::ConstPtr jsGlobalObject() const
QQmlJSScopesById m_objectsById
bool adjustTrackedType(const QQmlJSScope::ConstPtr &tracked, const QQmlJSScope::ConstPtr &conversion) const
QQmlJSScope::ConstPtr m_qObjectListType
QQmlJSScope::ConstPtr m_varType
bool canPrimitivelyConvertFromTo(const QQmlJSScope::ConstPtr &from, const QQmlJSScope::ConstPtr &to) const
QQmlJSScope::ConstPtr m_byteArrayType
QQmlJSScope::ConstPtr m_forOfIteratorPtr
bool registerContains(const QQmlJSRegisterContent ®, const QQmlJSScope::ConstPtr &type) const
QQmlJSScope::ConstPtr m_forInIteratorPtr
bool inherits(const QQmlJSScope::ConstPtr &derived, const QQmlJSScope::ConstPtr &base) const
bool isIntegral(const QQmlJSRegisterContent &type) const
bool canHold(const QQmlJSScope::ConstPtr &container, const QQmlJSScope::ConstPtr &contained) const
bool isPrimitive(const QQmlJSRegisterContent &type) const
QQmlJSRegisterContent builtinType(const QQmlJSScope::ConstPtr &type) const
QQmlJSScope::ConstPtr m_qQmlScriptStringType
QQmlJSRegisterContent returnType(const QQmlJSScope::ConstPtr &type, QQmlJSRegisterContent::ContentVariant variant, const QQmlJSScope::ConstPtr &scope) const
bool canConvertFromTo(const QQmlJSScope::ConstPtr &from, const QQmlJSScope::ConstPtr &to) const
QQmlJSScope::ConstPtr m_qObjectType
QString containedTypeName(const QQmlJSRegisterContent &container, bool useFancyName=false) const
QQmlJSScope::ConstPtr jsValueType() const
QQmlJSRegisterContent globalType(const QQmlJSScope::ConstPtr &type) const
QQmlJSRegisterContent convert(const QQmlJSRegisterContent &from, const QQmlJSRegisterContent &to) const
QQmlJSScope::ConstPtr originalType(const QQmlJSScope::ConstPtr &type) const
bool canHoldUndefined(const QQmlJSRegisterContent &content) const
QQmlJSScope::ConstPtr sizeType() const
void adjustOriginalType(const QQmlJSScope::ConstPtr &tracked, const QQmlJSScope::ConstPtr &conversion) const
QQmlJSRegisterContent valueType(const QQmlJSRegisterContent &list) const
QHash< QV4::CompiledData::Location, QQmlJSScope::ConstPtr > m_objectsByLocation
QQmlJSScope::ConstPtr originalContainedType(const QQmlJSRegisterContent &container) const
QQmlJSScope::ConstPtr uint32Type() const
QQmlJSScope::ConstPtr comparableType(const QQmlJSScope::ConstPtr &type) const
QQmlJSScope::ConstPtr extractNonVoidFromOptionalType(const QQmlJSRegisterContent &content) const
bool checkEnums(const QQmlJSScope::ConstPtr &scope, const QString &name, QQmlJSRegisterContent *result, QQmlJSScope::ExtensionKind mode) const
bool isTriviallyCopyable(const QQmlJSScope::ConstPtr &type) const
QQmlJSScope::ConstPtr m_urlType
QQmlJSScope::ConstPtr m_uint32Type
QQmlJSScope::ConstPtr int32Type() const
QQmlJSScope::ConstPtr m_numberPrototype
QQmlJSScope::ConstPtr m_functionType
QQmlJSScope::ConstPtr m_listPropertyType
QQmlJSScope::ConstPtr m_variantMapType
QQmlJSScope::ConstPtr m_stringType
QQmlJSRegisterContent memberType(const QQmlJSRegisterContent &type, const QString &name, int lookupIndex=QQmlJSRegisterContent::InvalidLookupIndex) const
QQmlJSScope::ConstPtr m_nullType
QQmlJSScope::ConstPtr voidType() const
QQmlJSScope::ConstPtr m_sizeType
QQmlJSScope::ConstPtr m_dateTimeType
QQmlJSScope::ConstPtr typeFromAST(QQmlJS::AST::Type *type) const
QQmlJSRegisterContent registerContentForName(const QString &name, const QQmlJSScope::ConstPtr &scopeType=QQmlJSScope::ConstPtr(), bool hasObjectModuelPrefix=false) const
QQmlJSScope::ConstPtr m_floatType
QHash< QQmlJS::SourceLocation, QQmlJSMetaSignalHandler > m_signalHandlers
QQmlJSTypeResolver(QQmlJSImporter *importer)
QQmlJSRegisterContent iteratorPointer(const QQmlJSRegisterContent &listType, QQmlJS::AST::ForEachType type, int lookupIndex) const
QQmlJSScope::ConstPtr m_timeType
QQmlJSScope::ConstPtr m_boolType
QQmlJSScope::ConstPtr forOfIteratorPtr() const
QQmlJSScope::ConstPtr metaObjectType() const
QQmlJSScope::ConstPtr forInIteratorPtr() const
QQmlJSScope::ConstPtr m_metaObjectType
QQmlJSScope::ConstPtr realType() const
bool isOptionalType(const QQmlJSRegisterContent &content) const
QQmlJSScope::ConstPtr m_jsGlobalObject
void init(QQmlJSImportVisitor *visitor, QQmlJS::AST::Node *program)
void generalizeType(const QQmlJSScope::ConstPtr &type) const
QQmlJSScope::ConstPtr m_int32Type
bool isUnsignedInteger(const QQmlJSScope::ConstPtr &type) const
QQmlJSScope::ConstPtr scopeForLocation(const QV4::CompiledData::Location &location) const
QQmlJSScope::ConstPtr m_uint64Type
QQmlJSScope::ConstPtr m_emptyType
QQmlJSScope::ConstPtr typeForConst(QV4::ReturnedValue rv) const
bool canAddressValueTypes() const
bool isSignedInteger(const QQmlJSScope::ConstPtr &type) const
QQmlJSRegisterContent transformed(const QQmlJSRegisterContent &origin, QQmlJSScope::ConstPtr(QQmlJSTypeResolver::*op)(const QQmlJSScope::ConstPtr &) const) const
std::unique_ptr< QHash< QQmlJSScope::ConstPtr, TrackedType > > m_trackedTypes
QQmlJSScope::ConstPtr m_uint8Type
QQmlJSRegisterContent scopedType(const QQmlJSScope::ConstPtr &scope, const QString &name, int lookupIndex=QQmlJSRegisterContent::InvalidLookupIndex, QQmlJSScopesByIdOptions options=Default) const
QQmlJSScope::ConstPtr m_variantListType
QQmlJSScope::ConstPtr typeForName(const QString &name) const
bool isNativeArrayIndex(const QQmlJSScope::ConstPtr &type) const
QQmlJSScope::ConstPtr varType() const
QQmlJSRegisterContent typeForBinaryOperation(QSOperator::Op oper, const QQmlJSRegisterContent &left, const QQmlJSRegisterContent &right) const
QQmlJSScope::ConstPtr m_dateType
QQmlJSScope::ConstPtr variantMapType() const
const_iterator constEnd() const noexcept
const_iterator constFind(const T &value) const
iterator find(const T &value)
\macro QT_RESTRICTED_CAST_FROM_ASCII
bool isEmpty() const noexcept
Returns true if the string has no characters; otherwise returns false.
static constexpr QTypeRevision zero()
Produces a QTypeRevision with major and minor version {0}.
constexpr bool isValid() const
Returns true if the major version or the minor version is known, otherwise false.
static constexpr QTypeRevision fromEncodedVersion(Integer value)
Produces a QTypeRevision from the given value.
QSet< QString >::iterator it
Combined button and popup list for selecting options.
qsizetype erase(QByteArray &ba, const T &t)
static const QCssKnownValue origins[NumKnownOrigins - 1]
DBusConnection const char DBusError DBusBusType DBusError return DBusConnection DBusHandleMessageFunction void DBusFreeFunction return DBusConnection return DBusConnection return const char DBusError return DBusConnection DBusMessage dbus_uint32_t return DBusConnection dbus_bool_t DBusConnection DBusAddWatchFunction DBusRemoveWatchFunction DBusWatchToggledFunction void DBusFreeFunction return DBusConnection DBusDispatchStatusFunction void DBusFreeFunction DBusTimeout return DBusTimeout return DBusWatch return DBusWatch unsigned int return DBusError const DBusError return const DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessageIter int const void return DBusMessageIter DBusMessageIter return DBusMessageIter void DBusMessageIter void int return DBusMessage DBusMessageIter return DBusMessageIter return DBusMessageIter DBusMessageIter const char const char const char const char * method
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
#define Q_LOGGING_CATEGORY(name,...)
#define qCDebug(category,...)
GLboolean GLboolean GLboolean b
GLboolean GLboolean GLboolean GLboolean a
[7]
GLsizei GLenum GLenum * types
const QQmlSA::LoggerWarningId qmlPrefixedImportType
const QQmlSA::LoggerWarningId qmlCompiler
static bool isRevisionAllowed(int memberRevision, const QQmlJSScope::ConstPtr &scope)
static void assertExtension(const QQmlJSScope::ConstPtr &type, QLatin1String extension)
static QQmlJSRegisterContent::ContentVariant scopeContentVariant(QQmlJSScope::ExtensionKind mode, bool isMethod)
static QQmlJSRegisterContent::ContentVariant mergeVariants(QQmlJSRegisterContent::ContentVariant a, QQmlJSRegisterContent::ContentVariant b)
QtPrivate::QRegularExpressionMatchIteratorRangeBasedForIterator begin(const QRegularExpressionMatchIterator &iterator)
if(qFloatDistance(a, b)<(1<< 7))
[0]
QQmlJSScope::ConstPtr scope
static bool searchBaseAndExtensionTypes(QQmlJSScopePtr type, const Action &check)
ImportedScope< QQmlJSScope::ConstPtr > type(const QString &name) const
static constexpr Value fromReturnedValue(ReturnedValue val)
static QString asString(QQmlJS::AST::UiQualifiedId *node)