1--TEST--
2Typed class constants (declaration; runtime)
3--FILE--
4<?php
5class A {
6    public const object CONST1 = C;
7    public const ?object CONST2 = C;
8    public const B|stdClass CONST3 = C;
9    public const B&Stringable CONST4 = C;
10    public const (B&Stringable)|null CONST5 = C;
11}
12
13class B implements Stringable {
14    public function __toString() {
15        return "";
16    }
17}
18
19const C = new B();
20
21var_dump(A::CONST1);
22var_dump(A::CONST1);
23var_dump(A::CONST2);
24var_dump(A::CONST2);
25var_dump(A::CONST3);
26var_dump(A::CONST3);
27var_dump(A::CONST4);
28var_dump(A::CONST4);
29var_dump(A::CONST5);
30var_dump(A::CONST5);
31?>
32--EXPECTF--
33object(B)#%d (%d) {
34}
35object(B)#%d (%d) {
36}
37object(B)#%d (%d) {
38}
39object(B)#%d (%d) {
40}
41object(B)#%d (%d) {
42}
43object(B)#%d (%d) {
44}
45object(B)#%d (%d) {
46}
47object(B)#%d (%d) {
48}
49object(B)#%d (%d) {
50}
51object(B)#%d (%d) {
52}
53