diff options
author | Stephane Delcroix <stephane@delcroix.org> | 2016-06-01 22:48:03 +0200 |
---|---|---|
committer | Jason Smith <jason.smith@xamarin.com> | 2016-06-01 13:48:03 -0700 |
commit | 071883ea17bd2e9a368f8cb8cab82b639d5385f4 (patch) | |
tree | 1a3a7478d7523182a327a757c60c6efa46968561 /Xamarin.Forms.Build.Tasks/SetPropertiesVisitor.cs | |
parent | 3aa5d68e2e9a70766aefc746a2566d0766a03b58 (diff) | |
download | xamarin-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.cs | 14 |
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)); } } |