1--TEST--
2Class order allowed with autoloading (3)
3--FILE--
4<?php
5
6spl_autoload_register(function($class) {
7    if ($class == 'A') {
8        class A {
9            public function method(): X {}
10        }
11        var_dump(new A);
12    } else if ($class == 'B') {
13        class B extends A {
14            public function method(): Y {}
15        }
16        var_dump(new B);
17    } else if ($class == 'X') {
18        class X {
19            public function method(): A {}
20        }
21        var_dump(new X);
22    } else if ($class == 'Y') {
23        class Y extends X {
24            public function method(): B {}
25        }
26        var_dump(new Y);
27    }
28});
29
30var_dump(new B);
31
32?>
33===DONE===
34--EXPECT--
35object(A)#2 (0) {
36}
37object(X)#2 (0) {
38}
39object(Y)#2 (0) {
40}
41object(B)#2 (0) {
42}
43object(B)#2 (0) {
44}
45===DONE===
46