Skip to content

Commit 9d65106

Browse files
committed
Add another variance test
1 parent 79d2425 commit 9d65106

File tree

1 file changed

+45
-0
lines changed
  • Zend/tests/type_declarations/intersection_types/variance

1 file changed

+45
-0
lines changed
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
--TEST--
2+
Replacing union of classes respecting intersection type by intersection type
3+
--FILE--
4+
<?php
5+
6+
interface X {}
7+
interface Y {}
8+
9+
class TestOne implements X, Y {}
10+
class TestTwo implements X, Y {}
11+
12+
interface A
13+
{
14+
public function foo(TestOne|TestTwo $param): X&Y;
15+
}
16+
17+
interface B extends A
18+
{
19+
public function foo(X&Y $param): TestOne|TestTwo;
20+
}
21+
22+
interface C extends A
23+
{
24+
public function foo(X $param): TestTwo;
25+
}
26+
27+
interface D extends A
28+
{
29+
public function foo(Y $param): TestOne;
30+
}
31+
32+
interface E extends B
33+
{
34+
public function foo(X $param): TestTwo;
35+
}
36+
37+
interface F extends B
38+
{
39+
public function foo(Y $param): TestOne;
40+
}
41+
42+
?>
43+
===DONE===
44+
--EXPECT--
45+
===DONE===

0 commit comments

Comments
 (0)