1--TEST--
2Typed class constants (type mismatch; runtime)
3--FILE--
4<?php
5class A {
6    public const stdClass&Stringable CONST1 = C;
7    public const stdClass&Stringable CONST2 = A::CONST1;
8}
9
10define("C", new stdClass);
11
12try {
13    var_dump(A::CONST2);
14} catch (TypeError $exception) {
15    echo $exception->getMessage() . "\n";
16}
17
18try {
19    var_dump(A::CONST2);
20} catch (TypeError $exception) {
21    echo $exception->getMessage() . "\n";
22}
23
24try {
25    var_dump(A::CONST1);
26} catch (TypeError $exception) {
27    echo $exception->getMessage() . "\n";
28}
29
30try {
31    var_dump(A::CONST1);
32} catch (TypeError $exception) {
33    echo $exception->getMessage() . "\n";
34}
35?>
36--EXPECT--
37Cannot assign stdClass to class constant A::CONST1 of type stdClass&Stringable
38Cannot assign stdClass to class constant A::CONST1 of type stdClass&Stringable
39Cannot assign stdClass to class constant A::CONST1 of type stdClass&Stringable
40Cannot assign stdClass to class constant A::CONST1 of type stdClass&Stringable
41