summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Build.Tasks/SetPropertiesVisitor.cs
diff options
context:
space:
mode:
authorStephane Delcroix <stephane@delcroix.org>2016-06-01 22:48:03 +0200
committerJason Smith <jason.smith@xamarin.com>2016-06-01 13:48:03 -0700
commit071883ea17bd2e9a368f8cb8cab82b639d5385f4 (patch)
tree1a3a7478d7523182a327a757c60c6efa46968561 /Xamarin.Forms.Build.Tasks/SetPropertiesVisitor.cs
parent3aa5d68e2e9a70766aefc746a2566d0766a03b58 (diff)
downloadxamarin-forms-071883ea17bd2e9a368f8cb8cab82b639d5385f4.tar.gz
xamarin-forms-071883ea17bd2e9a368f8cb8cab82b639d5385f4.tar.bz2
xamarin-forms-071883ea17bd2e9a368f8cb8cab82b639d5385f4.zip
Xaml werr (#191)
* [XamlC] get rid of 0219 * [XamlC] get rid of 0168 * [XamC] it's 436 time * [XamlC] bye 108 * [XamlC] remove one though obsolete invocation * [XamlC] no longer depend on any obsolete * align the stars
Diffstat (limited to 'Xamarin.Forms.Build.Tasks/SetPropertiesVisitor.cs')
-rw-r--r--Xamarin.Forms.Build.Tasks/SetPropertiesVisitor.cs14
1 files changed, 8 insertions, 6 deletions
diff --git a/Xamarin.Forms.Build.Tasks/SetPropertiesVisitor.cs b/Xamarin.Forms.Build.Tasks/SetPropertiesVisitor.cs
index 692ef8b5..71f19f56 100644
--- a/Xamarin.Forms.Build.Tasks/SetPropertiesVisitor.cs
+++ b/Xamarin.Forms.Build.Tasks/SetPropertiesVisitor.cs
@@ -239,7 +239,7 @@ namespace Xamarin.Forms.Build.Tasks
var provideValueInfo = markExt.Methods.First(md => md.Name == "ProvideValue");
var provideValue = module.Import(provideValueInfo);
provideValue =
- module.Import(provideValue.MakeGeneric(markupExtension.GenericArguments.Select(tr => module.Import(tr)).ToArray()));
+ module.Import(provideValue.ResolveGenericParameters(markupExtension, module));
var typeNode = node.Properties[new XmlName("", "Type")];
TypeReference arrayTypeRef;
@@ -263,7 +263,7 @@ namespace Xamarin.Forms.Build.Tasks
var provideValueInfo = markExt.Methods.First(md => md.Name == "ProvideValue");
var provideValue = module.Import(provideValueInfo);
provideValue =
- module.Import(provideValue.MakeGeneric(markupExtension.GenericArguments.Select(tr => module.Import(tr)).ToArray()));
+ module.Import(provideValue.ResolveGenericParameters(markupExtension, module));
vardefref.VariableDefinition = new VariableDefinition(module.Import(genericArguments.First()));
yield return Instruction.Create(OpCodes.Ldloc, context.Variables[node]);
@@ -311,7 +311,7 @@ namespace Xamarin.Forms.Build.Tasks
var handled = false;
//If it's an attached BP, update elementType and propertyName
- var attached = GetNameAndTypeRef(ref elementType, propertyName.NamespaceURI, ref localName, context, iXmlLineInfo);
+ GetNameAndTypeRef(ref elementType, propertyName.NamespaceURI, ref localName, context, iXmlLineInfo);
//If the target is an event, connect
// IL_0007: ldloc.0
@@ -650,16 +650,18 @@ namespace Xamarin.Forms.Build.Tasks
//SetDataTemplate
parentIl.Emit(OpCodes.Ldftn, loadTemplate);
+ var funcObjRef = module.Import(typeof(Func<object>));
var funcCtor =
- module.Import(typeof (Func<>))
- .MakeGenericInstanceType(module.TypeSystem.Object)
+ funcObjRef
.Resolve()
.Methods.First(md => md.IsConstructor && md.Parameters.Count == 2)
- .MakeGeneric(module.TypeSystem.Object);
+ .ResolveGenericParameters(funcObjRef, module);
parentIl.Emit(OpCodes.Newobj, module.Import(funcCtor));
+#pragma warning disable 0612
var propertySetter =
module.Import(typeof (IDataTemplate)).Resolve().Properties.First(p => p.Name == "LoadTemplate").SetMethod;
+#pragma warning restore 0612
parentContext.IL.Emit(OpCodes.Callvirt, module.Import(propertySetter));
}
}