namespace Foo;

use Bar\C;
use Foo;
use function Bar\c;
use const Bar\FOO;

#[A]
class A implements A, C
{
	use \Bar\D;

	#[A]
	public function test(
		#[\Bar\D]
		C $a,
		self $b,
		parent $c,
		array $d,
		?callable $e,
		C|string $f,
	): static|A
	{
	}
}

interface B
{
}
