summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Build.Tasks
diff options
context:
space:
mode:
authorStephane Delcroix <stephane@delcroix.org>2016-08-15 22:18:26 +0200
committerJason Smith <jason.smith@xamarin.com>2016-08-15 13:18:26 -0700
commita1126ab66bc9bd41cfa32dbefbe5758bcf5b4b32 (patch)
treed586aaffcf721ef9cd7558335757050a9c8b1f2e /Xamarin.Forms.Build.Tasks
parent90396b0ffdecf65b8e2eea8eb4f148bdea1071c4 (diff)
downloadxamarin-forms-a1126ab66bc9bd41cfa32dbefbe5758bcf5b4b32.tar.gz
xamarin-forms-a1126ab66bc9bd41cfa32dbefbe5758bcf5b4b32.tar.bz2
xamarin-forms-a1126ab66bc9bd41cfa32dbefbe5758bcf5b4b32.zip
[Xaml] Simplify listnodes with single elements (#304)
Diffstat (limited to 'Xamarin.Forms.Build.Tasks')
-rw-r--r--Xamarin.Forms.Build.Tasks/SetPropertiesVisitor.cs14
1 files changed, 11 insertions, 3 deletions
diff --git a/Xamarin.Forms.Build.Tasks/SetPropertiesVisitor.cs b/Xamarin.Forms.Build.Tasks/SetPropertiesVisitor.cs
index b6bdf40b..5e11fe1d 100644
--- a/Xamarin.Forms.Build.Tasks/SetPropertiesVisitor.cs
+++ b/Xamarin.Forms.Build.Tasks/SetPropertiesVisitor.cs
@@ -79,6 +79,15 @@ namespace Xamarin.Forms.Build.Tasks
public void Visit(ElementNode node, INode parentNode)
{
+ XmlName propertyName = XmlName.Empty;
+
+ //Simplify ListNodes with single elements
+ var pList = parentNode as ListNode;
+ if (pList != null && pList.CollectionItems.Count == 1) {
+ propertyName = pList.XmlName;
+ parentNode = parentNode.Parent;
+ }
+
//if this node is an IMarkupExtension, invoke ProvideValue() and replace the variable
var vardef = Context.Variables[node];
var vardefref = new VariableDefinitionReference(vardef);
@@ -90,8 +99,7 @@ namespace Xamarin.Forms.Build.Tasks
Context.Variables[node] = vardef;
}
- XmlName propertyName;
- if (TryGetPropertyName(node, parentNode, out propertyName))
+ if (propertyName != XmlName.Empty || TryGetPropertyName(node, parentNode, out propertyName))
{
if (skips.Contains(propertyName))
return;
@@ -675,4 +683,4 @@ namespace Xamarin.Forms.Build.Tasks
return vardefref.VariableDefinition;
}
}
-} \ No newline at end of file
+}