73 bool useOptionalImports =
false);
81 ImportedTypes importBuiltins();
82 void importQmldirs(
const QStringList &qmltypesFiles);
88 QHash<QString, QQmlJSScope::Ptr>
importedFiles()
const {
return m_importedFiles; }
94 ImportedTypes builtinInternalNames();
98 const auto result = std::move(m_warnings);
105 const auto result = std::move(m_globalWarnings);
106 m_globalWarnings.clear();
111 void setImportPaths(
const QStringList &importPaths);
120 const QString &implicitImportDirectory = {},
124 m_implicitImportDirectory(implicitImportDirectory),
125 m_qmldirFiles(qmldirFiles)
153 struct AvailableTypes
155 AvailableTypes(ImportedTypes builtins)
156 : cppNames(
std::move(builtins))
157 , qmlNames(
QQmlJS::ContextualTypes::QML, {}, cppNames.arrayType())
162 ImportedTypes cppNames;
165 ImportedTypes qmlNames;
171 bool hasSystemModule =
false;
176 bool isStaticModule =
false;
177 bool isSystemModule =
false;
179 QList<QQmlJSExportedScope> objects;
180 QHash<QString, QQmlJSExportedScope> scripts;
181 QList<QQmlDirParser::Import> imports;
182 QList<QQmlDirParser::Import> dependencies;
185 AvailableTypes builtinImportHelper();
186 bool importHelper(
const QString &module, AvailableTypes *
types,
188 bool isDependency =
false,
bool isFile =
false);
189 void processImport(
const QQmlJS::Import &importDescription,
const Import &
import,
190 AvailableTypes *
types);
191 void importDependencies(
const QQmlJSImporter::Import &
import, AvailableTypes *
types,
195 void readQmltypes(
const QString &filename, QList<QQmlJSExportedScope> *objects,
196 QList<QQmlDirParser::Import> *dependencies);
201 static void setQualifiedNamesOn(
const Import &
import);
205 QHash<QPair<QString, QTypeRevision>,
QString> m_seenImports;
206 QHash<QQmlJS::Import, QSharedPointer<AvailableTypes>> m_cachedImportTypes;
207 QHash<QString, Import> m_seenQmldirFiles;
209 QHash<QString, QQmlJSScope::Ptr> m_importedFiles;
210 QList<QQmlJS::DiagnosticMessage> m_globalWarnings;
211 QList<QQmlJS::DiagnosticMessage> m_warnings;
212 std::optional<AvailableTypes> m_builtins;
216 bool m_useOptionalImports;
218 ImportVisitor m_importVisitor;