LiteralKeyUnshapedArray

Emitted when a literal key is used on an unshaped array, enabled by the disallowLiteralKeysOnUnshapedArrays config parameter.

Useful to enforce usage of shaped arrays instead of generic arrays.

<?php

/**
 * @param array<string, bool> $arr
 */
function takesGenericArr(array $arr): void {
    // Error: LiteralKeyUnshapedArray
    $flagA = $arr['flagA'];
    // Error: LiteralKeyUnshapedArray
    $flagB = $arr['flagB'];
}

/**
 * @param array{flagA: bool, flagB: bool} $arr
 */
function takesShapedArr(array $arr): void {
    // OK
    $flagA = $arr['flagA'];
    // OK
    $flagB = $arr['flagB'];
}