1--TEST--
2Inheritance failure because X inherits from wrong class
3--FILE--
4<?php
5
6spl_autoload_register(function ($class) {
7    if ($class == 'A') {
8        class A
9        {
10            function m(): B {}
11            function m2(): B {}
12        }
13        var_dump(new A);
14    } elseif ($class == 'B') {
15        class B extends A
16        {
17            function m(): X {}
18            function m2(): Y {}
19        }
20        var_dump(new B);
21    } elseif ($class == 'X') {
22        class X extends A {}
23        var_dump(new X);
24    } else {
25        class Y extends B {}
26        var_dump(new Y);
27    }
28});
29
30new B;
31
32?>
33--EXPECTF--
34object(A)#2 (0) {
35}
36object(X)#2 (0) {
37}
38
39Fatal error: Declaration of B::m(): X must be compatible with A::m(): B in %s on line %d
40