From 7870b80ff70089937a6e7f03d99bd40e808c0242 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Thu, 27 Apr 2023 09:45:40 +0200 Subject: Fix Value copy constructor We forgot a member, which manifested itself when using module properties whose value referred to "original" on the group level. Also fix a check in Evaluator that prevented us from even trying to evaluate such properties. Amends fb52fed84a1510a7de0172e643d6fd66a780e2e8. Change-Id: I73cae5e6d9603f277862a1ccc8ea8f676d6a5ab1 Reviewed-by: Ivan Komissarov --- src/lib/corelib/language/evaluator.cpp | 3 ++- src/lib/corelib/language/value.cpp | 2 ++ tests/auto/language/testdata/modulepropertiesingroups.qbs | 9 +++++++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/lib/corelib/language/evaluator.cpp b/src/lib/corelib/language/evaluator.cpp index 3d4c98a79..833ab96f2 100644 --- a/src/lib/corelib/language/evaluator.cpp +++ b/src/lib/corelib/language/evaluator.cpp @@ -570,7 +570,8 @@ private: if (data->item->propertyDeclaration(*propertyName).isScalar()) { const Item *item = itemOfProperty; - if (item->type() != ItemType::ModuleInstance) { + if (item->type() != ItemType::ModuleInstance + && item->type() != ItemType::ModuleInstancePlaceholder) { const QString errorMessage = Tr::tr("The special value 'original' can only " "be used with module properties."); extraScope = throwError(engine->context(), errorMessage); diff --git a/src/lib/corelib/language/value.cpp b/src/lib/corelib/language/value.cpp index 7ba9ff384..fabc64ccd 100644 --- a/src/lib/corelib/language/value.cpp +++ b/src/lib/corelib/language/value.cpp @@ -57,7 +57,9 @@ Value::Value(Type t, bool createdByPropertiesBlock) : m_type(t) Value::Value(const Value &other) : m_type(other.m_type), m_scope(other.m_scope), + m_scopeName(other.m_scopeName), m_next(other.m_next ? other.m_next->clone() : ValuePtr()), + m_candidates(other.m_candidates), m_flags(other.m_flags) { } diff --git a/tests/auto/language/testdata/modulepropertiesingroups.qbs b/tests/auto/language/testdata/modulepropertiesingroups.qbs index e3857bdf4..49f24c0ca 100644 --- a/tests/auto/language/testdata/modulepropertiesingroups.qbs +++ b/tests/auto/language/testdata/modulepropertiesingroups.qbs @@ -80,4 +80,13 @@ Project { } } } + + Product { + name: "module-property-in-group-condition" + Depends { name: "cpp" } + Group { + condition: qbs.architecture === "x86_64" + cpp.includePaths: "." + } + } } -- cgit v1.2.1