forked from qt-creator/qt-creator
QmlDesigner: Fix alias property
QmlDocumentParser was using the wrong constructor. The property alias constructor is now explicit. Task-number: QDS-15387 Change-Id: I753cbc259b21129865db54926f77a07391224b77 Reviewed-by: Marco Bubke <marco.bubke@qt.io> Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
committed by
Marco Bubke
parent
ee011dc19c
commit
8839b73420
@@ -848,15 +848,15 @@ public:
|
||||
explicit PropertyDeclaration(::Utils::SmallStringView name,
|
||||
ImportedTypeName typeName,
|
||||
PropertyDeclarationTraits traits,
|
||||
PropertyKind kind,
|
||||
::Utils::SmallStringView aliasPropertyName,
|
||||
::Utils::SmallStringView aliasPropertyNameTail = {})
|
||||
: name{name}
|
||||
, typeName{std::move(typeName)}
|
||||
, aliasPropertyName{aliasPropertyName}
|
||||
, aliasPropertyNameTail{aliasPropertyNameTail}
|
||||
|
||||
, traits{traits}
|
||||
, kind{PropertyKind::Property}
|
||||
, kind{kind}
|
||||
{}
|
||||
|
||||
explicit PropertyDeclaration(::Utils::SmallStringView name,
|
||||
|
@@ -240,6 +240,7 @@ void addPropertyDeclarations(Storage::Synchronization::Type &type,
|
||||
type.propertyDeclarations.emplace_back(Utils::SmallString{propertyDeclaration.name},
|
||||
std::move(importedTypeName),
|
||||
traits,
|
||||
Synchronization::PropertyKind::Alias,
|
||||
aliasPropertyName,
|
||||
aliasPropertyNameTail);
|
||||
}
|
||||
|
@@ -923,13 +923,28 @@ std::ostream &operator<<(std::ostream &out, const Type &type)
|
||||
<< ",\n\t\t\tdefault: " << type.defaultPropertyName << "\n\t\t\t)";
|
||||
}
|
||||
|
||||
std::ostream &operator<<(std::ostream &out, PropertyKind kind)
|
||||
|
||||
{
|
||||
switch (kind) {
|
||||
case PropertyKind::Property:
|
||||
out << "Property";
|
||||
break;
|
||||
case PropertyKind::Alias:
|
||||
out << "Alias";
|
||||
break;
|
||||
}
|
||||
|
||||
return out;
|
||||
}
|
||||
|
||||
std::ostream &operator<<(std::ostream &out, const PropertyDeclaration &propertyDeclaration)
|
||||
{
|
||||
using Utils::operator<<;
|
||||
return out << "(\"" << propertyDeclaration.name << "\", " << propertyDeclaration.typeName
|
||||
<< ", " << propertyDeclaration.typeId << ", " << propertyDeclaration.traits << ", "
|
||||
<< propertyDeclaration.propertyTypeId << ", \""
|
||||
<< propertyDeclaration.aliasPropertyName << "\")";
|
||||
<< propertyDeclaration.aliasPropertyName << "\", " << propertyDeclaration.kind << ")";
|
||||
}
|
||||
|
||||
std::ostream &operator<<(std::ostream &out, const FunctionDeclaration &functionDeclaration)
|
||||
|
@@ -50,8 +50,8 @@ MATCHER_P4(IsAliasPropertyDeclaration,
|
||||
traits,
|
||||
aliasPropertyName,
|
||||
std::string(negation ? "isn't " : "is ")
|
||||
+ PrintToString(
|
||||
Synchronization::PropertyDeclaration{name, typeName, traits, aliasPropertyName}))
|
||||
+ PrintToString(Synchronization::PropertyDeclaration{
|
||||
name, typeName, traits, Synchronization::PropertyKind::Alias, aliasPropertyName, {}}))
|
||||
{
|
||||
const Synchronization::PropertyDeclaration &propertyDeclaration = arg;
|
||||
|
||||
@@ -59,7 +59,8 @@ MATCHER_P4(IsAliasPropertyDeclaration,
|
||||
&& Synchronization::ImportedTypeName{typeName} == propertyDeclaration.typeName
|
||||
&& propertyDeclaration.traits == traits
|
||||
&& propertyDeclaration.aliasPropertyName == aliasPropertyName
|
||||
&& propertyDeclaration.aliasPropertyNameTail.empty();
|
||||
&& propertyDeclaration.aliasPropertyNameTail.empty()
|
||||
&& propertyDeclaration.kind == Synchronization::PropertyKind::Alias;
|
||||
}
|
||||
|
||||
MATCHER_P5(IsAliasPropertyDeclaration,
|
||||
@@ -69,8 +70,12 @@ MATCHER_P5(IsAliasPropertyDeclaration,
|
||||
aliasPropertyName,
|
||||
aliasPropertyNameTail,
|
||||
std::string(negation ? "isn't " : "is ")
|
||||
+ PrintToString(
|
||||
Synchronization::PropertyDeclaration{name, typeName, traits, aliasPropertyName}))
|
||||
+ PrintToString(Synchronization::PropertyDeclaration{name,
|
||||
typeName,
|
||||
traits,
|
||||
Synchronization::PropertyKind::Alias,
|
||||
aliasPropertyName,
|
||||
aliasPropertyNameTail}))
|
||||
{
|
||||
const Synchronization::PropertyDeclaration &propertyDeclaration = arg;
|
||||
|
||||
@@ -78,7 +83,8 @@ MATCHER_P5(IsAliasPropertyDeclaration,
|
||||
&& Synchronization::ImportedTypeName{typeName} == propertyDeclaration.typeName
|
||||
&& propertyDeclaration.traits == traits
|
||||
&& propertyDeclaration.aliasPropertyName == aliasPropertyName
|
||||
&& propertyDeclaration.aliasPropertyNameTail == aliasPropertyNameTail;
|
||||
&& propertyDeclaration.aliasPropertyNameTail == aliasPropertyNameTail
|
||||
&& propertyDeclaration.kind == Synchronization::PropertyKind::Alias;
|
||||
}
|
||||
|
||||
MATCHER_P2(IsFunctionDeclaration,
|
||||
|
Reference in New Issue
Block a user