1--TEST--
2Various inheritance scenarios for properties/methods with union types
3--FILE--
4<?php
5
6class X {
7    public A|B|int $prop;
8    public function method(A|B|int $arg): A|B|int { }
9
10    private A|B|int $prop2;
11    private function method2(A|B|int $arg): A|B|int { }
12}
13
14class Y extends X {
15}
16
17trait T {
18    public A|B|int $prop;
19    public function method(A|B|int $arg): A|B|int { }
20
21    private A|B|int $prop2;
22    private function method2(A|B|int $arg): A|B|int { }
23}
24
25class Z {
26    use T;
27}
28
29class U extends X {
30    use T;
31}
32
33class V extends X {
34    use T;
35
36    public A|B|int $prop;
37    public function method(A|B|int $arg): A|B|int { }
38
39    private A|B|int $prop2;
40    private function method2(A|B|int $arg): A|B|int { }
41}
42
43?>
44===DONE===
45--EXPECT--
46===DONE===
47