From 30d85939446fba71112967b2a217827e6304fe43 Mon Sep 17 00:00:00 2001 From: Eric Erhardt Date: Mon, 31 Oct 2022 10:42:48 -0500 Subject: [PATCH] Fix inconsistency in Regex infinite timeout usages (#77560) In the Regex source generator, there is an inconsistency in which "timeout constant" we are comparing against vs. which constant we are setting when the timeout isn't specified. Fixing it to always use Regex.InfiniteMatchTimeout. --- .../gen/RegexGenerator.Emitter.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libraries/System.Text.RegularExpressions/gen/RegexGenerator.Emitter.cs b/src/libraries/System.Text.RegularExpressions/gen/RegexGenerator.Emitter.cs index fe95c67abb7..e758cac88d6 100644 --- a/src/libraries/System.Text.RegularExpressions/gen/RegexGenerator.Emitter.cs +++ b/src/libraries/System.Text.RegularExpressions/gen/RegexGenerator.Emitter.cs @@ -203,7 +203,7 @@ private static void EmitRegexDerivedTypeRunnerFactory(IndentedTextWriter writer, $"internal static readonly TimeSpan {DefaultTimeoutFieldName} = AppContext.GetData(\"REGEX_DEFAULT_MATCH_TIMEOUT\") is TimeSpan timeout ? timeout : Regex.InfiniteMatchTimeout;", $"", $"/// Whether is non-infinite.", - $"internal static readonly bool {HasDefaultTimeoutFieldName} = {DefaultTimeoutFieldName} != Timeout.InfiniteTimeSpan;", + $"internal static readonly bool {HasDefaultTimeoutFieldName} = {DefaultTimeoutFieldName} != Regex.InfiniteMatchTimeout;", }); } } @@ -248,7 +248,7 @@ private static void EmitRegexDerivedTypeRunnerFactory(IndentedTextWriter writer, /// Gets a C# expression representing the specified timeout value. private static string GetTimeoutExpression(int matchTimeout) => matchTimeout == Timeout.Infinite ? - "Timeout.InfiniteTimeSpan" : + "Regex.InfiniteMatchTimeout" : $"TimeSpan.FromMilliseconds({matchTimeout.ToString(CultureInfo.InvariantCulture)})"; /// Adds the IsWordChar helper to the required helpers collection. -- GitLab