contract ArrayExpressions {
    function test() external {
        /* ARRAY SUBSCRIPT */
        uint256[10] memory sample;

        uint256 length = 10;
        uint256[] memory sample2 = new uint256[](length);

        uint256[] /* comment1 */ memory /* comment2 */ sample3; // comment3

        /* ARRAY SLICE */
        msg.data[4:];
        msg.data[:msg.data.length];
        msg.data[4:msg.data.length];

        msg.data[
            // comment1
            4:
        ];
        msg.data[
            : /* comment2 */ msg.data.length // comment3
        ];
        msg.data[
            // comment4
            4: // comment5
                msg.data.length /* comment6 */
        ];

        uint256
            someVeryVeryVeryLongVariableNameThatDenotesTheStartOfTheMessageDataSlice =
                4;
        uint256
            someVeryVeryVeryLongVariableNameThatDenotesTheEndOfTheMessageDataSlice =
                msg.data.length;
        msg.data[
            someVeryVeryVeryLongVariableNameThatDenotesTheStartOfTheMessageDataSlice:
        ];
        msg.data[
            :someVeryVeryVeryLongVariableNameThatDenotesTheEndOfTheMessageDataSlice
        ];
        msg.data[
            someVeryVeryVeryLongVariableNameThatDenotesTheStartOfTheMessageDataSlice:
                someVeryVeryVeryLongVariableNameThatDenotesTheEndOfTheMessageDataSlice
        ];

        /* ARRAY LITERAL */
        [1, 2, 3];

        uint256 someVeryVeryLongVariableName = 0;
        [
            someVeryVeryLongVariableName,
            someVeryVeryLongVariableName,
            someVeryVeryLongVariableName
        ];
        uint256[3] memory literal = [
            someVeryVeryLongVariableName,
            someVeryVeryLongVariableName,
            someVeryVeryLongVariableName
        ];

        uint8[3] memory literal2 = /* comment7 */ [ // comment8
            1,
            2, /* comment9 */
            3 // comment10
        ];
        uint256[1] memory literal3 =
            [ /* comment11 */ someVeryVeryLongVariableName /* comment13 */ ];
    }
}
