1--TEST--
2Typed enum constants (self/static)
3--FILE--
4<?php
5enum E {
6    public const E CONST1 = E::Foo;
7    public const self CONST2 = E::Foo;
8    public const static CONST3 = E::Foo;
9    public const static|stdClass CONST4 = E::Foo;
10
11    case Foo;
12}
13
14class A {
15    public const E ENUM_CONST = E::Foo;
16    public const E CONST1 = E::CONST1;
17    public const E CONST2 = E::CONST2;
18    public const E CONST3 = E::CONST3;
19    public const E CONST4 = E::CONST4;
20}
21
22var_dump(A::ENUM_CONST);
23var_dump(A::ENUM_CONST);
24var_dump(A::CONST1);
25var_dump(A::CONST1);
26var_dump(A::CONST2);
27var_dump(A::CONST2);
28var_dump(E::CONST3);
29var_dump(E::CONST3);
30var_dump(A::CONST3);
31var_dump(A::CONST3);
32var_dump(E::CONST4);
33var_dump(E::CONST4);
34var_dump(A::CONST4);
35var_dump(A::CONST4);
36
37?>
38--EXPECT--
39enum(E::Foo)
40enum(E::Foo)
41enum(E::Foo)
42enum(E::Foo)
43enum(E::Foo)
44enum(E::Foo)
45enum(E::Foo)
46enum(E::Foo)
47enum(E::Foo)
48enum(E::Foo)
49enum(E::Foo)
50enum(E::Foo)
51enum(E::Foo)
52enum(E::Foo)
53