feat: Updates to .NET 9 (#1984)

### Summary

* Bumps to .NET 9 with updated dependencies
* Comparing a value type against null is no longer allowed
* CI/CD now uses the version specified in global.json
* Serialization generator updated to .NET 9 with bug fixes, fixes to turkish language, and parallelization
This commit is contained in:
Kamron Batman 2024-12-08 10:16:34 -08:00 committed by GitHub
parent 51d15d264c
commit c75514cc04
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
24 changed files with 56 additions and 58 deletions

View file

@ -5,7 +5,7 @@
<RootNamespace>Server.Tests</RootNamespace>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.11.1" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
<PackageReference Include="xunit" Version="2.9.2" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.8.2">
<PrivateAssets>all</PrivateAssets>

View file

@ -66,7 +66,7 @@ public class ArtData : IDisposable
Span<ushort> buffer = stackalloc ushort[entry.Size / 2];
_dataStream.Seek(entry.Offset, SeekOrigin.Begin);
_dataStream.Read(MemoryMarshal.AsBytes(buffer));
_ = _dataStream.Read(MemoryMarshal.AsBytes(buffer));
var width = buffer[2];
var height = buffer[3];

View file

@ -95,7 +95,7 @@ public static class UOClient
{
using FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read);
var buffer = GC.AllocateUninitializedArray<byte>((int)fs.Length, true);
fs.Read(buffer);
_ = fs.Read(buffer);
// VS_VERSION_INFO (unicode)
Span<byte> vsVersionInfo = stackalloc byte[]
{

View file

@ -3077,7 +3077,7 @@ public class Item : IHued, IComparable<Item>, ISpawnable, IObjectPropertyListEnt
public virtual void SendWorldPacketTo(NetState ns, ReadOnlySpan<byte> world = default)
{
if (world != null)
if (world != ReadOnlySpan<byte>.Empty)
{
ns?.Send(world);
return;

View file

@ -98,7 +98,7 @@ public static class Localization
{
using var fs = new FileStream(file, FileMode.Open, FileAccess.Read, FileShare.Read);
Span<byte> header = stackalloc byte[6];
fs.Read(header);
_ = fs.Read(header);
byte[] data;
BufferReader br;
@ -120,7 +120,7 @@ public static class Localization
else
{
data = GC.AllocateUninitializedArray<byte>((int)fs.Length - 6);
fs.Read(data);
_ = fs.Read(data);
br = new BufferReader(data);
}

View file

@ -449,7 +449,7 @@ public partial class NetState : IComparable<NetState>, IValueLinkListNode<NetSta
public void Send(ReadOnlySpan<byte> span)
{
if (span == null || this.CannotSendPackets())
if (span == ReadOnlySpan<byte>.Empty || this.CannotSendPackets())
{
return;
}

View file

@ -138,7 +138,7 @@ public readonly struct Serial : IComparable<Serial>, IComparable<uint>,
public bool TryFormat(
Span<char> destination, out int charsWritten, ReadOnlySpan<char> format, IFormatProvider provider
) => format != null
) => format != ReadOnlySpan<char>.Empty
? Value.TryFormat(destination, out charsWritten, format, provider)
: destination.TryWrite(provider, $"0x{Value:X8}", out charsWritten);

View file

@ -35,11 +35,11 @@
<ItemGroup>
<PackageReference Include="CommunityToolkit.HighPerformance" Version="8.3.2" />
<PackageReference Include="LibDeflate.Bindings" Version="1.0.2.120" />
<PackageReference Include="PollGroup" Version="1.5.1" />
<PackageReference Include="System.IO.Hashing" Version="8.0.0" />
<PackageReference Include="PollGroup" Version="1.6.1" />
<PackageReference Include="System.IO.Hashing" Version="9.0.0" />
<PackageReference Include="ModernUO.Serialization.Annotations" Version="2.9.1" />
<PackageReference Include="ModernUO.Serialization.Generator" Version="2.11.3" />
<PackageReference Include="ModernUO.Serialization.Generator" Version="2.12.10" />
</ItemGroup>
<ItemGroup>
<AdditionalFiles Include="Migrations/*.v*.json" />

View file

@ -37,7 +37,7 @@ public static class StringHelpers
)
{
size = 0;
if (a == null || a.Length == 0)
if (a == ReadOnlySpan<char>.Empty || a.Length == 0)
{
return;
}
@ -72,7 +72,7 @@ public static class StringHelpers
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static string Remove(this ReadOnlySpan<char> a, ReadOnlySpan<char> b, StringComparison comparison)
{
if (a == null)
if (a == ReadOnlySpan<char>.Empty)
{
return null;
}

View file

@ -338,7 +338,7 @@ public class TileMatrix
fixed (StaticTile* pTiles = staTiles)
{
DataStream.Read(new Span<byte>(pTiles, length));
_ = DataStream.Read(new Span<byte>(pTiles, length));
if (m_Lists == null)
{
@ -423,7 +423,7 @@ public class TileMatrix
fixed (LandTile* pTiles = tiles)
{
MapStream.Read(new Span<byte>(pTiles, 192));
_ = MapStream.Read(new Span<byte>(pTiles, 192));
}
return tiles;

View file

@ -89,7 +89,7 @@ public class TileMatrixPatch
var tiles = new LandTile[64];
fixed (LandTile* pTiles = tiles)
{
fsData.Read(new Span<byte>(pTiles, 192));
_ = fsData.Read(new Span<byte>(pTiles, 192));
}
matrix.SetLandBlock(x, y, tiles);
@ -149,7 +149,7 @@ public class TileMatrixPatch
fixed (StaticTile* pTiles = staTiles)
{
fsData.Read(new Span<byte>(pTiles, length));
_ = fsData.Read(new Span<byte>(pTiles, length));
StaticTile* pCur = pTiles, pEnd = pTiles + tileCount;

View file

@ -52,7 +52,7 @@ public static class HashUtility
public static uint ComputeHash32(ReadOnlySpan<char> str)
{
if (str == null)
if (str == ReadOnlySpan<char>.Empty)
{
return 0;
}

View file

@ -4,7 +4,7 @@
<Configurations>Debug;Release;Analyze</Configurations>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.11.1" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
<PackageReference Include="xunit" Version="2.9.2" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.8.2">
<PrivateAssets>all</PrivateAssets>

View file

@ -47,7 +47,7 @@ namespace Server.Misc
var name = tokenizer.MoveNext() ? tokenizer.Current : null;
var valueStr = tokenizer.MoveNext() ? tokenizer.Current : null;
if (valueStr == null)
if (valueStr == ReadOnlySpan<char>.Empty)
{
return;
}

View file

@ -39,7 +39,7 @@
</ProjectReference>
<PackageReference Include="LibDeflate.Bindings" Version="1.0.2.120" />
<PackageReference Include="MailKit" Version="4.8.0" />
<PackageReference Include="Microsoft.Extensions.FileSystemGlobbing" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.FileSystemGlobbing" Version="9.0.0" />
<PackageReference Include="CommunityToolkit.HighPerformance" Version="8.3.2" />
<PackageReference Include="Argon2.Bindings" Version="1.16.1" />
<PackageReference Include="ModernUO.CodeGeneratedEvents.Annotations" Version="1.0.0" />
@ -47,7 +47,7 @@
<PackageReference Include="Zstd.Binaries" Version="1.6.0" />
<PackageReference Include="ModernUO.Serialization.Annotations" Version="2.9.1" />
<PackageReference Include="ModernUO.Serialization.Generator" Version="2.11.3" />
<PackageReference Include="ModernUO.Serialization.Generator" Version="2.12.10" />
</ItemGroup>
<ItemGroup>
<AdditionalFiles Include="Migrations/*.v*.json" />