False positive when using match on class-string from generics

Bug report

This code:

class A {}
class B {}

/**
 * @template T of A|B
 *
 * @param class-string<T> $class
 */
function foo(string $class): string
{
	return match ($class) {
		A::class => 'a',
		B::class => 'b',
	};
}

Wrongly (I guess) reports:

Match expression does not handle remaining value: class-string<T of A|B>

Code snippet that reproduces the problem

https://phpstan.org/r/fa06cc1b-6489-4f4b-b03f-86b75e6de217

Expected output

No errors!

Did PHPStan help you today? Did it make you happy in any way?

No response