aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@digia.com>2014-03-17 21:26:04 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-03-18 09:05:57 +0100
commitfa24ef3d721a7b94d0c5abbc6c9558e74bdb0f3d (patch)
tree37bac24bafc1d2b879d76ac225272912538d072d /src
parent3f7951c04ef474f81eda2134b67c4e4020fe39d1 (diff)
Cleanup, part 2
* QQmlCodeGenerator -> QQmlIR::IRBuilder (it doesn't generate code, it generates the Object/Property/Signal/etc. IR of the .qml file, that's going to get transformed to QV4::CompiledData::*) * ParsedQML -> QQmlIR::Document Change-Id: I329e858487b66e1ae528d44316761f5dd34b79f4 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Diffstat (limited to 'src')
-rw-r--r--src/qml/compiler/compiler.pri4
-rw-r--r--src/qml/compiler/qqmlirbuilder.cpp (renamed from src/qml/compiler/qqmlcodegenerator.cpp)76
-rw-r--r--src/qml/compiler/qqmlirbuilder_p.h (renamed from src/qml/compiler/qqmlcodegenerator_p.h)29
-rw-r--r--src/qml/compiler/qqmltypecompiler.cpp40
-rw-r--r--src/qml/compiler/qqmltypecompiler_p.h9
-rw-r--r--src/qml/qml/qqmlcompiler_p.h1
-rw-r--r--src/qml/qml/qqmltypeloader.cpp99
-rw-r--r--src/qml/qml/qqmltypeloader_p.h12
8 files changed, 133 insertions, 137 deletions
diff --git a/src/qml/compiler/compiler.pri b/src/qml/compiler/compiler.pri
index 24379ca5f3..6e3159ba4e 100644
--- a/src/qml/compiler/compiler.pri
+++ b/src/qml/compiler/compiler.pri
@@ -11,7 +11,7 @@ HEADERS += \
$$PWD/qv4isel_moth_p.h \
$$PWD/qv4isel_util_p.h \
$$PWD/qv4ssa_p.h \
- $$PWD/qqmlcodegenerator_p.h \
+ $$PWD/qqmlirbuilder_p.h \
$$PWD/qqmltypecompiler_p.h
SOURCES += \
@@ -23,5 +23,5 @@ SOURCES += \
$$PWD/qv4isel_p.cpp \
$$PWD/qv4jsir.cpp \
$$PWD/qv4ssa.cpp \
- $$PWD/qqmlcodegenerator.cpp \
+ $$PWD/qqmlirbuilder.cpp \
$$PWD/qqmltypecompiler.cpp
diff --git a/src/qml/compiler/qqmlcodegenerator.cpp b/src/qml/compiler/qqmlirbuilder.cpp
index c826049ef7..dbd733f506 100644
--- a/src/qml/compiler/qqmlcodegenerator.cpp
+++ b/src/qml/compiler/qqmlirbuilder.cpp
@@ -39,7 +39,7 @@
**
****************************************************************************/
-#include "qqmlcodegenerator_p.h"
+#include "qqmlirbuilder_p.h"
#include <private/qv4compileddata_p.h>
#include <private/qqmljsparser_p.h>
@@ -197,7 +197,7 @@ QStringList Signal::parameterStringList(const QStringList &stringPool) const
return result;
}
-QQmlCodeGenerator::QQmlCodeGenerator(const QSet<QString> &illegalNames)
+IRBuilder::IRBuilder(const QSet<QString> &illegalNames)
: illegalNames(illegalNames)
, _object(0)
, _propertyDeclaration(0)
@@ -205,7 +205,7 @@ QQmlCodeGenerator::QQmlCodeGenerator(const QSet<QString> &illegalNames)
{
}
-bool QQmlCodeGenerator::generateFromQml(const QString &code, const QUrl &url, const QString &urlString, ParsedQML *output)
+bool IRBuilder::generateFromQml(const QString &code, const QUrl &url, const QString &urlString, Document *output)
{
this->url = url;
QQmlJS::AST::UiProgram *program = 0;
@@ -268,7 +268,7 @@ bool QQmlCodeGenerator::generateFromQml(const QString &code, const QUrl &url, co
return errors.isEmpty();
}
-bool QQmlCodeGenerator::isSignalPropertyName(const QString &name)
+bool IRBuilder::isSignalPropertyName(const QString &name)
{
if (name.length() < 3) return false;
if (!name.startsWith(QStringLiteral("on"))) return false;
@@ -282,18 +282,18 @@ bool QQmlCodeGenerator::isSignalPropertyName(const QString &name)
return false; // consists solely of underscores - invalid.
}
-bool QQmlCodeGenerator::visit(QQmlJS::AST::UiArrayMemberList *ast)
+bool IRBuilder::visit(QQmlJS::AST::UiArrayMemberList *ast)
{
return QQmlJS::AST::Visitor::visit(ast);
}
-bool QQmlCodeGenerator::visit(QQmlJS::AST::UiProgram *)
+bool IRBuilder::visit(QQmlJS::AST::UiProgram *)
{
Q_ASSERT(!"should not happen");
return false;
}
-bool QQmlCodeGenerator::visit(QQmlJS::AST::UiObjectDefinition *node)
+bool IRBuilder::visit(QQmlJS::AST::UiObjectDefinition *node)
{
// The grammar can't distinguish between two different definitions here:
// Item { ... }
@@ -322,7 +322,7 @@ bool QQmlCodeGenerator::visit(QQmlJS::AST::UiObjectDefinition *node)
return false;
}
-bool QQmlCodeGenerator::visit(QQmlJS::AST::UiObjectBinding *node)
+bool IRBuilder::visit(QQmlJS::AST::UiObjectBinding *node)
{
int idx = 0;
if (!defineQMLObject(&idx, node->qualifiedTypeNameId, node->qualifiedTypeNameId->firstSourceLocation(), node->initializer))
@@ -331,13 +331,13 @@ bool QQmlCodeGenerator::visit(QQmlJS::AST::UiObjectBinding *node)
return false;
}
-bool QQmlCodeGenerator::visit(QQmlJS::AST::UiScriptBinding *node)
+bool IRBuilder::visit(QQmlJS::AST::UiScriptBinding *node)
{
appendBinding(node->qualifiedId, node->statement);
return false;
}
-bool QQmlCodeGenerator::visit(QQmlJS::AST::UiArrayBinding *node)
+bool IRBuilder::visit(QQmlJS::AST::UiArrayBinding *node)
{
const QQmlJS::AST::SourceLocation qualifiedNameLocation = node->qualifiedId->identifierToken;
Object *object = 0;
@@ -374,37 +374,37 @@ bool QQmlCodeGenerator::visit(QQmlJS::AST::UiArrayBinding *node)
return false;
}
-bool QQmlCodeGenerator::visit(QQmlJS::AST::UiHeaderItemList *list)
+bool IRBuilder::visit(QQmlJS::AST::UiHeaderItemList *list)
{
return QQmlJS::AST::Visitor::visit(list);
}
-bool QQmlCodeGenerator::visit(QQmlJS::AST::UiObjectInitializer *ast)
+bool IRBuilder::visit(QQmlJS::AST::UiObjectInitializer *ast)
{
return QQmlJS::AST::Visitor::visit(ast);
}
-bool QQmlCodeGenerator::visit(QQmlJS::AST::UiObjectMemberList *ast)
+bool IRBuilder::visit(QQmlJS::AST::UiObjectMemberList *ast)
{
return QQmlJS::AST::Visitor::visit(ast);
}
-bool QQmlCodeGenerator::visit(QQmlJS::AST::UiParameterList *ast)
+bool IRBuilder::visit(QQmlJS::AST::UiParameterList *ast)
{
return QQmlJS::AST::Visitor::visit(ast);
}
-bool QQmlCodeGenerator::visit(QQmlJS::AST::UiQualifiedId *id)
+bool IRBuilder::visit(QQmlJS::AST::UiQualifiedId *id)
{
return QQmlJS::AST::Visitor::visit(id);
}
-void QQmlCodeGenerator::accept(QQmlJS::AST::Node *node)
+void IRBuilder::accept(QQmlJS::AST::Node *node)
{
QQmlJS::AST::Node::acceptChild(node, this);
}
-bool QQmlCodeGenerator::defineQMLObject(int *objectIndex, QQmlJS::AST::UiQualifiedId *qualifiedTypeNameId, const QQmlJS::AST::SourceLocation &location, QQmlJS::AST::UiObjectInitializer *initializer, Object *declarationsOverride)
+bool IRBuilder::defineQMLObject(int *objectIndex, QQmlJS::AST::UiQualifiedId *qualifiedTypeNameId, const QQmlJS::AST::SourceLocation &location, QQmlJS::AST::UiObjectInitializer *initializer, Object *declarationsOverride)
{
if (QQmlJS::AST::UiQualifiedId *lastName = qualifiedTypeNameId) {
while (lastName->next)
@@ -446,7 +446,7 @@ bool QQmlCodeGenerator::defineQMLObject(int *objectIndex, QQmlJS::AST::UiQualifi
return true;
}
-bool QQmlCodeGenerator::visit(QQmlJS::AST::UiImport *node)
+bool IRBuilder::visit(QQmlJS::AST::UiImport *node)
{
QString uri;
QV4::CompiledData::Import *import = New<QV4::CompiledData::Import>();
@@ -518,7 +518,7 @@ bool QQmlCodeGenerator::visit(QQmlJS::AST::UiImport *node)
return false;
}
-bool QQmlCodeGenerator::visit(QQmlJS::AST::UiPragma *node)
+bool IRBuilder::visit(QQmlJS::AST::UiPragma *node)
{
Pragma *pragma = New<Pragma>();
@@ -562,7 +562,7 @@ static QStringList astNodeToStringList(QQmlJS::AST::Node *node)
return QStringList();
}
-bool QQmlCodeGenerator::visit(QQmlJS::AST::UiPublicMember *node)
+bool IRBuilder::visit(QQmlJS::AST::UiPublicMember *node)
{
static const struct TypeNameToType {
const char *name;
@@ -800,7 +800,7 @@ bool QQmlCodeGenerator::visit(QQmlJS::AST::UiPublicMember *node)
return false;
}
-bool QQmlCodeGenerator::visit(QQmlJS::AST::UiSourceElement *node)
+bool IRBuilder::visit(QQmlJS::AST::UiSourceElement *node)
{
if (QQmlJS::AST::FunctionDeclaration *funDecl = QQmlJS::AST::cast<QQmlJS::AST::FunctionDeclaration *>(node->sourceElement)) {
CompiledFunctionOrExpression *foe = New<CompiledFunctionOrExpression>();
@@ -823,7 +823,7 @@ bool QQmlCodeGenerator::visit(QQmlJS::AST::UiSourceElement *node)
return false;
}
-QString QQmlCodeGenerator::asString(QQmlJS::AST::UiQualifiedId *node)
+QString IRBuilder::asString(QQmlJS::AST::UiQualifiedId *node)
{
QString s;
@@ -837,7 +837,7 @@ QString QQmlCodeGenerator::asString(QQmlJS::AST::UiQualifiedId *node)
return s;
}
-QStringRef QQmlCodeGenerator::asStringRef(QQmlJS::AST::Node *node)
+QStringRef IRBuilder::asStringRef(QQmlJS::AST::Node *node)
{
if (!node)
return QStringRef();
@@ -845,7 +845,7 @@ QStringRef QQmlCodeGenerator::asStringRef(QQmlJS::AST::Node *node)
return textRefAt(node->firstSourceLocation(), node->lastSourceLocation());
}
-void QQmlCodeGenerator::extractVersion(QStringRef string, int *maj, int *min)
+void IRBuilder::extractVersion(QStringRef string, int *maj, int *min)
{
*maj = -1; *min = -1;
@@ -863,12 +863,12 @@ void QQmlCodeGenerator::extractVersion(QStringRef string, int *maj, int *min)
}
}
-QStringRef QQmlCodeGenerator::textRefAt(const QQmlJS::AST::SourceLocation &first, const QQmlJS::AST::SourceLocation &last) const
+QStringRef IRBuilder::textRefAt(const QQmlJS::AST::SourceLocation &first, const QQmlJS::AST::SourceLocation &last) const
{
return QStringRef(&sourceCode, first.offset, last.offset + last.length - first.offset);
}
-void QQmlCodeGenerator::setBindingValue(QV4::CompiledData::Binding *binding, QQmlJS::AST::Statement *statement)
+void IRBuilder::setBindingValue(QV4::CompiledData::Binding *binding, QQmlJS::AST::Statement *statement)
{
QQmlJS::AST::SourceLocation loc = statement->firstSourceLocation();
binding->valueLocation.line = loc.startLine;
@@ -921,7 +921,7 @@ void QQmlCodeGenerator::setBindingValue(QV4::CompiledData::Binding *binding, QQm
}
}
-void QQmlCodeGenerator::appendBinding(QQmlJS::AST::UiQualifiedId *name, QQmlJS::AST::Statement *value)
+void IRBuilder::appendBinding(QQmlJS::AST::UiQualifiedId *name, QQmlJS::AST::Statement *value)
{
const QQmlJS::AST::SourceLocation qualifiedNameLocation = name->identifierToken;
Object *object = 0;
@@ -932,7 +932,7 @@ void QQmlCodeGenerator::appendBinding(QQmlJS::AST::UiQualifiedId *name, QQmlJS::
qSwap(_object, object);
}
-void QQmlCodeGenerator::appendBinding(QQmlJS::AST::UiQualifiedId *name, int objectIndex, bool isOnAssignment)
+void IRBuilder::appendBinding(QQmlJS::AST::UiQualifiedId *name, int objectIndex, bool isOnAssignment)
{
const QQmlJS::AST::SourceLocation qualifiedNameLocation = name->identifierToken;
Object *object = 0;
@@ -943,7 +943,7 @@ void QQmlCodeGenerator::appendBinding(QQmlJS::AST::UiQualifiedId *name, int obje
qSwap(_object, object);
}
-void QQmlCodeGenerator::appendBinding(const QQmlJS::AST::SourceLocation &qualifiedNameLocation, const QQmlJS::AST::SourceLocation &nameLocation, quint32 propertyNameIndex, QQmlJS::AST::Statement *value)
+void IRBuilder::appendBinding(const QQmlJS::AST::SourceLocation &qualifiedNameLocation, const QQmlJS::AST::SourceLocation &nameLocation, quint32 propertyNameIndex, QQmlJS::AST::Statement *value)
{
if (stringAt(propertyNameIndex) == QStringLiteral("id")) {
setId(nameLocation, value);
@@ -962,7 +962,7 @@ void QQmlCodeGenerator::appendBinding(const QQmlJS::AST::SourceLocation &qualifi
}
}
-void QQmlCodeGenerator::appendBinding(const QQmlJS::AST::SourceLocation &qualifiedNameLocation, const QQmlJS::AST::SourceLocation &nameLocation, quint32 propertyNameIndex, int objectIndex, bool isListItem, bool isOnAssignment)
+void IRBuilder::appendBinding(const QQmlJS::AST::SourceLocation &qualifiedNameLocation, const QQmlJS::AST::SourceLocation &nameLocation, quint32 propertyNameIndex, int objectIndex, bool isListItem, bool isOnAssignment)
{
if (stringAt(propertyNameIndex) == QStringLiteral("id")) {
recordError(nameLocation, tr("Invalid component id specification"));
@@ -1000,14 +1000,14 @@ void QQmlCodeGenerator::appendBinding(const QQmlJS::AST::SourceLocation &qualifi
}
}
-Object *QQmlCodeGenerator::bindingsTarget() const
+Object *IRBuilder::bindingsTarget() const
{
if (_propertyDeclaration && _object->declarationsOverride)
return _object->declarationsOverride;
return _object;
}
-bool QQmlCodeGenerator::setId(const QQmlJS::AST::SourceLocation &idLocation, QQmlJS::AST::Statement *value)
+bool IRBuilder::setId(const QQmlJS::AST::SourceLocation &idLocation, QQmlJS::AST::Statement *value)
{
QQmlJS::AST::SourceLocation loc = value->firstSourceLocation();
QStringRef str;
@@ -1055,7 +1055,7 @@ bool QQmlCodeGenerator::setId(const QQmlJS::AST::SourceLocation &idLocation, QQm
return true;
}
-bool QQmlCodeGenerator::resolveQualifiedId(QQmlJS::AST::UiQualifiedId **nameToResolve, Object **object, bool onAssignment)
+bool IRBuilder::resolveQualifiedId(QQmlJS::AST::UiQualifiedId **nameToResolve, Object **object, bool onAssignment)
{
QQmlJS::AST::UiQualifiedId *qualifiedIdElement = *nameToResolve;
@@ -1134,7 +1134,7 @@ bool QQmlCodeGenerator::resolveQualifiedId(QQmlJS::AST::UiQualifiedId **nameToRe
return true;
}
-void QQmlCodeGenerator::recordError(const QQmlJS::AST::SourceLocation &location, const QString &description)
+void IRBuilder::recordError(const QQmlJS::AST::SourceLocation &location, const QString &description)
{
QQmlError error;
error.setUrl(url);
@@ -1144,7 +1144,7 @@ void QQmlCodeGenerator::recordError(const QQmlJS::AST::SourceLocation &location,
errors << error;
}
-void QQmlCodeGenerator::collectTypeReferences()
+void IRBuilder::collectTypeReferences()
{
foreach (Object *obj, _objects) {
if (obj->inheritedTypeNameIndex != emptyStringIndex) {
@@ -1170,7 +1170,7 @@ void QQmlCodeGenerator::collectTypeReferences()
}
}
-QQmlScript::LocationSpan QQmlCodeGenerator::location(QQmlJS::AST::SourceLocation start, QQmlJS::AST::SourceLocation end)
+QQmlScript::LocationSpan IRBuilder::location(QQmlJS::AST::SourceLocation start, QQmlJS::AST::SourceLocation end)
{
QQmlScript::LocationSpan rv;
rv.start.line = start.startLine;
@@ -1182,7 +1182,7 @@ QQmlScript::LocationSpan QQmlCodeGenerator::location(QQmlJS::AST::SourceLocation
return rv;
}
-bool QQmlCodeGenerator::isStatementNodeScript(QQmlJS::AST::Statement *statement)
+bool IRBuilder::isStatementNodeScript(QQmlJS::AST::Statement *statement)
{
if (QQmlJS::AST::ExpressionStatement *stmt = QQmlJS::AST::cast<QQmlJS::AST::ExpressionStatement *>(statement)) {
QQmlJS::AST::ExpressionNode *expr = stmt->expression;
@@ -1207,7 +1207,7 @@ bool QQmlCodeGenerator::isStatementNodeScript(QQmlJS::AST::Statement *statement)
return true;
}
-QV4::CompiledData::QmlUnit *QmlUnitGenerator::generate(ParsedQML &output)
+QV4::CompiledData::QmlUnit *QmlUnitGenerator::generate(Document &output)
{
jsUnitGenerator = &output.jsGenerator;
int unitSize = 0;
diff --git a/src/qml/compiler/qqmlcodegenerator_p.h b/src/qml/compiler/qqmlirbuilder_p.h
index 8bcadb7a54..3a0a2054db 100644
--- a/src/qml/compiler/qqmlcodegenerator_p.h
+++ b/src/qml/compiler/qqmlirbuilder_p.h
@@ -38,8 +38,8 @@
** $QT_END_LICENSE$
**
****************************************************************************/
-#ifndef QQMLCODEGENERATOR_P_H
-#define QQMLCODEGENERATOR_P_H
+#ifndef QQMLIRBUILDER_P_H
+#define QQMLIRBUILDER_P_H
#include <private/qqmljsast_p.h>
#include <private/qqmlpool_p.h>
@@ -223,7 +223,7 @@ struct Function
Function *next;
};
-struct CompiledFunctionOrExpression
+struct Q_QML_EXPORT CompiledFunctionOrExpression
{
CompiledFunctionOrExpression()
: node(0)
@@ -243,7 +243,7 @@ struct CompiledFunctionOrExpression
CompiledFunctionOrExpression *next;
};
-struct Object
+struct Q_QML_EXPORT Object
{
Q_DECLARE_TR_FUNCTIONS(Object)
public:
@@ -290,7 +290,7 @@ private:
PoolList<Function> *functions;
};
-struct Pragma
+struct Q_QML_EXPORT Pragma
{
enum PragmaType {
PragmaSingleton = 0x1
@@ -300,9 +300,9 @@ struct Pragma
QV4::CompiledData::Location location;
};
-struct ParsedQML
+struct Q_QML_EXPORT Document
{
- ParsedQML(bool debugMode)
+ Document(bool debugMode)
: jsModule(debugMode)
, jsGenerator(&jsModule, sizeof(QV4::CompiledData::QmlUnit))
{}
@@ -321,13 +321,12 @@ struct ParsedQML
QString stringAt(int index) const { return jsGenerator.strings.value(index); }
};
-// Doesn't really generate code per-se, but more the data structure
-struct Q_QML_EXPORT QQmlCodeGenerator : public QQmlJS::AST::Visitor
+struct Q_QML_EXPORT IRBuilder : public QQmlJS::AST::Visitor
{
Q_DECLARE_TR_FUNCTIONS(QQmlCodeGenerator)
public:
- QQmlCodeGenerator(const QSet<QString> &illegalNames);
- bool generateFromQml(const QString &code, const QUrl &url, const QString &urlString, ParsedQML *output);
+ IRBuilder(const QSet<QString> &illegalNames);
+ bool generateFromQml(const QString &code, const QUrl &url, const QString &urlString, Document *output);
static bool isSignalPropertyName(const QString &name);
@@ -423,7 +422,7 @@ struct Q_QML_EXPORT QmlUnitGenerator
{
}
- QV4::CompiledData::QmlUnit *generate(ParsedQML &output);
+ QV4::CompiledData::QmlUnit *generate(Document &output);
private:
typedef bool (Binding::*BindingFilter)() const;
@@ -434,7 +433,7 @@ private:
QV4::Compiler::JSUnitGenerator *jsUnitGenerator;
};
-struct PropertyResolver
+struct Q_QML_EXPORT PropertyResolver
{
PropertyResolver(QQmlPropertyCache *cache)
: cache(cache)
@@ -496,8 +495,8 @@ private:
int _idArrayTemp;
};
-} // namespace QtQml
+} // namespace QmlIR
QT_END_NAMESPACE
-#endif // QQMLCODEGENERATOR_P_H
+#endif // QQMLIRBUILDER_P_H
diff --git a/src/qml/compiler/qqmltypecompiler.cpp b/src/qml/compiler/qqmltypecompiler.cpp
index 9a132dcbbc..43157930fd 100644
--- a/src/qml/compiler/qqmltypecompiler.cpp
+++ b/src/qml/compiler/qqmltypecompiler.cpp
@@ -41,7 +41,7 @@
#include "qqmltypecompiler_p.h"
-#include <private/qqmlcompiler_p.h>
+#include <private/qqmlirbuilder_p.h>
#include <private/qqmlobjectcreator_p.h>
#include <private/qqmlcustomparser_p.h>
#include <private/qqmlvmemetaobject_p.h>
@@ -57,11 +57,11 @@
QT_BEGIN_NAMESPACE
-QQmlTypeCompiler::QQmlTypeCompiler(QQmlEnginePrivate *engine, QQmlCompiledData *compiledData, QQmlTypeData *typeData, QmlIR::ParsedQML *parsedQML)
+QQmlTypeCompiler::QQmlTypeCompiler(QQmlEnginePrivate *engine, QQmlCompiledData *compiledData, QQmlTypeData *typeData, QmlIR::Document *parsedQML)
: engine(engine)
, compiledData(compiledData)
, typeData(typeData)
- , parsedQML(parsedQML)
+ , document(parsedQML)
{
}
@@ -140,8 +140,8 @@ bool QQmlTypeCompiler::compile()
customParsers.insert(it.key(), customParser);
}
- compiledData->datas.reserve(parsedQML->objects.count());
- compiledData->propertyCaches.reserve(parsedQML->objects.count());
+ compiledData->datas.reserve(document->objects.count());
+ compiledData->propertyCaches.reserve(document->objects.count());
{
QQmlPropertyCacheCreator propertyCacheBuilder(this);
@@ -203,7 +203,7 @@ bool QQmlTypeCompiler::compile()
// Compile JS binding expressions and signal handlers
{
- QmlIR::JSCodeGen v4CodeGenerator(typeData->finalUrlString(), parsedQML->code, &parsedQML->jsModule, &parsedQML->jsParserEngine, parsedQML->program, compiledData->importCache, parsedQML->jsGenerator.strings);
+ QmlIR::JSCodeGen v4CodeGenerator(typeData->finalUrlString(), document->code, &document->jsModule, &document->jsParserEngine, document->program, compiledData->importCache, document->jsGenerator.strings);
QQmlJSCodeGenerator jsCodeGen(this, &v4CodeGenerator);
if (!jsCodeGen.generateCodeForComponents())
return false;
@@ -216,14 +216,14 @@ bool QQmlTypeCompiler::compile()
QV4::ExecutionEngine *v4 = engine->v4engine();
- QScopedPointer<QV4::EvalInstructionSelection> isel(v4->iselFactory->create(engine, v4->executableAllocator, &parsedQML->jsModule, &parsedQML->jsGenerator));
+ QScopedPointer<QV4::EvalInstructionSelection> isel(v4->iselFactory->create(engine, v4->executableAllocator, &document->jsModule, &document->jsGenerator));
isel->setUseFastLookups(false);
QV4::CompiledData::CompilationUnit *jsUnit = isel->compile(/*generated unit data*/false);
// Generate QML compiled type data structures
QmlIR::QmlUnitGenerator qmlGenerator;
- QV4::CompiledData::QmlUnit *qmlUnit = qmlGenerator.generate(*parsedQML);
+ QV4::CompiledData::QmlUnit *qmlUnit = qmlGenerator.generate(*document);
if (jsUnit) {
Q_ASSERT(!jsUnit->data);
@@ -295,17 +295,17 @@ void QQmlTypeCompiler::recordError(const QQmlError &error)
QString QQmlTypeCompiler::stringAt(int idx) const
{
- return parsedQML->stringAt(idx);
+ return document->stringAt(idx);
}
int QQmlTypeCompiler::registerString(const QString &str)
{
- return parsedQML->jsGenerator.registerString(str);
+ return document->jsGenerator.registerString(str);
}
QV4::IR::Module *QQmlTypeCompiler::jsIRModule() const
{
- return &parsedQML->jsModule;
+ return &document->jsModule;
}
const QV4::CompiledData::QmlUnit *QQmlTypeCompiler::qmlUnit() const
@@ -325,20 +325,20 @@ QHash<int, QQmlCompiledData::TypeReference*> *QQmlTypeCompiler::resolvedTypes()
QList<QmlIR::Object *> *QQmlTypeCompiler::qmlObjects()
{
- return &parsedQML->objects;
+ return &document->objects;
}
int QQmlTypeCompiler::rootObjectIndex() const
{
- return parsedQML->indexOfRootObject;
+ return document->indexOfRootObject;
}
void QQmlTypeCompiler::setPropertyCaches(const QVector<QQmlPropertyCache *> &caches)
{
Q_ASSERT(compiledData->propertyCaches.isEmpty());
compiledData->propertyCaches = caches;
- Q_ASSERT(caches.count() >= parsedQML->indexOfRootObject);
- compiledData->rootPropertyCache = caches.at(parsedQML->indexOfRootObject);
+ Q_ASSERT(caches.count() >= document->indexOfRootObject);
+ compiledData->rootPropertyCache = caches.at(document->indexOfRootObject);
compiledData->rootPropertyCache->addref();
}
@@ -375,17 +375,17 @@ QHash<int, QQmlCompiledData::CustomParserData> *QQmlTypeCompiler::customParserDa
QQmlJS::MemoryPool *QQmlTypeCompiler::memoryPool()
{
- return parsedQML->jsParserEngine.pool();
+ return document->jsParserEngine.pool();
}
QStringRef QQmlTypeCompiler::newStringRef(const QString &string)
{
- return parsedQML->jsParserEngine.newStringRef(string);
+ return document->jsParserEngine.newStringRef(string);
}
const QStringList &QQmlTypeCompiler::stringPool() const
{
- return parsedQML->jsGenerator.strings;
+ return document->jsGenerator.strings;
}
void QQmlTypeCompiler::setCustomParserBindings(const QVector<int> &bindings)
@@ -946,7 +946,7 @@ bool SignalHandlerConverter::convertSignalHandlerExpressionsToFunctionDeclaratio
continue;
}
- if (!QmlIR::QQmlCodeGenerator::isSignalPropertyName(propertyName))
+ if (!QmlIR::IRBuilder::isSignalPropertyName(propertyName))
continue;
QmlIR::PropertyResolver resolver(propertyCache);
@@ -1749,7 +1749,7 @@ bool QQmlPropertyValidator::validateObject(int objectIndex, const QV4::CompiledD
customParserBindings.setBit(i);
continue;
}
- } else if (QmlIR::QQmlCodeGenerator::isSignalPropertyName(name)
+ } else if (QmlIR::IRBuilder::isSignalPropertyName(name)
&& !(customParser->flags() & QQmlCustomParser::AcceptsSignalHandlers)) {
customBindings << binding;
customParserBindings.setBit(i);
diff --git a/src/qml/compiler/qqmltypecompiler_p.h b/src/qml/compiler/qqmltypecompiler_p.h
index 09e30a40f7..e21c13c5df 100644
--- a/src/qml/compiler/qqmltypecompiler_p.h
+++ b/src/qml/compiler/qqmltypecompiler_p.h
@@ -45,6 +45,7 @@
#include <qqmlerror.h>
#include <qhash.h>
#include <private/qqmlcompiler_p.h>
+#include <private/qqmlirbuilder_p.h>
QT_BEGIN_NAMESPACE
@@ -55,7 +56,7 @@ class QQmlTypeData;
class QQmlImports;
namespace QmlIR {
-struct ParsedQML;
+struct Document;
}
namespace QV4 {
@@ -69,7 +70,7 @@ struct QQmlTypeCompiler
{
Q_DECLARE_TR_FUNCTIONS(QQmlTypeCompiler)
public:
- QQmlTypeCompiler(QQmlEnginePrivate *engine, QQmlCompiledData *compiledData, QQmlTypeData *typeData, QmlIR::ParsedQML *parsedQML);
+ QQmlTypeCompiler(QQmlEnginePrivate *engine, QQmlCompiledData *compiledData, QQmlTypeData *typeData, QmlIR::Document *document);
bool compile();
@@ -109,7 +110,7 @@ private:
QQmlEnginePrivate *engine;
QQmlCompiledData *compiledData;
QQmlTypeData *typeData;
- QmlIR::ParsedQML *parsedQML;
+ QmlIR::Document *document;
// index is string index of type name (use obj->inheritedTypeNameIndex)
QHash<int, QQmlCustomParser*> customParsers;
};
@@ -154,7 +155,7 @@ protected:
// to the final signal name (onTextChanged -> textChanged) and sets the IsSignalExpression flag.
struct SignalHandlerConverter : public QQmlCompilePass
{
- Q_DECLARE_TR_FUNCTIONS(QQmlCodeGenerator)
+ Q_DECLARE_TR_FUNCTIONS(SignalHandlerConverter)
public:
SignalHandlerConverter(QQmlTypeCompiler *typeCompiler);
diff --git a/src/qml/qml/qqmlcompiler_p.h b/src/qml/qml/qqmlcompiler_p.h
index 98d308aa5c..e30fa389f6 100644
--- a/src/qml/qml/qqmlcompiler_p.h
+++ b/src/qml/qml/qqmlcompiler_p.h
@@ -61,7 +61,6 @@
#include "qqmlpropertycache_p.h"
#include "qqmltypenamecache_p.h"
#include "qqmltypeloader_p.h"
-#include <private/qqmlcodegenerator_p.h>
#include "private/qv4identifier_p.h"
#include <private/qqmljsastfwd_p.h>
#include "qqmlcustomparser_p.h"
diff --git a/src/qml/qml/qqmltypeloader.cpp b/src/qml/qml/qqmltypeloader.cpp
index 6b01a64c40..25e98d13a6 100644
--- a/src/qml/qml/qqmltypeloader.cpp
+++ b/src/qml/qml/qqmltypeloader.cpp
@@ -51,7 +51,7 @@
#include <private/qqmlcomponent_p.h>
#include <private/qqmlprofiler_p.h>
#include <private/qqmlmemoryprofiler_p.h>
-#include <private/qqmlcodegenerator_p.h>
+#include <private/qqmlirbuilder_p.h>
#include <private/qqmltypecompiler_p.h>
#include <QtCore/qdir.h>
@@ -1173,7 +1173,7 @@ void QQmlDataLoader::shutdownThread()
}
QQmlTypeLoader::Blob::Blob(const QUrl &url, QQmlDataBlob::Type type, QQmlTypeLoader *loader)
- : QQmlDataBlob(url, type), m_typeLoader(loader), m_imports(loader), m_isSingleton(false)
+ : QQmlDataBlob(url, type), m_typeLoader(loader), m_importCache(loader), m_isSingleton(false)
{
}
@@ -1211,7 +1211,7 @@ bool QQmlTypeLoader::Blob::updateQmldir(QQmlQmldirData *data, const QQmlScript::
typeLoader()->setQmldirContent(qmldirIdentifier, data->content());
- if (!m_imports.updateQmldirContent(typeLoader()->importDatabase(), import->uri, import->qualifier, qmldirIdentifier, qmldirUrl, errors))
+ if (!m_importCache.updateQmldirContent(typeLoader()->importDatabase(), import->uri, import->qualifier, qmldirIdentifier, qmldirUrl, errors))
return false;
QHash<const QQmlScript::Import *, int>::iterator it = m_unresolvedImports.find(import);
@@ -1256,14 +1256,14 @@ bool QQmlTypeLoader::Blob::addImport(const QQmlScript::Import &import, QList<QQm
if (QQmlMetaType::isLockedModule(import.uri, import.majorVersion)) {
//Locked modules are checked first, to save on filesystem checks
- if (!m_imports.addLibraryImport(importDatabase, import.uri, import.qualifier, import.majorVersion,
+ if (!m_importCache.addLibraryImport(importDatabase, import.uri, import.qualifier, import.majorVersion,
import.minorVersion, QString(), QString(), false, errors))
return false;
- } else if (m_imports.locateQmldir(importDatabase, import.uri, import.majorVersion, import.minorVersion,
+ } else if (m_importCache.locateQmldir(importDatabase, import.uri, import.majorVersion, import.minorVersion,
&qmldirFilePath, &qmldirUrl)) {
// This is a local library import
- if (!m_imports.addLibraryImport(importDatabase, import.uri, import.qualifier, import.majorVersion,
+ if (!m_importCache.addLibraryImport(importDatabase, import.uri, import.qualifier, import.majorVersion,
import.minorVersion, qmldirFilePath, qmldirUrl, false, errors))
return false;
@@ -1282,7 +1282,7 @@ bool QQmlTypeLoader::Blob::addImport(const QQmlScript::Import &import, QList<QQm
} else {
// Is this a module?
if (QQmlMetaType::isAnyModule(import.uri)) {
- if (!m_imports.addLibraryImport(importDatabase, import.uri, import.qualifier, import.majorVersion,
+ if (!m_importCache.addLibraryImport(importDatabase, import.uri, import.qualifier, import.majorVersion,
import.minorVersion, QString(), QString(), false, errors))
return false;
} else {
@@ -1293,7 +1293,7 @@ bool QQmlTypeLoader::Blob::addImport(const QQmlScript::Import &import, QList<QQm
QStringList remotePathList = importDatabase->importPathList(QQmlImportDatabase::Remote);
if (!remotePathList.isEmpty()) {
// Add this library and request the possible locations for it
- if (!m_imports.addLibraryImport(importDatabase, import.uri, import.qualifier, import.majorVersion,
+ if (!m_importCache.addLibraryImport(importDatabase, import.uri, import.qualifier, import.majorVersion,
import.minorVersion, QString(), QString(), true, errors))
return false;
@@ -1324,7 +1324,7 @@ bool QQmlTypeLoader::Blob::addImport(const QQmlScript::Import &import, QList<QQm
}
}
- if (!m_imports.addFileImport(importDatabase, import.uri, import.qualifier, import.majorVersion,
+ if (!m_importCache.addFileImport(importDatabase, import.uri, import.qualifier, import.majorVersion,
import.minorVersion, incomplete, errors))
return false;
@@ -1401,7 +1401,7 @@ void QQmlTypeLoader::Blob::dependencyComplete(QQmlDataBlob *blob)
if (!qmldirDataAvailable(data, &errors)) {
Q_ASSERT(errors.size());
QQmlError error(errors.takeFirst());
- error.setUrl(m_imports.baseUrl());
+ error.setUrl(m_importCache.baseUrl());
error.setLine(import->location.start.line);
error.setColumn(import->location.start.column);
errors.prepend(error); // put it back on the list after filling out information.
@@ -2045,7 +2045,7 @@ void QQmlTypeData::done()
const TypeReference &type = *it;
Q_ASSERT(!type.typeData || type.typeData->isCompleteOrError());
if (type.typeData && type.typeData->isError()) {
- QString typeName = parsedQML->jsGenerator.strings.at(it.key());
+ QString typeName = m_document->jsGenerator.strings.at(it.key());
QList<QQmlError> errors = type.typeData->errors();
QQmlError error;
@@ -2092,7 +2092,7 @@ void QQmlTypeData::done()
if (!isError())
compile();
- parsedQML.reset();
+ m_document.reset();
}
void QQmlTypeData::completed()
@@ -2108,14 +2108,14 @@ bool QQmlTypeData::loadImplicitImport()
{
m_implicitImportLoaded = true; // Even if we hit an error, count as loaded (we'd just keep hitting the error)
- m_imports.setBaseUrl(finalUrl(), finalUrlString());
+ m_importCache.setBaseUrl(finalUrl(), finalUrlString());
QQmlImportDatabase *importDatabase = typeLoader()->importDatabase();
// For local urls, add an implicit import "." as most overridden lookup.
// This will also trigger the loading of the qmldir and the import of any native
// types from available plugins.
QList<QQmlError> implicitImportErrors;
- m_imports.addImplicitImport(importDatabase, &implicitImportErrors);
+ m_importCache.addImplicitImport(importDatabase, &implicitImportErrors);
if (!implicitImportErrors.isEmpty()) {
setError(implicitImportErrors);
@@ -2133,14 +2133,14 @@ void QQmlTypeData::dataReceived(const Data &data)
if (data.isFile()) preparseData = data.asFile()->metaData(QLatin1String("qml:preparse"));
QQmlEngine *qmlEngine = typeLoader()->engine();
- parsedQML.reset(new QmlIR::ParsedQML(QV8Engine::getV4(qmlEngine)->debugger != 0));
- QmlIR::QQmlCodeGenerator compiler(QV8Engine::get(qmlEngine)->illegalNames());
- if (!compiler.generateFromQml(code, finalUrl(), finalUrlString(), parsedQML.data())) {
+ m_document.reset(new QmlIR::Document(QV8Engine::getV4(qmlEngine)->debugger != 0));
+ QmlIR::IRBuilder compiler(QV8Engine::get(qmlEngine)->illegalNames());
+ if (!compiler.generateFromQml(code, finalUrl(), finalUrlString(), m_document.data())) {
setError(compiler.errors);
return;
}
- m_imports.setBaseUrl(finalUrl(), finalUrlString());
+ m_importCache.setBaseUrl(finalUrl(), finalUrlString());
// For remote URLs, we don't delay the loading of the implicit import
// because the loading probably requires an asynchronous fetch of the
@@ -2167,13 +2167,12 @@ void QQmlTypeData::dataReceived(const Data &data)
QList<QQmlError> errors;
- // ### convert to use new data structure once old compiler is gone.
- if (m_newImports.isEmpty()) {
- m_newImports.reserve(parsedQML->imports.size());
- foreach (QV4::CompiledData::Import *i, parsedQML->imports) {
+ if (m_imports.isEmpty()) {
+ m_imports.reserve(m_document->imports.count());
+ foreach (QV4::CompiledData::Import *i, m_document->imports) {
QQmlScript::Import import;
- import.uri = parsedQML->stringAt(i->uriIndex);
- import.qualifier = parsedQML->stringAt(i->qualifierIndex);
+ import.uri = m_document->stringAt(i->uriIndex);
+ import.qualifier = m_document->stringAt(i->qualifierIndex);
import.majorVersion = i->majorVersion;
import.minorVersion = i->minorVersion;
import.location.start.line = i->location.line;
@@ -2185,17 +2184,15 @@ void QQmlTypeData::dataReceived(const Data &data)
case QV4::CompiledData::Import::ImportScript: import.type = QQmlScript::Import::Script; break;
default: break;
}
-
-
- m_newImports << import;
+ m_imports << import;
}
}
- foreach (const QQmlScript::Import &import, m_newImports) {
+ foreach (const QQmlScript::Import &import, m_imports) {
if (!addImport(import, &errors)) {
Q_ASSERT(errors.size());
QQmlError error(errors.takeFirst());
- error.setUrl(m_imports.baseUrl());
+ error.setUrl(m_importCache.baseUrl());
error.setLine(import.location.start.line);
error.setColumn(import.location.start.column);
errors.prepend(error); // put it back on the list after filling out information.
@@ -2204,10 +2201,9 @@ void QQmlTypeData::dataReceived(const Data &data)
}
}
- // ### convert to use new data structure once old compiler is gone.
- if (m_newPragmas.isEmpty()) {
- m_newPragmas.reserve(parsedQML->pragmas.size());
- foreach (QmlIR::Pragma *p, parsedQML->pragmas) {
+ if (m_pragmas.isEmpty()) {
+ m_pragmas.reserve(m_document->pragmas.count());
+ foreach (QmlIR::Pragma *p, m_document->pragmas) {
QQmlScript::Pragma pragma;
pragma.location.start.line = p->location.line;
pragma.location.start.column = p->location.column;
@@ -2217,17 +2213,18 @@ void QQmlTypeData::dataReceived(const Data &data)
default: break;
}
- m_newPragmas << pragma;
+ m_pragmas << pragma;
}
}
- foreach (const QQmlScript::Pragma &pragma, m_newPragmas) {
+ foreach (const QQmlScript::Pragma &pragma, m_pragmas) {
if (!addPragma(pragma, &errors)) {
Q_ASSERT(errors.size());
setError(errors);
return;
}
}
+
}
void QQmlTypeData::allDependenciesDone()
@@ -2242,7 +2239,7 @@ void QQmlTypeData::allDependenciesDone()
foreach (const QQmlScript::Import *import, m_unresolvedImports.keys()) {
QQmlError error;
error.setDescription(QQmlTypeLoader::tr("module \"%1\" is not installed").arg(import->uri));
- error.setUrl(m_imports.baseUrl());
+ error.setUrl(m_importCache.baseUrl());
error.setLine(import->location.start.line);
error.setColumn(import->location.start.column);
errors.prepend(error);
@@ -2277,7 +2274,7 @@ void QQmlTypeData::compile()
QQmlCompilingProfiler prof(QQmlEnginePrivate::get(typeLoader()->engine())->profiler, m_compiledData->name);
- QQmlTypeCompiler compiler(QQmlEnginePrivate::get(typeLoader()->engine()), m_compiledData, this, parsedQML.data());
+ QQmlTypeCompiler compiler(QQmlEnginePrivate::get(typeLoader()->engine()), m_compiledData, this, m_document.data());
if (!compiler.compile()) {
setError(compiler.compilationErrors());
m_compiledData->release();
@@ -2288,7 +2285,7 @@ void QQmlTypeData::compile()
void QQmlTypeData::resolveTypes()
{
// Add any imported scripts to our resolved set
- foreach (const QQmlImports::ScriptReference &script, m_imports.resolvedScripts())
+ foreach (const QQmlImports::ScriptReference &script, m_importCache.resolvedScripts())
{
QQmlScriptBlob *blob = typeLoader()->getScript(script.location);
addDependency(blob);
@@ -2309,7 +2306,7 @@ void QQmlTypeData::resolveTypes()
}
// Lets handle resolved composite singleton types
- foreach (const QQmlImports::CompositeSingletonReference &csRef, m_imports.resolvedCompositeSingletons()) {
+ foreach (const QQmlImports::CompositeSingletonReference &csRef, m_importCache.resolvedCompositeSingletons()) {
TypeReference ref;
QQmlScript::TypeReference parserRef;
parserRef.name = csRef.typeName;
@@ -2337,9 +2334,9 @@ void QQmlTypeData::resolveTypes()
QV4::CompiledData::TypeReferenceMap typeReferences;
QStringList names;
- if (parsedQML) {
- typeReferences = parsedQML->typeReferences;
- names = parsedQML->jsGenerator.strings;
+ if (m_document) {
+ typeReferences = m_document->typeReferences;
+ names = m_document->jsGenerator.strings;
} else {
// ### collect from available QV4::CompiledData::QmlUnit
}
@@ -2356,14 +2353,14 @@ void QQmlTypeData::resolveTypes()
QList<QQmlError> errors;
const QString name = names.at(unresolvedRef.key());
- bool typeFound = m_imports.resolveType(name, &ref.type,
+ bool typeFound = m_importCache.resolveType(name, &ref.type,
&majorVersion, &minorVersion, &typeNamespace, &errors);
if (!typeNamespace && !typeFound && !m_implicitImportLoaded) {
// Lazy loading of implicit import
if (loadImplicitImport()) {
// Try again to find the type
errors.clear();
- typeFound = m_imports.resolveType(name, &ref.type,
+ typeFound = m_importCache.resolveType(name, &ref.type,
&majorVersion, &minorVersion, &typeNamespace, &errors);
} else {
return; //loadImplicitImport() hit an error, and called setError already
@@ -2385,7 +2382,7 @@ void QQmlTypeData::resolveTypes()
// Description should come from error provided by addImport() function.
error.setDescription(QQmlTypeLoader::tr("Unreported error adding script import to import database"));
}
- error.setUrl(m_imports.baseUrl());
+ error.setUrl(m_importCache.baseUrl());
error.setDescription(QQmlTypeLoader::tr("%1 %2").arg(name).arg(error.description()));
}
@@ -2418,14 +2415,14 @@ bool QQmlTypeData::resolveType(const QQmlScript::TypeReference *parserRef, int &
QQmlImportNamespace *typeNamespace = 0;
QList<QQmlError> errors;
- bool typeFound = m_imports.resolveType(parserRef->name, &ref.type,
+ bool typeFound = m_importCache.resolveType(parserRef->name, &ref.type,
&majorVersion, &minorVersion, &typeNamespace, &errors);
if (!typeNamespace && !typeFound && !m_implicitImportLoaded) {
// Lazy loading of implicit import
if (loadImplicitImport()) {
// Try again to find the type
errors.clear();
- typeFound = m_imports.resolveType(parserRef->name, &ref.type,
+ typeFound = m_importCache.resolveType(parserRef->name, &ref.type,
&majorVersion, &minorVersion, &typeNamespace, &errors);
} else {
return false; //loadImplicitImport() hit an error, and called setError already
@@ -2447,7 +2444,7 @@ bool QQmlTypeData::resolveType(const QQmlScript::TypeReference *parserRef, int &
// Description should come from error provided by addImport() function.
error.setDescription(QQmlTypeLoader::tr("Unreported error adding script import to import database"));
}
- error.setUrl(m_imports.baseUrl());
+ error.setUrl(m_importCache.baseUrl());
error.setDescription(QQmlTypeLoader::tr("%1 %2").arg(parserRef->name).arg(error.description()));
}
@@ -2647,7 +2644,7 @@ void QQmlScriptBlob::dataReceived(const Data &data)
return;
}
- m_imports.setBaseUrl(finalUrl(), finalUrlString());
+ m_importCache.setBaseUrl(finalUrl(), finalUrlString());
QList<QQmlError> errors;
@@ -2655,7 +2652,7 @@ void QQmlScriptBlob::dataReceived(const Data &data)
if (!addImport(import, &errors)) {
Q_ASSERT(errors.size());
QQmlError error(errors.takeFirst());
- error.setUrl(m_imports.baseUrl());
+ error.setUrl(m_importCache.baseUrl());
error.setLine(import.location.start.line);
error.setColumn(import.location.start.column);
errors.prepend(error); // put it back on the list after filling out information.
@@ -2704,7 +2701,7 @@ void QQmlScriptBlob::done()
m_scriptData->importCache->add(script.qualifier, scriptIndex, script.nameSpace);
}
- m_imports.populateCache(m_scriptData->importCache);
+ m_importCache.populateCache(m_scriptData->importCache);
m_scriptData->pragmas = m_metadata.pragmas;
diff --git a/src/qml/qml/qqmltypeloader_p.h b/src/qml/qml/qqmltypeloader_p.h
index adb998d1f8..6e759266ef 100644
--- a/src/qml/qml/qqmltypeloader_p.h
+++ b/src/qml/qml/qqmltypeloader_p.h
@@ -85,7 +85,7 @@ class QQmlDataLoader;
class QQmlExtensionInterface;
namespace QmlIR {
-struct ParsedQML;
+struct Document;
}
class Q_QML_PRIVATE_EXPORT QQmlDataBlob : public QQmlRefCount
@@ -275,7 +275,7 @@ public:
~Blob();
QQmlTypeLoader *typeLoader() const { return m_typeLoader; }
- const QQmlImports &imports() const { return m_imports; }
+ const QQmlImports &imports() const { return m_importCache; }
protected:
bool addImport(const QQmlScript::Import &import, QList<QQmlError> *errors);
@@ -294,7 +294,7 @@ public:
protected:
QQmlTypeLoader *m_typeLoader;
- QQmlImports m_imports;
+ QQmlImports m_importCache;
bool m_isSingleton;
QHash<const QQmlScript::Import *, int> m_unresolvedImports;
QList<QQmlQmldirData *> m_qmldirs;
@@ -455,9 +455,9 @@ private:
virtual void scriptImported(QQmlScriptBlob *blob, const QQmlScript::Location &location, const QString &qualifier, const QString &nameSpace);
- QScopedPointer<QmlIR::ParsedQML> parsedQML;
- QList<QQmlScript::Import> m_newImports;
- QList<QQmlScript::Pragma> m_newPragmas;
+ QScopedPointer<QmlIR::Document> m_document;
+ QList<QQmlScript::Import> m_imports;
+ QList<QQmlScript::Pragma> m_pragmas;
QList<ScriptReference> m_scripts;