/
intersection.php
46 lines (39 loc) 路 1.1 KB
/
intersection.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?php
declare(strict_types=1);
use Psl\Collection\Map;
use Psl\Collection\Vector;
use Psl\Result\ResultInterface;
use Psl\Type;
/**
* @psalm-suppress UnusedParam
*
* @param Map&ResultInterface&stdClass&Vector $value
*/
function takes_valid_intersection($value): void
{
}
function test(): void
{
/** @psalm-suppress MissingThrowsDocblock */
$old_school_codec = Type\intersection(
Type\object(Map::class),
Type\intersection(
Type\object(ResultInterface::class),
Type\intersection(
Type\object(stdClass::class),
Type\object(Vector::class),
)
),
);
/** @psalm-suppress MissingThrowsDocblock */
$new_codec = Type\intersection(
Type\object(Map::class),
Type\object(ResultInterface::class),
Type\object(stdClass::class),
Type\object(Vector::class),
);
/** @psalm-suppress MissingThrowsDocblock */
takes_valid_intersection($old_school_codec->assert('any'));
/** @psalm-suppress MissingThrowsDocblock */
takes_valid_intersection($new_codec->assert('any'));
}