aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/corelib/language/itemreaderastvisitor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/corelib/language/itemreaderastvisitor.cpp')
-rw-r--r--src/lib/corelib/language/itemreaderastvisitor.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/lib/corelib/language/itemreaderastvisitor.cpp b/src/lib/corelib/language/itemreaderastvisitor.cpp
index 9d77472c2..788539141 100644
--- a/src/lib/corelib/language/itemreaderastvisitor.cpp
+++ b/src/lib/corelib/language/itemreaderastvisitor.cpp
@@ -117,7 +117,11 @@ bool ItemReaderASTVisitor::visit(AST::UiObjectDefinition *ast)
if (ast->initializer) {
qSwap(m_item, item);
+ const ItemType oldInstanceItemType = m_instanceItemType;
+ if (itemType == ItemType::Parameters || itemType == ItemType::Depends)
+ m_instanceItemType = ItemType::ModuleParameters;
ast->initializer->accept(this);
+ m_instanceItemType = oldInstanceItemType;
qSwap(m_item, item);
}
@@ -266,7 +270,7 @@ Item *ItemReaderASTVisitor::targetItemForBinding(const QStringList &bindingName,
for (int i = 0; i < c; ++i) {
ValuePtr v = targetItem->ownProperty(bindingName.at(i));
if (!v) {
- const ItemType itemType = i < c - 1 ? ItemType::ModulePrefix : ItemType::ModuleInstance;
+ const ItemType itemType = i < c - 1 ? ItemType::ModulePrefix : m_instanceItemType;
Item *newItem = Item::create(m_itemPool, itemType);
newItem->setLocation(value->location());
v = ItemValue::create(newItem);