Skip to content

Nested generic parameter is false-positively detected as unused #4641

@hrach

Description

@hrach

Bug report

interface IEntity {}
/** @template E of IEntity */
interface IRepository {}

interface I {
	/**
 	* Returns repository by repository class.
 	* @template E of IEntity
 	* @template T of IRepository<E>
 	* @phpstan-param class-string<T> $className
	* @phpstan-return T
 	*/
	function getRepository(string $className): IRepository;
}

produces Template type E of method I::getRepository() is not referenced in a parameter.

Code snippet that reproduces the problem

https://phpstan.org/r/c83773ee-3c15-48cb-8461-0845def9f2d9

Expected output

no error

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions