mirror of
https://github.com/danog/psalm.git
synced 2024-11-30 04:39:00 +01:00
Add test
This commit is contained in:
parent
bccda92f31
commit
70d1a5a3c5
@ -16,6 +16,49 @@ class ClassTemplateTest extends TestCase
|
|||||||
public function providerValidCodeParse(): iterable
|
public function providerValidCodeParse(): iterable
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
|
'templateIntersection' => [
|
||||||
|
'code' => '<?php
|
||||||
|
interface EntityInterface
|
||||||
|
{
|
||||||
|
public function getId(): string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @phpstan-template T of EntityInterface
|
||||||
|
*/
|
||||||
|
interface RepositoryInterface
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @return T|null
|
||||||
|
*/
|
||||||
|
public function byId(string $id);
|
||||||
|
}
|
||||||
|
|
||||||
|
final class Foo implements EntityInterface
|
||||||
|
{
|
||||||
|
public function getId(): string
|
||||||
|
{
|
||||||
|
return "42";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @phpstan-implements RepositoryInterface<Foo>
|
||||||
|
*/
|
||||||
|
final class FooRepository implements RepositoryInterface
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @var Foo[]
|
||||||
|
*/
|
||||||
|
public array $elements = [];
|
||||||
|
|
||||||
|
public function byId(string $id): ?Foo
|
||||||
|
{
|
||||||
|
return $this->elements[$id] ?? null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
'
|
||||||
|
],
|
||||||
'cachingIterator' => [
|
'cachingIterator' => [
|
||||||
'code' => '<?php
|
'code' => '<?php
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user