Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,8 @@
<!-- Polyfills from core Roslyn.Utilities (internal, must be linked per-project) -->
<ItemGroup>
<Compile Include="..\ANcpLua.Roslyn.Utilities\Polyfills\LanguageFeatures\IsExternalInit.cs" Link="Polyfills\IsExternalInit.cs"/>
<Compile Include="..\ANcpLua.Roslyn.Utilities\Polyfills\IndexRange\Index.cs" Link="Polyfills\Index.cs"/>
<Compile Include="..\ANcpLua.Roslyn.Utilities\Polyfills\IndexRange\Range.cs" Link="Polyfills\Range.cs"/>
</ItemGroup>

<ItemGroup>
Expand Down
4 changes: 2 additions & 2 deletions src/ANcpLua.AotReflection/Generation/GenerationHelpers.cs
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ public static (string Namespace, string Name) GetNamespaceAndName(string fullyQu

return lastDotIndex <= 0
? (string.Empty, type)
: (type.Substring(0, lastDotIndex), type.Substring(lastDotIndex + 1));
: (type[..lastDotIndex], type[(lastDotIndex + 1)..]);
}

public static string GetTypeOf(string fullyQualifiedType)
Expand All @@ -38,7 +38,7 @@ public static string GetTypeOf(string fullyQualifiedType)
private static string RemoveGlobalPrefix(string fullyQualifiedType)
{
return fullyQualifiedType.StartsWith(GlobalPrefix, StringComparison.Ordinal)
? fullyQualifiedType.Substring(GlobalPrefix.Length)
? fullyQualifiedType[GlobalPrefix.Length..]
: fullyQualifiedType;
}
}
2 changes: 1 addition & 1 deletion src/ANcpLua.Roslyn.Utilities/Http/BearerHeader.cs
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ public static bool TryExtract(string? headerValue, out string? token)
token = null;
if (string.IsNullOrWhiteSpace(headerValue)) return false;
if (!headerValue!.StartsWith(Scheme, StringComparison.OrdinalIgnoreCase)) return false;
var candidate = headerValue.Substring(Scheme.Length).Trim();
var candidate = headerValue[Scheme.Length..].Trim();
if (candidate.Length == 0) return false;
token = candidate;
return true;
Expand Down
4 changes: 2 additions & 2 deletions src/ANcpLua.Roslyn.Utilities/Ids/ShortId.cs
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ public static string NewHex(int hexChars)
if (hexChars is < 1 or > 32)
throw new ArgumentOutOfRangeException(nameof(hexChars), hexChars, "Must be 1–32.");

return Guid.NewGuid().ToString("N").Substring(0, hexChars);
return Guid.NewGuid().ToString("N")[..hexChars];
}

/// <summary>
Expand Down Expand Up @@ -101,7 +101,7 @@ public static string NewPrefixedSortable(string prefix, int randomHexChars = 24)
var hex = BitConverter.ToString(buffer).Replace("-", "").ToLowerInvariant();
#endif

return prefix + "-" + hex.Substring(0, randomHexChars);
return prefix + "-" + hex[..randomHexChars];
}

/// <summary>
Expand Down
2 changes: 1 addition & 1 deletion src/ANcpLua.Roslyn.Utilities/OTel/SemconvVersion.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ public static bool TryParse(string? value, out int major, out int minor, out int
if (string.IsNullOrEmpty(value)) return false;
if (!value!.StartsWith(Prefix, StringComparison.OrdinalIgnoreCase)) return false;

var parts = value.Substring(Prefix.Length).Split('.');
var parts = value[Prefix.Length..].Split('.');
if (parts.Length < 2) return false;
if (!int.TryParse(parts[0], NumberStyles.Integer, CultureInfo.InvariantCulture, out major)) return false;
if (!int.TryParse(parts[1], NumberStyles.Integer, CultureInfo.InvariantCulture, out minor)) return false;
Expand Down
8 changes: 4 additions & 4 deletions src/ANcpLua.Roslyn.Utilities/StringExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -618,7 +618,7 @@ public static string UnwrapNullable(this string typeFqn, bool unwrap = true)
var normalized = typeFqn.NormalizeTypeName();
if (normalized.StartsWith("System.Nullable<", StringComparison.Ordinal) &&
normalized.EndsWith(">", StringComparison.Ordinal))
return normalized.Substring("System.Nullable<".Length, normalized.Length - "System.Nullable<".Length - 1);
return normalized["System.Nullable<".Length..^1];

return typeFqn;
}
Expand Down Expand Up @@ -785,7 +785,7 @@ public static string ToShortHash(this string input)

#if NET5_0_OR_GREATER
var hash = SHA256.HashData(Encoding.UTF8.GetBytes(input));
return Convert.ToHexString(hash).Substring(0, 8);
return Convert.ToHexString(hash)[..8];
#else
using var sha256 = SHA256.Create();
var hash = sha256.ComputeHash(Encoding.UTF8.GetBytes(input));
Expand Down Expand Up @@ -823,14 +823,14 @@ public static string ToShortHash(this string input, int hexChars, bool lowercase
#if NET5_0_OR_GREATER
var hash = SHA256.HashData(Encoding.UTF8.GetBytes(input));
var hex = Convert.ToHexString(hash);
return (lowercase ? hex.ToLowerInvariant() : hex).Substring(0, hexChars);
return (lowercase ? hex.ToLowerInvariant() : hex)[..hexChars];
#else
using var sha256 = SHA256.Create();
var hash = sha256.ComputeHash(Encoding.UTF8.GetBytes(input));
var needBytes = (hexChars + 1) / 2;
var hex = BitConverter.ToString(hash, 0, needBytes).Replace("-", "");
if (lowercase) hex = hex.ToLowerInvariant();
return hex.Substring(0, hexChars);
return hex[..hexChars];
#endif
}

Expand Down
4 changes: 2 additions & 2 deletions src/ANcpLua.Roslyn.Utilities/SyntaxExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -543,7 +543,7 @@ public static string ToGlobalTypeName(this string typeName, IReadOnlyList<string
if (genericStart > 0 && typeName.EndsWithOrdinal(">"))
{
var baseTypeName = typeName[..genericStart];
var argsContent = typeName.Substring(genericStart + 1, typeName.Length - genericStart - 2);
var argsContent = typeName[(genericStart + 1)..^1];

var args = ParseGenericArguments(argsContent);
var qualifiedArgs = args.Select(a => a.ToGlobalTypeName(typeParameterNames));
Expand Down Expand Up @@ -621,7 +621,7 @@ private static IEnumerable<string> ParseGenericArguments(string argsContent)
depth--;
break;
case ',' when depth is 0:
args.Add(argsContent.Substring(start, i - start).Trim());
args.Add(argsContent[start..i].Trim());
start = i + 1;
break;
}
Expand Down
2 changes: 1 addition & 1 deletion src/ANcpLua.Roslyn.Utilities/Text/MarkdownText.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ public static string TruncateCell(string? text, int maxLength = 50)
{
if (maxLength < 1) throw new ArgumentOutOfRangeException(nameof(maxLength), maxLength, "Must be at least 1.");
if (string.IsNullOrEmpty(text)) return string.Empty;
return text!.Length <= maxLength ? text : text.Substring(0, maxLength - 1) + "…";
return text!.Length <= maxLength ? text : text[..(maxLength - 1)] + "…";
}

/// <summary>Escapes <c>|</c> and newlines so <paramref name="text" /> can be safely embedded in a markdown table cell.</summary>
Expand Down