Skip to content

Not correct psalm return type for filter #273

Open
@Legion112

Description

This code is valid for plain array_filter for the psalm.
https://psalm.dev/r/31351f98b0
But if you try to do a similar thing with the collection psalm will tell it is not valid.
image

<?php
declare(strict_types=1);

require '../vendor/autoload.php';

use Doctrine\Common\Collections\ArrayCollection;


class Test {
    public int $a = 1;
}
$array = [];
$array[] = random_int(0, 1) === 1 ? new Test : null;
$array = new ArrayCollection($array);

$array = $array->filter(static fn(?Test $t):bool => $t !== null);
$array = $array->map(static fn(Test $t) => $t->a);
foreach ($array as $t) {
    echo $t;
}

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions