Modernize Array constructor (dotnet/coreclr#26684)
authorNext Turn <45985406+NextTurn@users.noreply.github.com>
Thu, 12 Sep 2019 19:04:57 +0000 (03:04 +0800)
committerJan Kotas <jkotas@microsoft.com>
Thu, 12 Sep 2019 19:04:57 +0000 (12:04 -0700)
Commit migrated from https://github.com/dotnet/coreclr/commit/85eb43f20ae9b1ce32ba4631e476ba0e120d5c0b

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

index 21cce21..7ea2884 100644 (file)
@@ -16,7 +16,7 @@ namespace System
     [System.Runtime.CompilerServices.TypeForwardedFrom("mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")]
     public abstract partial class Array : ICloneable, IList, IStructuralComparable, IStructuralEquatable
     {
-        // We impose limits on maximum array lenght in each dimension to allow efficient
+        // We impose limits on maximum array length in each dimension to allow efficient
         // implementation of advanced range check elimination in future.
         // Keep in sync with vm\gcscan.cpp and HashHelpers.MaxPrimeArrayLength.
         // The constants are defined in this method: inline SIZE_T MaxArrayLength(SIZE_T componentSize) from gcscan
@@ -24,9 +24,8 @@ namespace System
         internal const int MaxArrayLength = 0X7FEFFFFF;
         internal const int MaxByteArrayLength = 0x7FFFFFC7;
 
-        // This ctor exists solely to prevent C# from generating a protected .ctor that violates the surface area. I really want this to be a
-        // "protected-and-internal" rather than "internal" but C# has no keyword for the former.
-        internal Array() { }
+        // This ctor exists solely to prevent C# from generating a protected .ctor that violates the surface area.
+        private protected Array() { }
 
         public static ReadOnlyCollection<T> AsReadOnly<T>(T[] array)
         {