70 const QHash<QString, ContextualType> &types,
71 const QMultiHash<QQmlJSScope::ConstPtr, QString> &names,
72 const QQmlJSScope::ConstPtr &arrayType)
82 bool hasType(
const QString &name)
const {
return m_types.contains(name); }
85 QString name(
const QQmlJSScope::ConstPtr &type)
const {
return m_names[type]; }
92 auto &scope = m_types[name].scope;
93 auto it = m_names.find(scope);
94 while (it != m_names.end() && it.key() == scope)
95 it = m_names.erase(it);
96 scope = QQmlJSScope::ConstPtr();
101 const auto it = m_types.constFind(name);
102 return it != m_types.constEnd() && it->scope.isNull();
107 Q_ASSERT(types.m_context == m_context);
108 for (
auto it = types.m_types.cbegin(), end = types.m_types.cend(); it != end; ++it) {
109 setType(it.key(), it.value());
111 for (
auto it = types.m_fileSelectedTypes.cbegin(), end = types.m_fileSelectedTypes.cend();
113 setFileSelectedType(it->fileSelector, it.key(), it->type);
120 return m_fileSelectedTypes.equal_range(name);
123 Q_QMLCOMPILER_EXPORT FileSelectorInfo
125 const auto &
names()
const {
return m_names; }
134 QHash<QString, ContextualType> m_types;
135 QMultiHash<QString, FileSelectedType> m_fileSelectedTypes;
136 QMultiHash<QQmlJSScope::ConstPtr, QString> m_names;
140 QQmlJSScope::ConstPtr m_arrayType;
ContextualType(const QQmlJSScope::ConstPtr &type, QTypeRevision revision, quint8 precedence)
ContextualType(const ImportedScope< QQmlJSScope::ConstPtr > &type, quint8 precedence)
ContextualType type(const QString &name) const
const QHash< QString, ContextualType > & types() const
QString name(const QQmlJSScope::ConstPtr &type) const
void addTypes(const ContextualTypes &types)
auto fileSelectionsEqualRange(const QString &name) const
CompileContext context() const
const auto & names() const
bool isNullType(const QString &name) const
ContextualTypes(CompileContext context, const QHash< QString, ContextualType > &types, const QMultiHash< QQmlJSScope::ConstPtr, QString > &names, const QQmlJSScope::ConstPtr &arrayType)
bool hasType(const QString &name) const
bool hasFileSelectors() const
void setType(const QString &name, const ContextualType &type)
QQmlJSScope::ConstPtr arrayType() const
void setFileSelectedType(const QString &fileSelector, const QString &name, const ContextualType &type)
void clearType(const QString &name)