Browse Source

Enable nullable reference checking via .props file.

The Nullable annotations on netstandard2.0 are incomplete and incorrect in places. Ignore nullable warnings on netstandard2.0 and make them errors on later target frameworks.
pull/7172/head
Steven Kirk 4 years ago
parent
commit
50659d9c2a
  1. 11
      build/NullableEnable.props
  2. 2
      src/Avalonia.Diagnostics/Avalonia.Diagnostics.csproj
  3. 2
      src/Avalonia.Input/Avalonia.Input.csproj
  4. 3
      src/Avalonia.ReactiveUI/Avalonia.ReactiveUI.csproj
  5. 3
      src/Markup/Avalonia.Markup/Avalonia.Markup.csproj
  6. 4
      src/Web/Avalonia.Web.Blazor/Avalonia.Web.Blazor.csproj

11
build/NullableEnable.props

@ -0,0 +1,11 @@
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!--
The Nullable annotations on netstandard2.0 are incomplete and incorrect in places. Ignore
nullable warnings on netstandard2.0 and make them errors on later target frameworks.
-->
<PropertyGroup>
<Nullable>enable</Nullable>
<WarningsAsErrors Condition="'$(TargetFramework)' != 'netstandard2.0'">$(WarningsAsErrors);nullable</WarningsAsErrors>
<NoWarn Condition="'$(TargetFramework)' == 'netstandard2.0'">$(NoWarn);nullable</NoWarn>
</PropertyGroup>
</Project>

2
src/Avalonia.Diagnostics/Avalonia.Diagnostics.csproj

@ -3,7 +3,6 @@
<TargetFrameworks>netstandard2.0;net6.0</TargetFrameworks>
<RootNamespace>Avalonia</RootNamespace>
<PackageId>Avalonia.Diagnostics</PackageId>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<Compile Update="**\*.xaml.cs">
@ -34,4 +33,5 @@
<Import Project="..\..\build\Rx.props" />
<Import Project="..\..\build\BuildTargets.targets" />
<Import Project="..\..\build\ApiDiff.props" />
<Import Project="..\..\build\NullableEnable.props" />
</Project>

2
src/Avalonia.Input/Avalonia.Input.csproj

@ -1,7 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>netstandard2.0;net6.0</TargetFrameworks>
<Nullable>Enable</Nullable>
</PropertyGroup>
<ItemGroup>
<Compile Include="..\Avalonia.Base\Metadata\NullableAttributes.cs" Link="NullableAttributes.cs" />
@ -15,4 +14,5 @@
</ItemGroup>
<Import Project="..\..\build\Rx.props" />
<Import Project="..\..\build\ApiDiff.props" />
<Import Project="..\..\build\NullableEnable.props" />
</Project>

3
src/Avalonia.ReactiveUI/Avalonia.ReactiveUI.csproj

@ -3,8 +3,6 @@
<TargetFrameworks>netstandard2.0;net6.0</TargetFrameworks>
<PackageId>Avalonia.ReactiveUI</PackageId>
<SignAssembly>false</SignAssembly>
<Nullable>enable</Nullable>
<WarningsAsErrors>nullable</WarningsAsErrors>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\..\packages\Avalonia\Avalonia.csproj" />
@ -12,4 +10,5 @@
<Import Project="..\..\build\Rx.props" />
<Import Project="..\..\build\ReactiveUI.props" />
<Import Project="..\..\build\ApiDiff.props" />
<Import Project="..\..\build\NullableEnable.props" />
</Project>

3
src/Markup/Avalonia.Markup/Avalonia.Markup.csproj

@ -2,8 +2,6 @@
<PropertyGroup>
<TargetFrameworks>netstandard2.0;net6.0</TargetFrameworks>
<RootNamespace>Avalonia</RootNamespace>
<Nullable>Enable</Nullable>
<WarningsAsErrors>CS8600;CS8602;CS8603</WarningsAsErrors>
</PropertyGroup>
<ItemGroup>
<None Remove="Markup\Parsers\Nodes\ExpressionGrammer" />
@ -19,4 +17,5 @@
<Import Project="..\..\..\build\Rx.props" />
<Import Project="..\..\..\build\System.Memory.props" />
<Import Project="..\..\..\build\ApiDiff.props" />
<Import Project="..\..\..\build\NullableEnable.props" />
</Project>

4
src/Web/Avalonia.Web.Blazor/Avalonia.Web.Blazor.csproj

@ -2,7 +2,6 @@
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<PackageId>Avalonia.Web.Blazor</PackageId>
<LangVersion>preview</LangVersion>
@ -32,7 +31,8 @@
<Import Project="..\..\..\build\BuildTargets.targets" />
<Import Project="..\..\..\build\SkiaSharp.props" />
<Import Project="..\..\..\build\HarfBuzzSharp.props" />
<Import Project="..\..\..\build\NullableEnable.props" />
<ItemGroup>
<Content Include="*.props">
<Pack>true</Pack>

Loading…
Cancel
Save