Skip to content

Optional templated args not provided cause unbound template errors #2572

@muglug

Description

@muglug

Code snippet that reproduces the problem

/**
 * @template TE
 * @template TR
 *
 * @param TE $elt
 * @param TR ...$elts
 *
 * @return TE|TR
 */
function collect($elt, ...$elts) {
	$ret = $elt;
	foreach ($elts as $item) {
		if (rand(0, 1)) {
			$ret = $item;
		}
	}
	return $ret;
}

echo collect("a");

https://phpstan.org/r/07be4916-5e39-4da2-a566-8c9c1922ea89

Expected output

No issue

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions