Repository: dotnet/roslyn
File: src/Compilers/Core/Portable/WellKnownTypes.cs (C#)

Code before:

        System_Runtime_CompilerServices_ParamCollectionAttribute,
        System_Runtime_CompilerServices_ExtensionMarkerAttribute,

        System_Linq_Expressions_BinaryExpression,
        System_Linq_Expressions_MethodCallExpression,
        System_Linq_Expressions_ConstantExpression,
        System_Linq_Expressions_UnaryExpression,
        System_Linq_Expressions_NewExpression,
        System_Linq_Expressions_MemberExpression,
        System_Linq_Expressions_MemberMemberBinding,
        System_Linq_Expressions_MemberAssignment,
        System_Linq_Expressions_MemberListBinding,
        System_Linq_Expressions_ListInitExpression,
        System_Linq_Expressions_MemberInitExpression,
        System_Linq_Expressions_LambdaExpression,
        System_Linq_Expressions_TypeBinaryExpression,
        System_Linq_Expressions_ConditionalExpression,
        System_Linq_Expressions_InvocationExpression,
        System_Linq_Expressions_NewArrayExpression,
        System_Linq_Expressions_DefaultExpression,

        System_Text_Encoding,

        System_Runtime_CompilerServices_InlineArray2,
        System_Runtime_CompilerServices_InlineArray3,
        System_Runtime_CompilerServices_InlineArray4,
        System_Runtime_CompilerServices_InlineArray5,
        System_Runtime_CompilerServices_InlineArray6,
        System_Runtime_CompilerServices_InlineArray7,
        System_Runtime_CompilerServices_InlineArray8,
        System_Runtime_CompilerServices_InlineArray9,
        System_Runtime_CompilerServices_InlineArray10,
        System_Runtime_CompilerServices_InlineArray11,
        System_Runtime_CompilerServices_InlineArray12,
        System_Runtime_CompilerServices_InlineArray13,
        System_Runtime_CompilerServices_InlineArray14,
        System_Runtime_CompilerServices_InlineArray15,
        System_Runtime_CompilerServices_InlineArray16,

        NextAvailable,
        // Remember to update the AllWellKnownTypes tests when making changes here
    }

    internal static class WellKnownTypes
    {
        /// <summary>
        /// Number of well known types in WellKnownType enum
        /// </summary>
        internal const int Count = WellKnownType.NextAvailable - WellKnownType.First;


Review comment (suggestion):
>System_Runtime_CompilerServices_InlineArray2 [](http://example.com/codeflow?start=8&length=44)

It looks like we rely on the fact that these values are grouped together. Consider adding a comment about this requirement. Also consider adding a compile-time assert(s) below (see line 793) to enforce the requirement at compile time. I am thinking of enforcing that ```System_Runtime_CompilerServices_InlineArray3 == System_Runtime_CompilerServices_InlineArray2 + 1```, etc #Closed

Code after:

        System_Runtime_CompilerServices_ParamCollectionAttribute,
        System_Runtime_CompilerServices_ExtensionMarkerAttribute,

        System_Linq_Expressions_BinaryExpression,
        System_Linq_Expressions_MethodCallExpression,
        System_Linq_Expressions_ConstantExpression,
        System_Linq_Expressions_UnaryExpression,
        System_Linq_Expressions_NewExpression,
        System_Linq_Expressions_MemberExpression,
        System_Linq_Expressions_MemberMemberBinding,
        System_Linq_Expressions_MemberAssignment,
        System_Linq_Expressions_MemberListBinding,
        System_Linq_Expressions_ListInitExpression,
        System_Linq_Expressions_MemberInitExpression,
        System_Linq_Expressions_LambdaExpression,
        System_Linq_Expressions_TypeBinaryExpression,
        System_Linq_Expressions_ConditionalExpression,
        System_Linq_Expressions_InvocationExpression,
        System_Linq_Expressions_NewArrayExpression,
        System_Linq_Expressions_DefaultExpression,

        System_Text_Encoding,

        // The InlineArray types must be sequential, as we do arithmetic on them.
        System_Runtime_CompilerServices_InlineArray2,
        System_Runtime_CompilerServices_InlineArray3,
        System_Runtime_CompilerServices_InlineArray4,
        System_Runtime_CompilerServices_InlineArray5,
        System_Runtime_CompilerServices_InlineArray6,
        System_Runtime_CompilerServices_InlineArray7,
        System_Runtime_CompilerServices_InlineArray8,
        System_Runtime_CompilerServices_InlineArray9,
        System_Runtime_CompilerServices_InlineArray10,
        System_Runtime_CompilerServices_InlineArray11,
        System_Runtime_CompilerServices_InlineArray12,
        System_Runtime_CompilerServices_InlineArray13,
        System_Runtime_CompilerServices_InlineArray14,
        System_Runtime_CompilerServices_InlineArray15,
        System_Runtime_CompilerServices_InlineArray16,

        NextAvailable,
        // Remember to update MissingSpecialMember.AllWellKnownTypes and WellKnownTypeValidationTests.AllWellKnownTypes tests when making changes here
    }

    internal static class WellKnownTypes
    {
        /// <summary>
        /// Number of well known types in WellKnownType enum
        /// </summary>
        internal const int Count = WellKnownType.NextAvailable - WellKnownType.First;