Skip to content

Commit

Permalink
Add .NET 6 target (JamesNK#2677)
Browse files Browse the repository at this point in the history
  • Loading branch information
JamesNK authored May 16, 2022
1 parent e42c9e4 commit bf2e2a7
Show file tree
Hide file tree
Showing 80 changed files with 520 additions and 408 deletions.
3 changes: 2 additions & 1 deletion Build/build.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,8 @@
$nunitConsolePath = "$buildDir\Temp\NUnit.ConsoleRunner.$nunitConsoleVersion"

$builds = @(
@{Framework = "netstandard2.0"; TestsFunction = "NetCliTests"; TestFramework = "net6.0"; Enabled=$true},
@{Framework = "net6.0"; TestsFunction = "NetCliTests"; TestFramework = "net6.0"; Enabled=$true},
@{Framework = "netstandard2.0"; TestsFunction = "NetCliTests"; TestFramework = "net5.0"; Enabled=$true},
@{Framework = "netstandard1.3"; TestsFunction = "NetCliTests"; TestFramework = "netcoreapp3.1"; Enabled=$true},
@{Framework = "netstandard1.0"; TestsFunction = "NetCliTests"; TestFramework = "netcoreapp2.1"; Enabled=$true},
@{Framework = "net45"; TestsFunction = "NUnitTests"; TestFramework = "net46"; NUnitFramework="net-4.0"; Enabled=$true},
Expand Down
2 changes: 1 addition & 1 deletion Src/Newtonsoft.Json.Tests/Linq/JObjectTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1439,7 +1439,7 @@ public void ITypedListGetItemProperties()
ITypedList l = new JObject(p1, p2);

PropertyDescriptorCollection propertyDescriptors = l.GetItemProperties(null);
Assert.IsNull(propertyDescriptors);
Assert.AreEqual(0, propertyDescriptors.Count);
}

[Test]
Expand Down
29 changes: 25 additions & 4 deletions Src/Newtonsoft.Json.Tests/Newtonsoft.Json.Tests.csproj
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks Condition="'$(TestFrameworks)'==''">net46;net40;net35;net20;net6.0;netcoreapp3.1;netcoreapp2.1</TargetFrameworks>
<TargetFrameworks Condition="'$(TestFrameworks)'==''">net46;net40;net35;net20;net5.0;net6.0;netcoreapp3.1;netcoreapp2.1</TargetFrameworks>
<TargetFrameworks Condition="'$(TestFrameworks)'!=''">$(TestFrameworks)</TargetFrameworks>
<LangVersion>9.0</LangVersion>
<VersionPrefix>1.0</VersionPrefix>
Expand All @@ -13,7 +13,7 @@
<RootNamespace>Newtonsoft.Json.Tests</RootNamespace>
<IsPackable>false</IsPackable>
<!-- Workaround for https://github.com/nunit/nunit3-vs-adapter/issues/296 -->
<DebugType Condition="'$(TargetFramework)' != '' AND '$(TargetFramework)' != 'netcoreapp2.1' AND '$(TargetFramework)' != 'netcoreapp3.1' AND '$(TargetFramework)' != 'net6.0'">Full</DebugType>
<DebugType Condition="'$(TargetFramework)' != '' AND '$(TargetFramework)' != 'netcoreapp2.1' AND '$(TargetFramework)' != 'netcoreapp3.1' AND '$(TargetFramework)' != 'net5.0' AND '$(TargetFramework)' != 'net6.0'">Full</DebugType>
<!-- Disabled because SourceLink isn't referenced to calculate paths -->
<DeterministicSourcePaths>false</DeterministicSourcePaths>
<!-- It's ok if a test target has exited support. Disable NETSSDK1138 warning -->
Expand Down Expand Up @@ -109,7 +109,7 @@
<DefineConstants>NET20;$(AdditionalConstants)</DefineConstants>
</PropertyGroup>

<ItemGroup Condition="'$(TargetFramework)'=='net6.0'">
<ItemGroup Condition="'$(TargetFramework)'=='net5.0'">
<PackageReference Include="BenchmarkDotNet" Version="$(BenchmarkDotNetPackageVersion)" />
<PackageReference Include="FSharp.Core" Version="$(FSharpCorePackageVersion)" />
<PackageReference Include="System.ObjectModel" Version="$(SystemObjectModelPackageVersion)" />
Expand All @@ -124,12 +124,33 @@
<PackageReference Include="xunit.runner.visualstudio" Version="$(XunitRunnerVisualStudioPackageVersion)" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="$(MicrosoftNETTestSdkPackageVersion)" />
</ItemGroup>
<PropertyGroup Condition="'$(TargetFramework)'=='net6.0'">
<PropertyGroup Condition="'$(TargetFramework)'=='net5.0'">
<AssemblyTitle>Json.NET Tests .NET Standard 2.0</AssemblyTitle>
<ReferringTargetFrameworkForProjectReferences>.NETStandard,Version=v2.0</ReferringTargetFrameworkForProjectReferences>
<DefineConstants>NETSTANDARD2_0;DNXCORE50;PORTABLE;HAVE_BENCHMARKS;HAVE_REGEX_TIMEOUTS;$(AdditionalConstants)</DefineConstants>
</PropertyGroup>

<ItemGroup Condition="'$(TargetFramework)'=='net6.0'">
<PackageReference Include="BenchmarkDotNet" Version="$(BenchmarkDotNetPackageVersion)" />
<PackageReference Include="FSharp.Core" Version="$(FSharpCorePackageVersion)" />
<PackageReference Include="System.ObjectModel" Version="$(SystemObjectModelPackageVersion)" />
<PackageReference Include="System.Runtime.Serialization.Primitives" Version="$(SystemRuntimeSerializationPrimitivesPackageVersion)" />
<PackageReference Include="System.Runtime.Serialization.Xml" Version="$(SystemRuntimeSerializationXmlPackageVersion)" />
<PackageReference Include="System.Runtime.Serialization.Formatters" Version="$(SystemRuntimeSerializationFormattersPackageVersion)" />
<PackageReference Include="System.Xml.XmlSerializer" Version="$(SystemXmlXmlDocumentPackageVersion)" />
<PackageReference Include="System.ValueTuple" Version="$(SystemValueTuplePackageVersion)" />
<PackageReference Include="Autofac" Version="$(AutofacPackageVersion)" />
<PackageReference Include="Moq" Version="$(MoqPackageVersion)" />
<PackageReference Include="xunit" Version="$(XunitPackageVersion)" />
<PackageReference Include="xunit.runner.visualstudio" Version="$(XunitRunnerVisualStudioPackageVersion)" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="$(MicrosoftNETTestSdkPackageVersion)" />
</ItemGroup>
<PropertyGroup Condition="'$(TargetFramework)'=='net6.0'">
<AssemblyTitle>Json.NET Tests .NET 6.0</AssemblyTitle>
<ReferringTargetFrameworkForProjectReferences>net6.0</ReferringTargetFrameworkForProjectReferences>
<DefineConstants>NETSTANDARD2_0;DNXCORE50;PORTABLE;HAVE_BENCHMARKS;HAVE_REGEX_TIMEOUTS;$(AdditionalConstants)</DefineConstants>
</PropertyGroup>

<ItemGroup Condition="'$(TargetFramework)'=='netcoreapp3.1'">
<PackageReference Include="BenchmarkDotNet" Version="$(BenchmarkDotNetPackageVersion)" />
<PackageReference Include="FSharp.Core" Version="$(FSharpCorePackageVersion)" />
Expand Down
4 changes: 2 additions & 2 deletions Src/Newtonsoft.Json/Converters/BinaryConverter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ private static void EnsureReflectionObject(Type t)
{
// current token is already at base64 string
// unable to call ReadAsBytes so do it the old fashion way
string encodedData = reader.Value!.ToString();
string encodedData = reader.Value!.ToString()!;
data = Convert.FromBase64String(encodedData);
}
else
Expand All @@ -135,7 +135,7 @@ private static void EnsureReflectionObject(Type t)
}

Type t = (ReflectionUtils.IsNullableType(objectType))
? Nullable.GetUnderlyingType(objectType)
? Nullable.GetUnderlyingType(objectType)!
: objectType;

#if HAVE_LINQ
Expand Down
4 changes: 2 additions & 2 deletions Src/Newtonsoft.Json/Converters/DataSetConverter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -84,15 +84,15 @@ public override void WriteJson(JsonWriter writer, object? value, JsonSerializer
// handle typed datasets
DataSet ds = (objectType == typeof(DataSet))
? new DataSet()
: (DataSet)Activator.CreateInstance(objectType);
: (DataSet)Activator.CreateInstance(objectType)!;

DataTableConverter converter = new DataTableConverter();

reader.ReadAndAssert();

while (reader.TokenType == JsonToken.PropertyName)
{
DataTable dt = ds.Tables[(string)reader.Value!];
DataTable? dt = ds.Tables[(string)reader.Value!];
bool exists = (dt != null);

dt = (DataTable)converter.ReadJson(reader, typeof(DataTable), dt, serializer)!;
Expand Down
6 changes: 3 additions & 3 deletions Src/Newtonsoft.Json/Converters/DataTableConverter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ public override void WriteJson(JsonWriter writer, object? value, JsonSerializer
// handle typed datasets
dt = (objectType == typeof(DataTable))
? new DataTable()
: (DataTable)Activator.CreateInstance(objectType);
: (DataTable)Activator.CreateInstance(objectType)!;
}

// DataTable is inside a DataSet
Expand Down Expand Up @@ -144,7 +144,7 @@ private static void CreateRow(JsonReader reader, DataTable dt, JsonSerializer se

reader.ReadAndAssert();

DataColumn column = dt.Columns[columnName];
DataColumn? column = dt.Columns[columnName];
if (column == null)
{
Type columnType = GetColumnDataType(reader);
Expand Down Expand Up @@ -185,7 +185,7 @@ private static void CreateRow(JsonReader reader, DataTable dt, JsonSerializer se
reader.ReadAndAssert();
}

Array destinationArray = Array.CreateInstance(column.DataType.GetElementType(), o.Count);
Array destinationArray = Array.CreateInstance(column.DataType.GetElementType()!, o.Count);
((IList)o).CopyTo(destinationArray, 0);

dr[columnName] = destinationArray;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,7 @@ public override void WriteJson(JsonWriter writer, object? value, JsonSerializer

while (reader.TokenType == JsonToken.PropertyName)
{
string propertyName = reader.Value!.ToString();
string propertyName = reader.Value!.ToString()!;
if (string.Equals(propertyName, CasePropertyName, StringComparison.OrdinalIgnoreCase))
{
reader.ReadAndAssert();
Expand Down
2 changes: 1 addition & 1 deletion Src/Newtonsoft.Json/Converters/EntityKeyMemberConverter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ private static void ReadAndAssertProperty(JsonReader reader, string propertyName
reader.ReadAndAssert();
string? type = reader.Value?.ToString();

Type t = Type.GetType(type);
Type t = Type.GetType(type!)!;

ReadAndAssertProperty(reader, ValuePropertyName);
reader.ReadAndAssert();
Expand Down
2 changes: 1 addition & 1 deletion Src/Newtonsoft.Json/Converters/ExpandoObjectConverter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ private object ReadObject(JsonReader reader)
switch (reader.TokenType)
{
case JsonToken.PropertyName:
string propertyName = reader.Value!.ToString();
string propertyName = reader.Value!.ToString()!;

if (!reader.Read())
{
Expand Down
4 changes: 3 additions & 1 deletion Src/Newtonsoft.Json/Converters/IsoDateTimeConverter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ public override void WriteJson(JsonWriter writer, object? value, JsonSerializer

#if HAVE_DATE_TIME_OFFSET
Type t = (nullable)
? Nullable.GetUnderlyingType(objectType)
? Nullable.GetUnderlyingType(objectType)!
: objectType;
#endif

Expand Down Expand Up @@ -167,6 +167,8 @@ public override void WriteJson(JsonWriter writer, object? value, JsonSerializer
return null;
}

MiscellaneousUtils.Assert(dateText != null);

#if HAVE_DATE_TIME_OFFSET
if (t == typeof(DateTimeOffset))
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ public override void WriteJson(JsonWriter writer, object? value, JsonSerializer

#if HAVE_DATE_TIME_OFFSET
Type t = (ReflectionUtils.IsNullableType(objectType))
? Nullable.GetUnderlyingType(objectType)
? Nullable.GetUnderlyingType(objectType)!
: objectType;
if (t == typeof(DateTimeOffset))
{
Expand Down
6 changes: 3 additions & 3 deletions Src/Newtonsoft.Json/Converters/KeyValuePairConverter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ public override void WriteJson(JsonWriter writer, object? value, JsonSerializer
reader.ReadAndAssert();

Type t = ReflectionUtils.IsNullableType(objectType)
? Nullable.GetUnderlyingType(objectType)
? Nullable.GetUnderlyingType(objectType)!
: objectType;

ReflectionObject reflectionObject = ReflectionObjectPerType.Get(t);
Expand All @@ -111,7 +111,7 @@ public override void WriteJson(JsonWriter writer, object? value, JsonSerializer

while (reader.TokenType == JsonToken.PropertyName)
{
string propertyName = reader.Value!.ToString();
string propertyName = reader.Value!.ToString()!;
if (string.Equals(propertyName, KeyName, StringComparison.OrdinalIgnoreCase))
{
reader.ReadForTypeAndAssert(keyContract, false);
Expand Down Expand Up @@ -145,7 +145,7 @@ public override void WriteJson(JsonWriter writer, object? value, JsonSerializer
public override bool CanConvert(Type objectType)
{
Type t = (ReflectionUtils.IsNullableType(objectType))
? Nullable.GetUnderlyingType(objectType)
? Nullable.GetUnderlyingType(objectType)!
: objectType;

if (t.IsValueType() && t.IsGenericType())
Expand Down
2 changes: 1 addition & 1 deletion Src/Newtonsoft.Json/Converters/RegexConverter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,7 @@ private Regex ReadRegexObject(JsonReader reader, JsonSerializer serializer)
switch (reader.TokenType)
{
case JsonToken.PropertyName:
string propertyName = reader.Value!.ToString();
string propertyName = reader.Value!.ToString()!;

if (!reader.Read())
{
Expand Down
4 changes: 2 additions & 2 deletions Src/Newtonsoft.Json/Converters/StringEnumConverter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -222,7 +222,7 @@ public override void WriteJson(JsonWriter writer, object? value, JsonSerializer
}

bool isNullable = ReflectionUtils.IsNullableType(objectType);
Type t = isNullable ? Nullable.GetUnderlyingType(objectType) : objectType;
Type t = isNullable ? Nullable.GetUnderlyingType(objectType)! : objectType;

try
{
Expand Down Expand Up @@ -267,7 +267,7 @@ public override void WriteJson(JsonWriter writer, object? value, JsonSerializer
public override bool CanConvert(Type objectType)
{
Type t = (ReflectionUtils.IsNullableType(objectType))
? Nullable.GetUnderlyingType(objectType)
? Nullable.GetUnderlyingType(objectType)!
: objectType;

return t.IsEnum();
Expand Down
2 changes: 1 addition & 1 deletion Src/Newtonsoft.Json/Converters/UnixDateTimeConverter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@ public override void WriteJson(JsonWriter writer, object? value, JsonSerializer
DateTime d = UnixEpoch.AddSeconds(seconds);

#if HAVE_DATE_TIME_OFFSET
Type t = (nullable)
Type? t = (nullable)
? Nullable.GetUnderlyingType(objectType)
: objectType;
if (t == typeof(DateTimeOffset))
Expand Down
Loading

0 comments on commit bf2e2a7

Please sign in to comment.