File tree Expand file tree Collapse file tree 1 file changed +45
-0
lines changed
Zend/tests/type_declarations/intersection_types/variance Expand file tree Collapse file tree 1 file changed +45
-0
lines changed Original file line number Diff line number Diff line change 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===
You can’t perform that action at this time.
0 commit comments