summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Build.Tasks
diff options
context:
space:
mode:
authorStephane Delcroix <stephane@delcroix.org>2017-02-17 09:57:31 +0100
committerGitHub <noreply@github.com>2017-02-17 09:57:31 +0100
commit53b1bbaf366a43832df1e941e42ca3d0b4c6fcbf (patch)
tree6255a755758c0179584edc471a0a20bc56caa03b /Xamarin.Forms.Build.Tasks
parent1522c0e48d3feacfbaf68a0016e35e21d9c5940c (diff)
downloadxamarin-forms-53b1bbaf366a43832df1e941e42ca3d0b4c6fcbf.tar.gz
xamarin-forms-53b1bbaf366a43832df1e941e42ca3d0b4c6fcbf.tar.bz2
xamarin-forms-53b1bbaf366a43832df1e941e42ca3d0b4c6fcbf.zip
[XamlC] compile NullExtension markup (#750)
Diffstat (limited to 'Xamarin.Forms.Build.Tasks')
-rw-r--r--Xamarin.Forms.Build.Tasks/CompiledMarkupExtensions/NullExtension.cs18
-rw-r--r--Xamarin.Forms.Build.Tasks/Xamarin.Forms.Build.Tasks.csproj1
2 files changed, 19 insertions, 0 deletions
diff --git a/Xamarin.Forms.Build.Tasks/CompiledMarkupExtensions/NullExtension.cs b/Xamarin.Forms.Build.Tasks/CompiledMarkupExtensions/NullExtension.cs
new file mode 100644
index 00000000..6701dacc
--- /dev/null
+++ b/Xamarin.Forms.Build.Tasks/CompiledMarkupExtensions/NullExtension.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+using Mono.Cecil;
+using Mono.Cecil.Cil;
+using Xamarin.Forms.Xaml;
+
+namespace Xamarin.Forms.Build.Tasks
+{
+ class NullExtension : ICompiledMarkupExtension
+ {
+
+ public IEnumerable<Instruction> ProvideValue(IElementNode node, ModuleDefinition module, ILContext context, out TypeReference typeRef)
+ {
+ typeRef = module.TypeSystem.Object;
+ return new[] { Instruction.Create(OpCodes.Ldnull) };
+ }
+ }
+} \ No newline at end of file
diff --git a/Xamarin.Forms.Build.Tasks/Xamarin.Forms.Build.Tasks.csproj b/Xamarin.Forms.Build.Tasks/Xamarin.Forms.Build.Tasks.csproj
index 0175a4b8..880fa0c3 100644
--- a/Xamarin.Forms.Build.Tasks/Xamarin.Forms.Build.Tasks.csproj
+++ b/Xamarin.Forms.Build.Tasks/Xamarin.Forms.Build.Tasks.csproj
@@ -111,6 +111,7 @@
<Compile Include="CompiledValueProviders\PassthroughValueProvider.cs" />
<Compile Include="CompiledConverters\ListStringTypeConverter.cs" />
<Compile Include="CompiledMarkupExtensions\TypeExtension.cs" />
+ <Compile Include="CompiledMarkupExtensions\NullExtension.cs" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Target Name="AfterBuild">