Change RegexGenerator to produce limited implementation for C# < 11 (#72860)
authorStephen Toub <stoub@microsoft.com>
Tue, 26 Jul 2022 20:48:46 +0000 (16:48 -0400)
committerGitHub <noreply@github.com>
Tue, 26 Jul 2022 20:48:46 +0000 (16:48 -0400)
commit1d084720d444fc0c8c2df801c519a75c03534ef0
tree9a76bc895e3996f317001d2b9d4ef4e88caa1295
parentcb046e53d6293f1823ffc6298e14f72bf8dd4962
Change RegexGenerator to produce limited implementation for C# < 11 (#72860)

Today the RegexGenerator fails to produce any code for GeneratedRegex if the LangVersion is 10 or lower.  However, that restriction only exists because the code generated for a regex implementation contains use of language features only available in C# 11 and newer.  Rather than failing outright for 10 or lower, we can just fall back to the limited support implementation that just caches an instance of the regex.  That still provides some value and makes it easier to transition between language versions.
21 files changed:
src/libraries/System.Text.RegularExpressions/gen/DiagnosticDescriptors.cs
src/libraries/System.Text.RegularExpressions/gen/RegexGenerator.Parser.cs
src/libraries/System.Text.RegularExpressions/gen/RegexGenerator.cs
src/libraries/System.Text.RegularExpressions/gen/Resources/Strings.resx
src/libraries/System.Text.RegularExpressions/gen/Resources/xlf/Strings.cs.xlf
src/libraries/System.Text.RegularExpressions/gen/Resources/xlf/Strings.de.xlf
src/libraries/System.Text.RegularExpressions/gen/Resources/xlf/Strings.es.xlf
src/libraries/System.Text.RegularExpressions/gen/Resources/xlf/Strings.fr.xlf
src/libraries/System.Text.RegularExpressions/gen/Resources/xlf/Strings.it.xlf
src/libraries/System.Text.RegularExpressions/gen/Resources/xlf/Strings.ja.xlf
src/libraries/System.Text.RegularExpressions/gen/Resources/xlf/Strings.ko.xlf
src/libraries/System.Text.RegularExpressions/gen/Resources/xlf/Strings.pl.xlf
src/libraries/System.Text.RegularExpressions/gen/Resources/xlf/Strings.pt-BR.xlf
src/libraries/System.Text.RegularExpressions/gen/Resources/xlf/Strings.ru.xlf
src/libraries/System.Text.RegularExpressions/gen/Resources/xlf/Strings.tr.xlf
src/libraries/System.Text.RegularExpressions/gen/Resources/xlf/Strings.zh-Hans.xlf
src/libraries/System.Text.RegularExpressions/gen/Resources/xlf/Strings.zh-Hant.xlf
src/libraries/System.Text.RegularExpressions/tests/FunctionalTests/RegexGeneratorHelper.netcoreapp.cs
src/libraries/System.Text.RegularExpressions/tests/FunctionalTests/RegexGeneratorParserTests.cs
src/libraries/System.Text.RegularExpressions/tests/FunctionalTests/System.Text.RegularExpressions.Tests.csproj
src/libraries/System.Text.RegularExpressions/tests/FunctionalTests/UpgradeToRegexGeneratorAnalyzerTests.cs