Psalm
Get started
Documentation
Paid support
Plugins
Blog
GitHub
<?php declare(strict_types=1); /** @template T */ interface Message {} /** @implements Message<int> */ final class FirstMessage implements Message {} /** @implements Message<int> */ final class SecondMessage implements Message {} /** * @template T * @param Message<T> $msg */ function test(Message $msg): void {} /** @var FirstMessage|SecondMessage $message */; test($message);
Snippet created on May 6 2023 at 13:17 UTC
Settings
Get link