Skip to content

Latest commit

 

History

History
30 lines (23 loc) · 393 Bytes

ImpureByReferenceAssignment.md

File metadata and controls

30 lines (23 loc) · 393 Bytes

ImpureByReferenceAssignment

Emitted when assigning a passed-by-reference variable inside a function or method marked as mutation-free.

<?php

/**
 * @psalm-pure
 */
function foo(string &$a): string {
    $a = "B";
    return $a;
}

How to fix

Just remove the mutating assignment:

<?php

/**
 * @psalm-pure
 */
function foo(string &$a): string {
    return $a;
}