in testData/codeInsight/typeInference/PsalmArrayShape.php [39:56]
function f1($param){
/** @var array<string, C> $ctxA */
$ctxA = $param->f();
<type value="C">$ctxA[0]</type>;
<type value="C">$ctxA[1]</type>;
/** @var array{string, C} $ctxB */
$ctxB = $param->f();
<type value="string|mixed">$ctxB[0]</type>;
<type value="C|mixed">$ctxB[1]</type>;
<type value="string|C|mixed">$ctxB[$f]</type>;
/** @var array<array{a: C}> $ctxC */
$ctxC = $param->f();
<type value="C|mixed">$ctxC[$f]['a']</type>;
<type value="mixed">$ctxC[$f]['b']</type>;
}