1--TEST--
2Class order allowed with autoloading (2)
3--FILE--
4<?php
5
6spl_autoload_register(function($class) {
7    if ($class === 'A') {
8        class A {
9            public function method() : B {}
10        }
11        var_dump(new A);
12    } else if ($class == 'B') {
13        class B extends A {
14            public function method() : C {}
15        }
16        var_dump(new B);
17    } else {
18        class C extends B {
19        }
20        var_dump(new C);
21    }
22});
23
24// Same as autoload1 test case, but with a different autoloading root
25var_dump(new B);
26
27?>
28===DONE===
29--EXPECT--
30object(A)#2 (0) {
31}
32object(C)#2 (0) {
33}
34object(B)#2 (0) {
35}
36object(B)#2 (0) {
37}
38===DONE===
39