Update LangVersion to C# 12.

Now that we have moved to net 8 from net 6, and with us no longer supporting the mono runtime, we can raise the C# version to match that supported by the net 8 runtime.

This unlocks C# 10, C# 11 and C# 12 features previously unavailable to us.
- https://learn.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-version-history#c-version-10
- https://learn.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-version-history#c-version-11
- https://learn.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-version-history#c-version-12

A newer version of StyleCop is required to avoid rules tripping up on the new syntax.

Enable a handful of style rules that don't have many violations.
This commit is contained in:
RoosterDragon
2024-11-25 20:23:37 +00:00
committed by Gustas Kažukauskas
parent 39a7e477c6
commit 715d882456
12 changed files with 45 additions and 40 deletions

View File

@@ -482,7 +482,7 @@ namespace OpenRA
var badKeysFormatted = new StringBuilder(
$"{debugName}, duplicate values found for the following keys: ");
foreach (var p in dupKeys)
badKeysFormatted.Append($"{logKey(p.Key)}: [{string.Join(",", p.Value)}]");
badKeysFormatted.Append(CultureInfo.InvariantCulture, $"{logKey(p.Key)}: [{string.Join(",", p.Value)}]");
throw new ArgumentException(badKeysFormatted.ToString());
}
}

View File

@@ -95,7 +95,7 @@ namespace OpenRA
var formattedKey = FormatValue(key);
var formattedValue = FormatValue(value);
result.Append($"{formattedKey}: {formattedValue}{Environment.NewLine}");
result.Append(CultureInfo.InvariantCulture, $"{formattedKey}: {formattedValue}{Environment.NewLine}");
}
return result.ToString();

View File

@@ -204,7 +204,7 @@ namespace OpenRA.Scripting
runtime.Globals["MaxUserScriptInstructions"] = MaxUserScriptInstructions;
using (var fn = runtime.CreateFunctionFromDelegate((Action<string>)LogDebugMessage))
using (var fn = runtime.CreateFunctionFromDelegate(LogDebugMessage))
runtime.Globals["print"] = fn;
// Register global tables

View File

@@ -100,7 +100,7 @@ namespace OpenRA.Scripting
public LuaValue Get(LuaRuntime runtime)
{
if (IsMethod)
return runtime.CreateFunctionFromDelegate((Func<LuaVararg, LuaValue>)Invoke);
return runtime.CreateFunctionFromDelegate(Invoke);
if (IsGetProperty)
return ((PropertyInfo)Member).GetValue(Target, null).ToLuaValue(context);

View File

@@ -12,6 +12,7 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Globalization;
using System.Text;
namespace OpenRA.Support
@@ -40,7 +41,7 @@ namespace OpenRA.Support
builder.Append('?');
foreach (var parameter in parameters)
builder.Append($"{parameter.Key}={parameter.Value}&");
builder.Append(CultureInfo.InvariantCulture, $"{parameter.Key}={parameter.Value}&");
return builder.ToString();
}