Skip to content

Commit bc27d49

Browse files
authored
Move GlobalizationMode initialization into a nested class (#53082)
1 parent 4114340 commit bc27d49

File tree

3 files changed

+15
-7
lines changed

3 files changed

+15
-7
lines changed

src/libraries/System.Private.CoreLib/src/System/Globalization/CultureData.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -673,8 +673,9 @@ private static CultureData CreateCultureWithInvariantData()
673673
return CultureData.Invariant;
674674
}
675675

676-
if (GlobalizationMode.PredefinedCulturesOnly && !GlobalizationMode.Invariant)
676+
if (GlobalizationMode.PredefinedCulturesOnly)
677677
{
678+
Debug.Assert(!GlobalizationMode.Invariant);
678679
if (GlobalizationMode.UseNls ? !NlsIsEnsurePredefinedLocaleName(cultureName): !IcuIsEnsurePredefinedLocaleName(cultureName))
679680
return null;
680681
}

src/libraries/System.Private.CoreLib/src/System/Globalization/GlobalizationMode.Unix.cs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,12 @@ namespace System.Globalization
55
{
66
internal static partial class GlobalizationMode
77
{
8-
// Order of these properties in Windows matter because GetUseIcuMode is dependent on Invariant.
9-
// So we need Invariant to be initialized first.
10-
internal static bool Invariant { get; } = GetGlobalizationInvariantMode();
8+
private static partial class Settings
9+
{
10+
internal static readonly bool Invariant = GetGlobalizationInvariantMode();
11+
}
12+
13+
internal static bool Invariant => Settings.Invariant;
1114

1215
internal static bool UseNls => false;
1316

src/libraries/System.Private.CoreLib/src/System/Globalization/GlobalizationMode.cs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,19 @@ namespace System.Globalization
88
{
99
internal static partial class GlobalizationMode
1010
{
11+
private static partial class Settings
12+
{
13+
internal static readonly bool PredefinedCulturesOnly = AppContextConfigHelper.GetBooleanConfig("System.Globalization.PredefinedCulturesOnly", "DOTNET_SYSTEM_GLOBALIZATION_PREDEFINED_CULTURES_ONLY");
14+
}
15+
16+
internal static bool PredefinedCulturesOnly => !Invariant && Settings.PredefinedCulturesOnly;
17+
1118
private static bool GetInvariantSwitchValue() =>
1219
AppContextConfigHelper.GetBooleanConfig("System.Globalization.Invariant", "DOTNET_SYSTEM_GLOBALIZATION_INVARIANT");
1320

1421
private static bool TryGetAppLocalIcuSwitchValue([NotNullWhen(true)] out string? value) =>
1522
TryGetStringValue("System.Globalization.AppLocalIcu", "DOTNET_SYSTEM_GLOBALIZATION_APPLOCALICU", out value);
1623

17-
internal static bool PredefinedCulturesOnly { get; } =
18-
AppContextConfigHelper.GetBooleanConfig("System.Globalization.PredefinedCulturesOnly", "DOTNET_SYSTEM_GLOBALIZATION_PREDEFINED_CULTURES_ONLY");
19-
2024
private static bool TryGetStringValue(string switchName, string envVariable, [NotNullWhen(true)] out string? value)
2125
{
2226
value = AppContext.GetData(switchName) as string;

0 commit comments

Comments
 (0)