Skip to content

Commit 441f31f

Browse files
tannergoodingradekdoulik
authored andcommitted
Moving "Generic Math" in box and making it no longer experimental (dotnet#65731)
* Moving "Generic Math" in box and making it no longer experimental * Removing an unused using from the generic math interfaces * Updating the ordering of the checked keyword for the commented out checked operators
1 parent f9ca511 commit 441f31f

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+178
-2949
lines changed

src/coreclr/clr.featuredefines.props

-2
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
<FeaturePerfTracing>true</FeaturePerfTracing>
1010
<FeatureTypeEquivalence>true</FeatureTypeEquivalence>
1111
<FeatureBasicFreeze>true</FeatureBasicFreeze>
12-
<FeatureGenericMath>true</FeatureGenericMath>
1312
<ProfilingSupportedBuild>true</ProfilingSupportedBuild>
1413
</PropertyGroup>
1514

@@ -60,7 +59,6 @@
6059
<DefineConstants Condition="'$(FeatureBasicFreeze)' == 'true'">$(DefineConstants);FEATURE_BASICFREEZE</DefineConstants>
6160
<DefineConstants Condition="'$(FeaturePortableShuffleThunks)' == 'true'">$(DefineConstants);FEATURE_PORTABLE_SHUFFLE_THUNKS</DefineConstants>
6261
<DefineConstants Condition="'$(FeatureICastable)' == 'true'">$(DefineConstants);FEATURE_ICASTABLE</DefineConstants>
63-
<DefineConstants Condition="'$(FeatureGenericMath)' == 'true'">$(DefineConstants);FEATURE_GENERIC_MATH</DefineConstants>
6462

6563
<DefineConstants Condition="'$(ProfilingSupportedBuild)' == 'true'">$(DefineConstants);PROFILING_SUPPORTED</DefineConstants>
6664
<DefineConstants Condition="'$(FeatureProfAttach)' == 'true'">$(DefineConstants);FEATURE_PROFAPI_ATTACH_DETACH</DefineConstants>

src/coreclr/nativeaot/System.Private.CoreLib/src/System.Private.CoreLib.csproj

-4
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,6 @@
3737
<FeatureHardwareIntrinsics>true</FeatureHardwareIntrinsics>
3838
<FeatureSharedLowLevelLock>true</FeatureSharedLowLevelLock>
3939
</PropertyGroup>
40-
<PropertyGroup>
41-
<FeatureGenericMath>true</FeatureGenericMath>
42-
<DefineConstants Condition="'$(FeatureGenericMath)' == 'true'">$(DefineConstants);FEATURE_GENERIC_MATH</DefineConstants>
43-
</PropertyGroup>
4440

4541
<!-- Sources -->
4642
<ItemGroup>

src/libraries/System.Numerics.Vectors/tests/System.Numerics.Vectors.Tests.csproj

-4
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,4 @@
1717
<Compile Include="PlaneTests.cs" />
1818
<Compile Include="QuaternionTests.cs" />
1919
</ItemGroup>
20-
<ItemGroup>
21-
<!-- it's a reference assembly, but the project system doesn't know that - include it during compilation, but don't publish it -->
22-
<ProjectReference Include="$(LibrariesProjectRoot)System.Runtime.Experimental\ref\System.Runtime.Experimental.csproj" IncludeAssets="compile" Private="false" />
23-
</ItemGroup>
2420
</Project>

src/libraries/System.Private.CoreLib/src/System.Private.CoreLib.Shared.projitems

+1-1
Original file line numberDiff line numberDiff line change
@@ -2366,7 +2366,7 @@
23662366
<Link>Interop\Windows\Kernel32\Interop.Threading.cs</Link>
23672367
</Compile>
23682368
</ItemGroup>
2369-
<ItemGroup Condition="'$(FeatureGenericMath)' == 'true'">
2369+
<ItemGroup>
23702370
<Compile Include="$(MSBuildThisFileDirectory)System\IAdditionOperators.cs" />
23712371
<Compile Include="$(MSBuildThisFileDirectory)System\IAdditiveIdentity.cs" />
23722372
<Compile Include="$(MSBuildThisFileDirectory)System\IBitwiseOperators.cs" />

src/libraries/System.Private.CoreLib/src/System/Byte.cs

+7-70
Large diffs are not rendered by default.

src/libraries/System.Private.CoreLib/src/System/Char.cs

+7-70
Large diffs are not rendered by default.

src/libraries/System.Private.CoreLib/src/System/DateOnly.cs

+6-20
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,14 @@ namespace System
1111
/// <summary>
1212
/// Represents dates with values ranging from January 1, 0001 Anno Domini (Common Era) through December 31, 9999 A.D. (C.E.) in the Gregorian calendar.
1313
/// </summary>
14-
public readonly struct DateOnly : IComparable, IComparable<DateOnly>, IEquatable<DateOnly>, ISpanFormattable
15-
#if FEATURE_GENERIC_MATH
16-
#pragma warning disable SA1001, CA2252 // SA1001: Comma positioning; CA2252: Preview Features
17-
, IComparisonOperators<DateOnly, DateOnly>,
14+
public readonly struct DateOnly
15+
: IComparable,
16+
IComparable<DateOnly>,
17+
IEquatable<DateOnly>,
18+
ISpanFormattable,
19+
IComparisonOperators<DateOnly, DateOnly>,
1820
IMinMaxValue<DateOnly>,
1921
ISpanParseable<DateOnly>
20-
#pragma warning restore SA1001, CA2252
21-
#endif // FEATURE_GENERIC_MATH
2222
{
2323
private readonly int _dayNumber;
2424

@@ -829,72 +829,58 @@ public string ToString(string? format, IFormatProvider? provider)
829829
return DateTimeFormat.TryFormat(GetEquivalentDateTime(), destination, out charsWritten, format, provider);
830830
}
831831

832-
#if FEATURE_GENERIC_MATH
833832
//
834833
// IComparisonOperators
835834
//
836835

837-
[RequiresPreviewFeatures(Number.PreviewFeatureMessage, Url = Number.PreviewFeatureUrl)]
838836
static bool IComparisonOperators<DateOnly, DateOnly>.operator <(DateOnly left, DateOnly right)
839837
=> left < right;
840838

841-
[RequiresPreviewFeatures(Number.PreviewFeatureMessage, Url = Number.PreviewFeatureUrl)]
842839
static bool IComparisonOperators<DateOnly, DateOnly>.operator <=(DateOnly left, DateOnly right)
843840
=> left <= right;
844841

845-
[RequiresPreviewFeatures(Number.PreviewFeatureMessage, Url = Number.PreviewFeatureUrl)]
846842
static bool IComparisonOperators<DateOnly, DateOnly>.operator >(DateOnly left, DateOnly right)
847843
=> left > right;
848844

849-
[RequiresPreviewFeatures(Number.PreviewFeatureMessage, Url = Number.PreviewFeatureUrl)]
850845
static bool IComparisonOperators<DateOnly, DateOnly>.operator >=(DateOnly left, DateOnly right)
851846
=> left >= right;
852847

853848
//
854849
// IEqualityOperators
855850
//
856851

857-
[RequiresPreviewFeatures(Number.PreviewFeatureMessage, Url = Number.PreviewFeatureUrl)]
858852
static bool IEqualityOperators<DateOnly, DateOnly>.operator ==(DateOnly left, DateOnly right)
859853
=> left == right;
860854

861-
[RequiresPreviewFeatures(Number.PreviewFeatureMessage, Url = Number.PreviewFeatureUrl)]
862855
static bool IEqualityOperators<DateOnly, DateOnly>.operator !=(DateOnly left, DateOnly right)
863856
=> left != right;
864857

865858
//
866859
// IMinMaxValue
867860
//
868861

869-
[RequiresPreviewFeatures(Number.PreviewFeatureMessage, Url = Number.PreviewFeatureUrl)]
870862
static DateOnly IMinMaxValue<DateOnly>.MinValue => MinValue;
871863

872-
[RequiresPreviewFeatures(Number.PreviewFeatureMessage, Url = Number.PreviewFeatureUrl)]
873864
static DateOnly IMinMaxValue<DateOnly>.MaxValue => MaxValue;
874865

875866
//
876867
// IParseable
877868
//
878869

879-
[RequiresPreviewFeatures(Number.PreviewFeatureMessage, Url = Number.PreviewFeatureUrl)]
880870
static DateOnly IParseable<DateOnly>.Parse(string s, IFormatProvider? provider)
881871
=> Parse(s, provider, DateTimeStyles.None);
882872

883-
[RequiresPreviewFeatures(Number.PreviewFeatureMessage, Url = Number.PreviewFeatureUrl)]
884873
static bool IParseable<DateOnly>.TryParse([NotNullWhen(true)] string? s, IFormatProvider? provider, out DateOnly result)
885874
=> TryParse(s, provider, DateTimeStyles.None, out result);
886875

887876
//
888877
// ISpanParseable
889878
//
890879

891-
[RequiresPreviewFeatures(Number.PreviewFeatureMessage, Url = Number.PreviewFeatureUrl)]
892880
static DateOnly ISpanParseable<DateOnly>.Parse(ReadOnlySpan<char> s, IFormatProvider? provider)
893881
=> Parse(s, provider, DateTimeStyles.None);
894882

895-
[RequiresPreviewFeatures(Number.PreviewFeatureMessage, Url = Number.PreviewFeatureUrl)]
896883
static bool ISpanParseable<DateOnly>.TryParse(ReadOnlySpan<char> s, IFormatProvider? provider, out DateOnly result)
897884
=> TryParse(s, provider, DateTimeStyles.None, out result);
898-
#endif // FEATURE_GENERIC_MATH
899885
}
900886
}

src/libraries/System.Private.CoreLib/src/System/DateTime.cs

+8-27
Original file line numberDiff line numberDiff line change
@@ -44,18 +44,20 @@ namespace System
4444
[StructLayout(LayoutKind.Auto)]
4545
[Serializable]
4646
[System.Runtime.CompilerServices.TypeForwardedFrom("mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")]
47-
public readonly partial struct DateTime : IComparable, ISpanFormattable, IConvertible, IComparable<DateTime>, IEquatable<DateTime>, ISerializable
48-
#if FEATURE_GENERIC_MATH
49-
#pragma warning disable SA1001, CA2252 // SA1001: Comma positioning; CA2252: Preview Features
50-
, IAdditionOperators<DateTime, TimeSpan, DateTime>,
47+
public readonly partial struct DateTime
48+
: IComparable,
49+
ISpanFormattable,
50+
IConvertible,
51+
IComparable<DateTime>,
52+
IEquatable<DateTime>,
53+
ISerializable,
54+
IAdditionOperators<DateTime, TimeSpan, DateTime>,
5155
IAdditiveIdentity<DateTime, TimeSpan>,
5256
IComparisonOperators<DateTime, DateTime>,
5357
IMinMaxValue<DateTime>,
5458
ISpanParseable<DateTime>,
5559
ISubtractionOperators<DateTime, TimeSpan, DateTime>,
5660
ISubtractionOperators<DateTime, DateTime, TimeSpan>
57-
#pragma warning restore SA1001, CA2252
58-
#endif // FEATURE_GENERIC_MATH
5961
{
6062
// Number of 100ns ticks per time unit
6163
private const long TicksPerMillisecond = 10000;
@@ -1500,112 +1502,91 @@ internal static bool TryCreate(int year, int month, int day, int hour, int minut
15001502
return true;
15011503
}
15021504

1503-
#if FEATURE_GENERIC_MATH
15041505
//
15051506
// IAdditionOperators
15061507
//
15071508

1508-
[RequiresPreviewFeatures(Number.PreviewFeatureMessage, Url = Number.PreviewFeatureUrl)]
15091509
static DateTime IAdditionOperators<DateTime, TimeSpan, DateTime>.operator +(DateTime left, TimeSpan right)
15101510
=> left + right;
15111511

1512-
// [RequiresPreviewFeatures(Number.PreviewFeatureMessage, Url = Number.PreviewFeatureUrl)]
15131512
// static checked DateTime IAdditionOperators<DateTime, TimeSpan, DateTime>.operator +(DateTime left, TimeSpan right)
15141513
// => checked(left + right);
15151514

15161515
//
15171516
// IAdditiveIdentity
15181517
//
15191518

1520-
[RequiresPreviewFeatures(Number.PreviewFeatureMessage, Url = Number.PreviewFeatureUrl)]
15211519
static TimeSpan IAdditiveIdentity<DateTime, TimeSpan>.AdditiveIdentity
15221520
=> default;
15231521

15241522
//
15251523
// IComparisonOperators
15261524
//
15271525

1528-
[RequiresPreviewFeatures(Number.PreviewFeatureMessage, Url = Number.PreviewFeatureUrl)]
15291526
static bool IComparisonOperators<DateTime, DateTime>.operator <(DateTime left, DateTime right)
15301527
=> left < right;
15311528

1532-
[RequiresPreviewFeatures(Number.PreviewFeatureMessage, Url = Number.PreviewFeatureUrl)]
15331529
static bool IComparisonOperators<DateTime, DateTime>.operator <=(DateTime left, DateTime right)
15341530
=> left <= right;
15351531

1536-
[RequiresPreviewFeatures(Number.PreviewFeatureMessage, Url = Number.PreviewFeatureUrl)]
15371532
static bool IComparisonOperators<DateTime, DateTime>.operator >(DateTime left, DateTime right)
15381533
=> left > right;
15391534

1540-
[RequiresPreviewFeatures(Number.PreviewFeatureMessage, Url = Number.PreviewFeatureUrl)]
15411535
static bool IComparisonOperators<DateTime, DateTime>.operator >=(DateTime left, DateTime right)
15421536
=> left >= right;
15431537

15441538
//
15451539
// IEqualityOperators
15461540
//
15471541

1548-
[RequiresPreviewFeatures(Number.PreviewFeatureMessage, Url = Number.PreviewFeatureUrl)]
15491542
static bool IEqualityOperators<DateTime, DateTime>.operator ==(DateTime left, DateTime right)
15501543
=> left == right;
15511544

1552-
[RequiresPreviewFeatures(Number.PreviewFeatureMessage, Url = Number.PreviewFeatureUrl)]
15531545
static bool IEqualityOperators<DateTime, DateTime>.operator !=(DateTime left, DateTime right)
15541546
=> left != right;
15551547

15561548
//
15571549
// IMinMaxValue
15581550
//
15591551

1560-
[RequiresPreviewFeatures(Number.PreviewFeatureMessage, Url = Number.PreviewFeatureUrl)]
15611552
static DateTime IMinMaxValue<DateTime>.MinValue => MinValue;
15621553

1563-
[RequiresPreviewFeatures(Number.PreviewFeatureMessage, Url = Number.PreviewFeatureUrl)]
15641554
static DateTime IMinMaxValue<DateTime>.MaxValue => MaxValue;
15651555

15661556
//
15671557
// IParseable
15681558
//
15691559

1570-
[RequiresPreviewFeatures(Number.PreviewFeatureMessage, Url = Number.PreviewFeatureUrl)]
15711560
static DateTime IParseable<DateTime>.Parse(string s, IFormatProvider? provider)
15721561
=> Parse(s, provider);
15731562

1574-
[RequiresPreviewFeatures(Number.PreviewFeatureMessage, Url = Number.PreviewFeatureUrl)]
15751563
static bool IParseable<DateTime>.TryParse([NotNullWhen(true)] string? s, IFormatProvider? provider, out DateTime result)
15761564
=> TryParse(s, provider, DateTimeStyles.None, out result);
15771565

15781566
//
15791567
// ISpanParseable
15801568
//
15811569

1582-
[RequiresPreviewFeatures(Number.PreviewFeatureMessage, Url = Number.PreviewFeatureUrl)]
15831570
static DateTime ISpanParseable<DateTime>.Parse(ReadOnlySpan<char> s, IFormatProvider? provider)
15841571
=> Parse(s, provider, DateTimeStyles.None);
15851572

1586-
[RequiresPreviewFeatures(Number.PreviewFeatureMessage, Url = Number.PreviewFeatureUrl)]
15871573
static bool ISpanParseable<DateTime>.TryParse(ReadOnlySpan<char> s, IFormatProvider? provider, out DateTime result)
15881574
=> TryParse(s, provider, DateTimeStyles.None, out result);
15891575

15901576
//
15911577
// ISubtractionOperators
15921578
//
15931579

1594-
[RequiresPreviewFeatures(Number.PreviewFeatureMessage, Url = Number.PreviewFeatureUrl)]
15951580
static DateTime ISubtractionOperators<DateTime, TimeSpan, DateTime>.operator -(DateTime left, TimeSpan right)
15961581
=> left - right;
15971582

1598-
// [RequiresPreviewFeatures(Number.PreviewFeatureMessage, Url = Number.PreviewFeatureUrl)]
15991583
// static checked DateTime ISubtractionOperators<DateTime, TimeSpan, DateTime>.operator -(DateTime left, TimeSpan right)
16001584
// => checked(left - right);
16011585

1602-
[RequiresPreviewFeatures(Number.PreviewFeatureMessage, Url = Number.PreviewFeatureUrl)]
16031586
static TimeSpan ISubtractionOperators<DateTime, DateTime, TimeSpan>.operator -(DateTime left, DateTime right)
16041587
=> left - right;
16051588

1606-
// [RequiresPreviewFeatures(Number.PreviewFeatureMessage, Url = Number.PreviewFeatureUrl)]
16071589
// static checked TimeSpan ISubtractionOperators<DateTime, DateTime, TimeSpan>.operator -(DateTime left, DateTime right)
16081590
// => checked(left - right);
1609-
#endif // FEATURE_GENERIC_MATH
16101591
}
16111592
}

0 commit comments

Comments
 (0)