1
0
mirror of https://github.com/danog/psalm.git synced 2024-12-13 09:47:29 +01:00
psalm/docs/running_psalm/issues/UnsupportedReferenceUsage.md

742 B

UnsupportedReferenceUsage

Emitted when Psalm encounters a reference that it is not currently able to track (for instance a reference to an array offset of an array offset: $foo = &$bar[$baz[0]]). When an unsupported reference is encountered, Psalm will issue this warning and treat the variable as though it wasn't actually a reference.

How to fix

This can sometimes be fixed by using a temporary variable:

<?php

/** @var non-empty-list<int> */
$bar = [1, 2, 3];
/** @var non-empty-list<int> */
$baz = [1, 2, 3];

$foo = &$bar[$baz[0]];

can be turned into

<?php

/** @var non-empty-list<int> */
$bar = [1, 2, 3];
/** @var non-empty-list<int> */
$baz = [1, 2, 3];

$offset = $baz[0];
$foo = &$bar[$offset];